2026-01-17 23:09:42 +00:00
|
|
|
# SimpleShop Roadmap
|
2026-01-17 22:39:37 +00:00
|
|
|
|
2026-01-31 14:06:07 +00:00
|
|
|
> Vision and future features. For current status, see [PROGRESS.md](PROGRESS.md).
|
2026-01-17 22:39:37 +00:00
|
|
|
|
2026-01-19 21:06:31 +00:00
|
|
|
---
|
|
|
|
|
|
2026-01-31 14:06:07 +00:00
|
|
|
## Core MVP: Cart & Checkout
|
2026-01-19 21:06:31 +00:00
|
|
|
|
2026-01-31 14:06:07 +00:00
|
|
|
### Session-Based Cart
|
|
|
|
|
Store cart in Phoenix session (no separate table needed for MVP).
|
2026-01-19 21:06:31 +00:00
|
|
|
|
|
|
|
|
```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)
|
2026-01-31 14:06:07 +00:00
|
|
|
def to_line_items(cart)
|
|
|
|
|
def total(cart)
|
|
|
|
|
def item_count(cart)
|
2026-01-19 21:06:31 +00:00
|
|
|
end
|
|
|
|
|
```
|
|
|
|
|
|
2026-01-31 14:06:07 +00:00
|
|
|
### Stripe Checkout
|
2026-01-19 21:06:31 +00:00
|
|
|
Stripe Checkout (hosted payment page) integration.
|
|
|
|
|
|
2026-01-31 14:06:07 +00:00
|
|
|
**Dependencies:** `{:stripity_stripe, "~> 3.0"}`
|
2026-01-19 21:06:31 +00:00
|
|
|
|
|
|
|
|
**Routes:**
|
|
|
|
|
```elixir
|
|
|
|
|
post "/webhooks/stripe", StripeWebhookController, :handle
|
|
|
|
|
live "/checkout/success", ShopLive.CheckoutSuccess
|
|
|
|
|
live "/checkout/cancel", ShopLive.CheckoutCancel
|
|
|
|
|
```
|
|
|
|
|
|
2026-01-31 14:06:07 +00:00
|
|
|
### Cost Verification at Checkout
|
|
|
|
|
Verify Printify costs haven't changed before completing checkout to prevent selling at a loss.
|
2026-01-19 21:06:31 +00:00
|
|
|
|
2026-01-17 22:39:37 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Medium Features
|
|
|
|
|
|
2026-01-31 14:06:07 +00:00
|
|
|
### Page Builder
|
|
|
|
|
Database-driven pages with drag-and-drop sections:
|
|
|
|
|
- Hero, Featured Products, Testimonials, Newsletter
|
2026-01-17 22:39:37 +00:00
|
|
|
- Per-section configuration
|
2026-01-31 14:06:07 +00:00
|
|
|
- See: [docs/plans/page-builder.md](docs/plans/page-builder.md)
|
2026-01-17 22:39:37 +00:00
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2026-01-31 14:06:07 +00:00
|
|
|
## Future Features
|
2026-01-17 22:39:37 +00:00
|
|
|
|
|
|
|
|
### 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
|
|
|
|
|
|
2026-01-31 14:06:07 +00:00
|
|
|
### Multi-Provider Support
|
2026-01-19 21:06:31 +00:00
|
|
|
Support multiple POD providers beyond Printify:
|
|
|
|
|
- Prodigi (better for art prints)
|
|
|
|
|
- Gelato (global fulfillment)
|
|
|
|
|
- Provider-agnostic product model
|
|
|
|
|
- Price comparison across providers
|
|
|
|
|
|
2026-01-17 22:39:37 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Technical Debt
|
|
|
|
|
|
|
|
|
|
### Test Coverage
|
2026-01-31 14:06:07 +00:00
|
|
|
Areas needing better coverage:
|
2026-01-17 22:39:37 +00:00
|
|
|
- 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
|
|
|
|
|
|
2026-01-31 14:06:07 +00:00
|
|
|
### Rename Project
|
|
|
|
|
The project is named `simpleshop_theme` but it's now a full storefront. Consider renaming to `simple_shop`.
|