Commerce

Multi-tenant e-commerce backend — Shopify-style admin API + headless storefront API. Drives products, customers, orders, inventory, discounts, shipping, tax, payments, and a full transactional email loop (renderer + outbox dispatcher + Resend).

The Commerce API runs as a dedicated service (commerce-api, port 8010) separate from the accounting monolith. One deploy can host many e-shops; each shop is an account row with full RLS isolation in Postgres.

Two HTTP surfaces

Admin APIhttps://api.nevios.io/admin/2026-01/{handle}/... Auth: staff JWT or Personal Access Token. Used by the dashboard, internal scripts, and AI agents. Mutates everything: products, inventory, orders, settings, themes.

Storefront APIhttps://api.nevios.io/storefront/2026-01/... Auth: per-account public X-Storefront-Key (pk_live_...) plus opaque cart/checkout tokens in URLs. Used by browser/mobile storefronts. Read-only for catalog, write for cart and checkout.

Where to start

If you want to...Read
See the whole flow in 5 minutesQuickstart
Understand the architectureArchitecture
Authenticate your clientAuthentication
Build a custom storefrontCartsCheckouts
Manage products / inventoryProductsInventory
Customize emailsEmail templatesEmail loop

What ships today

Phase 1 transactional core complete. Latest test sweep: **349 Python

  • 9 Node + 20 SQL invariants — all green** against live Supabase + Resend.
DomainStatusEndpoints
Catalog (products, variants, pricing, collections, media)Live14
Customers + addresses + segmentsLive10
Orders + payments + fulfillments + returnsLive38
Inventory + locations + reservationsLive8
Discounts + vouchersLive14
Shipping zones / methods / rates / quoteLive11
Tax categories / rates / VIESLive5
Settings + themes + messagingLive24
Email send + deliveries + Resend webhookLive5
Carts + checkouts (storefront)Live16
Storefront API keysLive3
Total~129 endpoints

Not yet shipped: real payment gateways (Stripe, Comgate, GoPay), hosted checkout UI app, MCP tools for commerce, Shopify import connector. The framework slots are reserved.