Openfront E-commerce
Multi-region catalog, storefront, checkout, orders, inventory, payments, and fulfillment.
Source · Live site · Catalog
Openfront E-commerce is Openfront's commerce product. It combines a country-aware storefront, an operator dashboard, a Keystone GraphQL API on PostgreSQL, and payment and shipping adapters in one repository that the operator runs.
What the source covers
- Catalog: products, variants, options, images, categories, collections, types and tags.
- Regional commerce: one store record, regions, countries, currencies, money amounts, price sets, price lists, price rules and tax rates.
- Inventory and fulfillment: variant stock counts, stock movements, locations, shipping options, shipping and fulfillment providers, labels and fulfillments.
- Checkout and orders: carts, addresses, payment sessions and collections, orders, order line snapshots, captures, refunds, returns and claims.
- Business accounts: account requests, accounts with credit limits, invoices and invoice payment.
- Extensibility: API keys, OAuth apps and tokens, outgoing webhooks, MCP tools for AI clients, and payment and shipping adapters.
Tenancy
One deployment is one store. The dashboard and storefront read the first Store record. Regions, countries and currencies configure where and how you sell. They are not separate tenants. Data is separated by user: customers see their own carts, orders, addresses, accounts and invoices.
Code layout
App Router pages are thin. Operator screens live in features/platform, the generic admin shell in features/dashboard, storefront screens in features/storefront, models and custom GraphQL operations in features/keystone, outgoing webhooks in features/webhooks, and provider code in features/integrations.
Main workflow
A store publishes products with regional prices. A guest or signed-in customer creates a cart, chooses shipping and payment, and completes checkout with completeActiveCart. The server checks the provider's amount and currency against the cart, reserves stock and discounts, and writes the order with line snapshots. Operators then fulfill, buy labels, cancel, return, refund or open claims against that order.
Main surfaces
Operator dashboard
/dashboard/platform has pages for orders and fulfillment, analytics, markets (regions, countries, currencies), store settings, products, categories, collections, users, business account requests and accounts, discounts, price lists, gift cards, shipping options, shipping and payment providers, claims, OAuth apps, API keys and system settings. Other lists use generic admin pages. See Dashboard.
Storefront
Country-code routes provide home, store, product, category, collection, cart, checkout, confirmation and account pages, including business invoicing. Carts are protected by a signed cart proof or by the signed-in owner. See Storefront.
Payments and fulfillment
Stripe and PayPal adapters run checkout and invoice payment, with signed webhooks. Shippo and ShipEngine adapters provide rates, labels, tracking and cancellation. Both adapter systems also accept external HTTP endpoints. See Payment providers and Shipping providers.
AI assistant and MCP
A dashboard chat assistant uses OpenRouter and the app's MCP endpoint, acting with your permissions. External MCP clients can connect with OAuth. See AI assistant.
Getting started
Requirements, environment, migrations, first user, onboarding and deploy.
Products
Catalog, variants, pricing and inventory relationships.
Storefront
Country-aware product, cart, checkout and account routes.
Payments
Provider adapters, webhooks and current limits.
API
Custom GraphQL operations and authentication.