Add shopper accounts, reviews, tracking, and seed_demo #10

Open
westfarn wants to merge 1 commits from feature/9-shopper-accounts-reviews into master
Owner

Summary

  • Closes #9. Port shop-gated buyer accounts (register/login/profile, password reset, order history), purchase-gated reviews, and Stripe customer ids. Cards stay on Stripe.
  • Slim public contact form to email + interest + message. Shipping tracking status, scan events, paste-in numbers, and EasyPost webhook when FEATURE_SHIPPING is on.
  • Add template-neutral seed_demo (generic SKUs, demo shoppers, guest orders, tracking stubs). Prod refused. --reset deletes tagged demo rows after invoices.

Test plan

  • cd site && uv run python manage.py test (173 tests passed locally)
  • Shop on: /account/register, login, profile, password reset, claim guest orders by email
  • Shop off: /account/ URLs absent; Sign in / Account links hidden
  • Checkout as logged-in buyer stores Order.user and Stripe customer id; product review only after paid purchase
  • Shipping on: portal paste-in tracking + EasyPost webhook updates status; shipping off: orders still work without tracking UI
  • seed_demo refused in prod; --reset rebuilds tagged catalog/shoppers without deleting staff invoices
## Summary - Closes #9. Port shop-gated buyer accounts (register/login/profile, password reset, order history), purchase-gated reviews, and Stripe customer ids. Cards stay on Stripe. - Slim public contact form to email + interest + message. Shipping tracking status, scan events, paste-in numbers, and EasyPost webhook when FEATURE_SHIPPING is on. - Add template-neutral `seed_demo` (generic SKUs, demo shoppers, guest orders, tracking stubs). Prod refused. `--reset` deletes tagged demo rows after invoices. ## Test plan - [ ] `cd site && uv run python manage.py test` (173 tests passed locally) - [ ] Shop on: `/account/register`, login, profile, password reset, claim guest orders by email - [ ] Shop off: `/account/` URLs absent; Sign in / Account links hidden - [ ] Checkout as logged-in buyer stores `Order.user` and Stripe customer id; product review only after paid purchase - [ ] Shipping on: portal paste-in tracking + EasyPost webhook updates status; shipping off: orders still work without tracking UI - [ ] `seed_demo` refused in prod; `--reset` rebuilds tagged catalog/shoppers without deleting staff invoices
westfarn added 1 commit 2026-09-07 06:36:11 -07:00
Closes #9. Shop-gated buyer accounts, purchase reviews, Stripe customer ids, shipment tracking, slim public contact form, and a template-neutral seed_demo command.
You are not authorized to merge this pull request.
This pull request can be merged automatically.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/9-shopper-accounts-reviews:feature/9-shopper-accounts-reviews
git checkout feature/9-shopper-accounts-reviews
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: westfarn/web_django_template#10