Sell online with your own store, or plug in Shopify and keep everything else.
Commerce is the bundle of modules that sells: products, orders, deliveries and the storefront, on top of the marketing site every store has. You get a public site, an admin, and an assistant in each, and on the paid tier a branded mobile app.
Your storefront runs on one of two stacks, switched by a setting rather than a rebuild.
| Own store | Shopify | |
|---|---|---|
| Catalog | Your database | Shopify's |
| Cart | The same cart | The same cart |
| Payment | Your gateway: Stripe, or PayFast for cards and Instant EFT in rand | Shopify-hosted checkout |
| The order | In your database | In Shopify, mirrored back to your database for reporting |
| Fulfilment | Your deliveries worklist and carrier | Shopify's |
Own store is the choice when the value is elsewhere: per-tenant isolation, a domain that is not commerce-shaped, or a gateway of your own so there is no platform surcharge on top of the gateway's fee. Shopify is the choice when commerce operations are the whole job; you keep the site, the admin, the assistant and the app around it, and Shopify keeps the checkout and the order.
Every order, whichever stack, lands in one record: a quote that becomes a sale that becomes an invoice, a credit note or return pointing at what it reverses, the VAT split frozen per line on the day. A checkout order is written by the gateway's paid webhook and never by the redirect, so a dropped connection cannot lose a sale. A field rep can also capture a replenishment order on a store's behalf, which is confirmed server-side against live prices, stock and the store's credit limit.
A shopping agent on the storefront finds products and reads one product's choices for a shopper. It never adds to the basket and never pays; the shopper does both.
A merchant agent in the admin captures your catalog, manages collections, imports and exports people, reshapes the site's sections, rewrites copy, changes the theme and configures your grids and forms. It produces data; one database function owns each write, every write is attributed and reversible, and a generated row is a draft until you approve it.
Own store, dedicated hosting and your own payment keys are one tier: holding any live secret moves you onto your own deployment. See hosting.