Customer accounts, order tracking, and purchase reviews #8

Merged
westfarn merged 2 commits from feature/7-customer-accounts-reviews into master 2026-09-07 04:53:41 -07:00
Owner

Summary

  • Slim the public contact form to email, interest, and message. Name, phone, and address live on the customer profile instead.
  • Customers can register, sign in, save shipping details, and view order history. Logged-in checkout creates a Stripe Customer and saves cards on Stripe (setup_future_usage); we only store stripe_customer_id.
  • Shipment tracking: EasyPost tracker lookup + webhook, plus paste-in numbers from Pirate Ship/Shippo. Customers see carrier status on their orders; dispatch_due refreshes open shipments.
  • Product reviews (1–5) only after a paid/fulfilled purchase of that product.

Fixes #7

Test plan

  • Contact form submits with only email + message; extra name/phone/address fields are ignored
  • Register, sign in, save profile (name/phone/shipping)
  • Guest checkout still works; after signup, prior orders with that email show in history
  • Logged-in checkout prefills shipping and does not collect card data locally
  • Portal: buy label or paste a Pirate Ship tracking number, confirm status/events; customer order page shows tracking
  • Product page: non-buyers cannot review; buyers can leave one 1–5 star review
  • Non-staff users hitting /portal/ redirect to /account/
## Summary - Slim the public contact form to email, interest, and message. Name, phone, and address live on the customer profile instead. - Customers can register, sign in, save shipping details, and view order history. Logged-in checkout creates a Stripe Customer and saves cards on Stripe (`setup_future_usage`); we only store `stripe_customer_id`. - Shipment tracking: EasyPost tracker lookup + webhook, plus paste-in numbers from Pirate Ship/Shippo. Customers see carrier status on their orders; `dispatch_due` refreshes open shipments. - Product reviews (1–5) only after a paid/fulfilled purchase of that product. Fixes #7 ## Test plan - [ ] Contact form submits with only email + message; extra name/phone/address fields are ignored - [ ] Register, sign in, save profile (name/phone/shipping) - [ ] Guest checkout still works; after signup, prior orders with that email show in history - [ ] Logged-in checkout prefills shipping and does not collect card data locally - [ ] Portal: buy label or paste a Pirate Ship tracking number, confirm status/events; customer order page shows tracking - [ ] Product page: non-buyers cannot review; buyers can leave one 1–5 star review - [ ] Non-staff users hitting `/portal/` redirect to `/account/`
westfarn added 1 commit 2026-09-07 04:38:08 -07:00
Shoppers can register, save shipping details, and view order history while cards stay on Stripe. EasyPost tracker updates (including numbers from Pirate Ship) and 1–5 star reviews are limited to buyers. The contact form now only asks for email and a message.
westfarn added 1 commit 2026-09-07 04:50:55 -07:00
Buyers can recover locked accounts, and seed_demo now walks the shopper path without live Stripe or EasyPost calls.
westfarn merged commit dd37a2a268 into master 2026-09-07 04:53:41 -07:00
westfarn deleted branch feature/7-customer-accounts-reviews 2026-09-07 04:53:41 -07:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ai_ml_operations/print_forge#8