docs: update progress with Stripe setup and checkout completion
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
eede9bb517
commit
d65eb725f7
43
PROGRESS.md
43
PROGRESS.md
@ -13,6 +13,9 @@
|
||||
- Variant selector with color swatches and size buttons
|
||||
- Session-based cart with real variant data (add/remove/quantity, cross-tab sync)
|
||||
- Cart drawer and cart page with hydrated product info
|
||||
- Stripe Checkout with order persistence and webhook handling
|
||||
- Admin credentials page with guided Stripe setup flow
|
||||
- Encrypted settings for API keys and secrets
|
||||
- Search modal with keyboard shortcut
|
||||
- Demo content polished and ready for production
|
||||
|
||||
@ -23,6 +26,7 @@
|
||||
|
||||
1. **Orders & Fulfillment** - Submit orders to Printify after payment
|
||||
2. **Email Notifications** - Order confirmation emails
|
||||
3. **Hosted Platform** - Multi-tenancy, Stripe Connect for customer shops
|
||||
|
||||
---
|
||||
|
||||
@ -90,24 +94,24 @@ See: [docs/plans/products-context.md](docs/plans/products-context.md) for implem
|
||||
See: [docs/plans/printify-integration-research.md](docs/plans/printify-integration-research.md) for API research & risk analysis
|
||||
|
||||
### Cart & Checkout
|
||||
**Status:** In Progress
|
||||
**Status:** Complete
|
||||
|
||||
- [x] Cart drawer component with slide-over panel (f244a42)
|
||||
- [x] Cart page with item list and order summary (f244a42)
|
||||
- [x] Shared CartHook for cross-page cart events (f244a42)
|
||||
- [x] Cart drawer component with slide-over panel (1bc08bf)
|
||||
- [x] Cart page with item list and order summary (1bc08bf)
|
||||
- [x] Shared CartHook for cross-page cart events (1bc08bf)
|
||||
- [x] CartPersist JS hook for localStorage backup
|
||||
- [x] Add-to-cart with flash status feedback
|
||||
- [x] Cart item links to product pages
|
||||
- [x] Session-based cart with real variants (f244a42)
|
||||
- [x] Session-based cart with real variants (1bc08bf)
|
||||
- Cart stores {variant_id, qty} tuples in session
|
||||
- Hydrates with real product data via Products context
|
||||
- Cross-tab sync via PubSub, session persistence via CartController API
|
||||
- [x] Stripe Checkout integration (stripity_stripe ~> 3.2)
|
||||
- [x] Stripe Checkout integration (ff1bc48, stripity_stripe ~> 3.2)
|
||||
- Stripe-hosted Checkout with redirect flow
|
||||
- Webhook handler for checkout.session.completed/expired
|
||||
- Signature verification via CacheRawBody + construct_event
|
||||
- Shipping address collection during checkout
|
||||
- [x] Order/OrderItem schemas and context
|
||||
- [x] Order/OrderItem schemas and context (ff1bc48)
|
||||
- Order number format: SS-YYMMDD-XXXX
|
||||
- Payment status tracking (pending → paid/failed)
|
||||
- Price snapshots in OrderItem (protects against changes)
|
||||
@ -117,6 +121,27 @@ See: [docs/plans/printify-integration-research.md](docs/plans/printify-integrati
|
||||
|
||||
See: [ROADMAP.md](ROADMAP.md) for design notes
|
||||
|
||||
### Admin Settings & Stripe Setup
|
||||
**Status:** Complete
|
||||
|
||||
- [x] Encrypted settings infrastructure (eede9bb)
|
||||
- `encrypted_value` column on settings table
|
||||
- `put_secret/2`, `get_secret/2`, `has_secret?/1`, `secret_hint/1`
|
||||
- AES-GCM encryption via `SECRET_KEY_BASE`
|
||||
- Secrets loaded into Application env on startup via `Secrets.load_all/0`
|
||||
- [x] Guided Stripe setup flow (eede9bb)
|
||||
- `Stripe.Setup` module: connect, disconnect, verify, auto-create webhook
|
||||
- Three-state admin UI: not configured, connected (production), connected (dev/localhost)
|
||||
- Auto-creates Stripe webhook endpoint on production hosts
|
||||
- Dev mode shows Stripe CLI instructions for localhost
|
||||
- Manual signing secret input for dev/advanced use
|
||||
- API key verification via `Stripe.Balance.retrieve/2`
|
||||
- [x] Admin credentials page at `/admin/settings` (eede9bb)
|
||||
- Single Secret key input with "Connect Stripe" button
|
||||
- Masked key hints (e.g. `sk_test_•••789`)
|
||||
- Disconnect button clears keys from DB and Application env
|
||||
- CSSCache test startup crash fixed (handle_continue pattern)
|
||||
|
||||
### Orders & Fulfillment
|
||||
**Status:** Planned
|
||||
|
||||
@ -140,8 +165,10 @@ See: [docs/plans/page-builder.md](docs/plans/page-builder.md) for design
|
||||
|
||||
| Feature | Commit | Notes |
|
||||
|---------|--------|-------|
|
||||
| Encrypted settings & Stripe setup | eede9bb | Guided setup flow, encrypted secrets, admin credentials page |
|
||||
| Stripe checkout & orders | ff1bc48 | Stripe Checkout, webhooks, order persistence |
|
||||
| Demo content & link fixes | cff2170 | Broken links, placeholder text, responsive about image |
|
||||
| Cart UI infrastructure | f244a42 | Cart drawer, cart page, CartHook, CartPersist |
|
||||
| Cart UI infrastructure | 1bc08bf | Cart drawer, cart page, CartHook, CartPersist |
|
||||
| Variant selector | 880e7a2 | Color swatches, size buttons, price updates |
|
||||
| Product image download | 1b49b47 | PageSpeed 100% with local images |
|
||||
| Wire shop to real data | c818d03 | PreviewData uses Products context |
|
||||
|
||||
Loading…
Reference in New Issue
Block a user