# 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`.