simpleshop_theme/ROADMAP.md

100 lines
2.3 KiB
Markdown
Raw Normal View History

# SimpleShop Roadmap
> Vision and future features. For current status, see [PROGRESS.md](PROGRESS.md).
---
## Core MVP: Cart & Checkout
### Session-Based Cart
Store cart in Phoenix session (no separate table needed for MVP).
```elixir
defmodule SimpleshopTheme.Cart do
def get(session), do: Map.get(session, "cart", %{})
def add_item(session, variant_id, quantity \\ 1)
def remove_item(session, variant_id)
def update_quantity(session, variant_id, quantity)
def clear(session)
def to_line_items(cart)
def total(cart)
def item_count(cart)
end
```
### Stripe Checkout
Stripe Checkout (hosted payment page) integration.
**Dependencies:** `{:stripity_stripe, "~> 3.0"}`
**Routes:**
```elixir
post "/webhooks/stripe", StripeWebhookController, :handle
live "/checkout/success", ShopLive.CheckoutSuccess
live "/checkout/cancel", ShopLive.CheckoutCancel
```
### Cost Verification at Checkout
Verify Printify costs haven't changed before completing checkout to prevent selling at a loss.
---
## Medium Features
### Page Builder
Database-driven pages with drag-and-drop sections:
- Hero, Featured Products, Testimonials, Newsletter
- Per-section configuration
- See: [docs/plans/page-builder.md](docs/plans/page-builder.md)
---
## Future Features
### Multi-Admin Support
- Multiple admin users
- Role-based permissions
- Audit logging
### Custom Domains
- Domain verification
- SSL certificate provisioning
- DNS configuration guidance
### Theme Export/Import
- JSON export of all settings
- Import with validation
- Preset sharing between shops
### Advanced Theme Features
- Custom CSS injection
- Custom JavaScript snippets
- Code-level overrides for developers
### Multi-Provider Support
Support multiple POD providers beyond Printify:
- Prodigi (better for art prints)
- Gelato (global fulfillment)
- Provider-agnostic product model
- Price comparison across providers
---
## Technical Debt
### Test Coverage
Areas needing better coverage:
- Shop LiveView integration tests
- CSS cache invalidation flow
- Theme application across all pages
- Responsive behaviour
- Accessibility validation
### Error Handling
- Better error states for missing products
- Graceful degradation when theme settings are invalid
- Network error handling in LiveView
### Rename Project
The project is named `simpleshop_theme` but it's now a full storefront. Consider renaming to `simple_shop`.