Spree Commerce
Open-source headless ecommerce platform with a REST API and Next.js storefront
Alternative to: Shopify, Magento, WooCommerce, Salesforce Commerce Cloud
v6.0.0.beta2
2026-09-17Spree 6 is a complete redesign and rewrite of Spree Core. It’s the biggest Spree release yet.
Marketplace & Multi-Vendor
- Invite sellers, onboard them, approve or suspend them
- Decide what a seller must do before they can trade — accept terms, add a returns address, connect a bank account, upload a business registration
- Commission by seller, category or product, with VAT handled correctly
- Review and approve a seller’s products before they go live
- One payment from the shopper even when the basket spans sellers, split behind the scenes
- A ledger of what every seller earned and what you’ve paid them
- Stripe Connect built-in: sellers onboard themselves, money splits automatically
- Sellers get their own back office — white-label it — and their own API
- Pay sellers through your own rails with a payout provider
B2B & Wholesale
B2B buyers need different prices, rules, and paperwork than retail shoppers.
- Set up a customer’s whole organisation — head office, divisions, branches — and who may buy for which part, with Companies
- Let a buyer invite their own colleagues instead of emailing you
- Show each customer their own prices, their own product selection, or both, with Catalogs
- Enforce minimum quantities and pack multiples — 48 minimum, in 24s, so 72 is fine and 50 isn’t
- Set a minimum value for the whole order
- Capture the buyer’s purchase order number at checkout
- Tax exemption certificates and VAT IDs, validated automatically
- Sell by the pallet, not just the parcel - define your own cartons, pallets and containers, and get freight totals on every order
Cross-Border & Tax Compliance
Cross-border selling breaks on tax and duties more often than on language.
- Plug in Avalara or similar instead of maintaining rates yourself
- Capture a business customer’s VAT number and apply EU reverse charge correctly
- Charge customs duties and import fees as their own line, shown at checkout
- Classify products with commodity codes and country of origin, so labels carry a proper declaration
- Record why something was taxed the way it was — for e-invoicing and audits
- Markets with their own currencies, languages and tax treatment
- Omnichannel: channels for web, app, retail POS or wholesale, each with its own rules
Inventory & Warehouse Management
Most platforms tell you what you have. Few help you get more of it.
- Raise purchase orders to suppliers and keep a supplier list — see Inventory
- Record what actually arrived, including damage and shortfalls
- See why every stock movement happened and which document caused it
- Reserve stock so two shoppers can’t buy the last one
- Stock comes off the shelf when goods ship, not when the order is placed
- Restrict a sales channel to specific warehouses — your trade channel ships only from the trade warehouse
- Connect your ERP and let it stay the authority on stock
Shipping & Fulfillment
- Live carrier rates at checkout instead of flat-rate guesses. EasyPost integration out of the box.
- Buy postage in Spree, or upload a label you bought elsewhere — see Fulfillments
- Tracking updates flow back automatically
- Click and collect, with real pickup locations
- Charge by postcode — free local delivery, island surcharges, city-only express
- Say which warehouses ship which products, in delivery setup
- Offer or hide a delivery method by basket value, weight or contents — no code
- Connect a warehouse or 3PL and let them fulfil
- Define package types, freight options and cartons
Payments & Checkout
- Modern checkout for Stripe, Adyen and PayPal — wallets, BNPL, bank transfers
- Charge now, on dispatch, or manually — see Payments
- Saved cards for returning customers
- Orders complete even if the customer closes the tab mid-payment
- Offline methods too: cheque, bank transfer, cash on delivery
- Fully PCI-Compliant
Returns & Post-Purchase
- Returns, exchanges and damage claims, each tracked properly
- Your own rules for what’s returnable and for how long
- Refunds to the original payment, to store credit, or split
- Buy return labels from the dashboard
Product Information Management
- Product types, so a book and a sofa can ask for different information
- Collections that fill themselves from rules you set
- Custom fields on anything, editable by merchants without a developer
- A media library, with video — or connect your DAM
- Digital products with controlled download links
- Connect your PIM and let it own product data
- Typo-tolerant search and filtering
Pricing & Promotions
- Promotions with stackable rules and generated coupon codes
- Fees and surcharges as their own line, not hidden in the total
Reporting & Analytics
- Build your own reports from sales, product and customer data
- Save them and come back to them
Data Privacy & Compliance
Mostly EU and UK concerns — skip this if you sell only in the US. It’s all in Data Privacy.
- Answer a “send me my data” or “delete me” request without engineering time
- Deleting a customer anonymises them, so your books and tax records stay intact
- Consent records proving what a customer agreed to, and when
- Price history for the EU Omnibus rules
- Right-of-withdrawal windows per market
- Staff roles and permissions you define yourself
Admin Dashboard & Operations
- The React dashboard leaves preview and becomes the admin — mobile-ready, super fast with dark mode
- Add your own pages and screens without forking anything
- Sign staff in with your existing identity provider
- Run several stores from one installation
- Watch it in production with OpenTelemetry
Headless & Composable
- One REST API, with typed clients for storefront, admin and sellers
npx create-spree-appand you’re running- Start from the Next.js storefront or build your own
- Webhooks and events for everything that happens
Installation
Requirements: Node.js 24+ and Docker running.
npx create-spree-app@latest my-store
Upgrading
Upgrading from Spree 5? The upgrade guide covers every change and ships migration tasks for the data.
Feedback
Feel free to open github issues or join our Discord