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.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
seed_demo(generic SKUs, demo shoppers, guest orders, tracking stubs). Prod refused.--resetdeletes tagged demo rows after invoices.Test plan
cd site && uv run python manage.py test(173 tests passed locally)/account/register, login, profile, password reset, claim guest orders by email/account/URLs absent; Sign in / Account links hiddenOrder.userand Stripe customer id; product review only after paid purchaseseed_demorefused in prod;--resetrebuilds tagged catalog/shoppers without deleting staff invoicesView command line instructions
Checkout
From your project repository, check out a new branch and test the changes.