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
|
- Variant selector with color swatches and size buttons
|
||||||
- Session-based cart with real variant data (add/remove/quantity, cross-tab sync)
|
- Session-based cart with real variant data (add/remove/quantity, cross-tab sync)
|
||||||
- Cart drawer and cart page with hydrated product info
|
- 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
|
- Search modal with keyboard shortcut
|
||||||
- Demo content polished and ready for production
|
- Demo content polished and ready for production
|
||||||
|
|
||||||
@ -23,6 +26,7 @@
|
|||||||
|
|
||||||
1. **Orders & Fulfillment** - Submit orders to Printify after payment
|
1. **Orders & Fulfillment** - Submit orders to Printify after payment
|
||||||
2. **Email Notifications** - Order confirmation emails
|
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
|
See: [docs/plans/printify-integration-research.md](docs/plans/printify-integration-research.md) for API research & risk analysis
|
||||||
|
|
||||||
### Cart & Checkout
|
### Cart & Checkout
|
||||||
**Status:** In Progress
|
**Status:** Complete
|
||||||
|
|
||||||
- [x] Cart drawer component with slide-over panel (f244a42)
|
- [x] Cart drawer component with slide-over panel (1bc08bf)
|
||||||
- [x] Cart page with item list and order summary (f244a42)
|
- [x] Cart page with item list and order summary (1bc08bf)
|
||||||
- [x] Shared CartHook for cross-page cart events (f244a42)
|
- [x] Shared CartHook for cross-page cart events (1bc08bf)
|
||||||
- [x] CartPersist JS hook for localStorage backup
|
- [x] CartPersist JS hook for localStorage backup
|
||||||
- [x] Add-to-cart with flash status feedback
|
- [x] Add-to-cart with flash status feedback
|
||||||
- [x] Cart item links to product pages
|
- [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
|
- Cart stores {variant_id, qty} tuples in session
|
||||||
- Hydrates with real product data via Products context
|
- Hydrates with real product data via Products context
|
||||||
- Cross-tab sync via PubSub, session persistence via CartController API
|
- 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
|
- Stripe-hosted Checkout with redirect flow
|
||||||
- Webhook handler for checkout.session.completed/expired
|
- Webhook handler for checkout.session.completed/expired
|
||||||
- Signature verification via CacheRawBody + construct_event
|
- Signature verification via CacheRawBody + construct_event
|
||||||
- Shipping address collection during checkout
|
- Shipping address collection during checkout
|
||||||
- [x] Order/OrderItem schemas and context
|
- [x] Order/OrderItem schemas and context (ff1bc48)
|
||||||
- Order number format: SS-YYMMDD-XXXX
|
- Order number format: SS-YYMMDD-XXXX
|
||||||
- Payment status tracking (pending → paid/failed)
|
- Payment status tracking (pending → paid/failed)
|
||||||
- Price snapshots in OrderItem (protects against changes)
|
- 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
|
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
|
### Orders & Fulfillment
|
||||||
**Status:** Planned
|
**Status:** Planned
|
||||||
|
|
||||||
@ -140,8 +165,10 @@ See: [docs/plans/page-builder.md](docs/plans/page-builder.md) for design
|
|||||||
|
|
||||||
| Feature | Commit | Notes |
|
| 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 |
|
| 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 |
|
| Variant selector | 880e7a2 | Color swatches, size buttons, price updates |
|
||||||
| Product image download | 1b49b47 | PageSpeed 100% with local images |
|
| Product image download | 1b49b47 | PageSpeed 100% with local images |
|
||||||
| Wire shop to real data | c818d03 | PreviewData uses Products context |
|
| Wire shop to real data | c818d03 | PreviewData uses Products context |
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user