The storefront covers selling — online, at a counter, or both against the same inventory.
The important property is that there is one catalog and one stock position. A sale at the till, an order on the website and a listing on a marketplace all draw from the same inventory, so you do not oversell by selling in two places at once.
What it covers
Plus pricing and price lists, discounts and coupons, gift cards, invoices, returns, rentals, tax and shipping.
Catalog
Products sit in collections, carry brands and attributes, and are organized by category. A single public call returns everything a storefront needs to render, so the shop front does not make a dozen requests to draw a page.
Products resolve by slug as well as by id, which is what lets you have readable URLs without maintaining a separate mapping.
Cart and checkout
Carts belong to whoever holds them — including guests. A visitor can fill a cart before they have an account, and it survives until they check out.
Three checkout paths, because they are genuinely different situations:
| Path | For |
|---|---|
| Cart checkout | The normal basket |
| Buy now | A single item, skipping the cart |
| Mixed checkout | A basket combining one-off purchases with subscriptions or rentals |
Payments
Card payments run through Stripe or PayPal online, and through card terminals in person.
Authorization and capture can be separated, which matters when you charge on shipment rather than on order. Voiding an uncaptured authorization and refunding a captured payment are different operations, and the platform keeps them distinct.
Invoices, quotes and payment links
An invoice is how staff bill a customer from the console — and how an order is made for them: build the invoice, then Create Order (under More) turns it into a real order in the customer's own history.
Send it. Send opens Send Invoice: choose email, text message or both. Each carries the invoice's payment link, which is also shown in the invoice's Payment section to copy and share. Send Reminder (under More) sends it again for an unpaid invoice.
Where the link goes. The customer pays on a page, not in the console:
- If your default site's Payment feature is on (Site Features › Payment), the link opens that page on your site —
…/pay?invoiceNumber=…unless you chose another page. - If it is off, or you have no site, the link opens the platform's hosted payment page —
/checkout/payment?orgid=<your org>&invoiceNumber=…— which needs no site and no sign-in.
Some businesses have a website but do not want customers paying through it; turning the Payment feature off is how you say so. The page re-reads the invoice when it loads, so a customer who refreshes sees your latest changes — use it to walk through a quote live.
Quotes. A quote is an invoice with the status Quote. Sending it sends the same link, but the customer sees an accept step instead of a pay button — they type their name to accept, or decline with a reason — and the total reads Quoted total until they do. Nothing is booked as revenue while it is a quote; accepting it turns it into an invoice and books it then. If they said yes on the phone, Mark Accepted records it for them; Customer declined (under More) records a no.
Take a payment yourself. Take Payment records a payment taken in person or over the phone against the invoice.
Orders
An order moves through processing, shipping, delivery and completion, with hold, release, cancel and refund available throughout. Items can be added after the fact, and fired to a kitchen or fulfillment queue.
Point of sale
Tab-based, which suits hospitality as much as retail. Open a tab, add to it over time, split it, settle it, refund against it.
Tabs attach to service points — tables, chairs, bays — the same records reservations and the check-in queue use, so the floor is one picture rather than three.
Printing is separated from the print action: you can fetch a check or receipt payload and route it where you want, or print directly. Physical printing reaches hardware through the Device Hub.
Inventory
Stock is tracked per location, and the lifecycle is reserve → fulfill rather than a single quantity that goes up and down.
That distinction is what prevents overselling: a checkout in progress holds stock without consuming it, and either commits or releases.
If a checkout can be abandoned, make sure something releases the reservation. Nothing expires it automatically.
Transfers move stock between locations with ship and receive steps, and counts reconcile the system against a physical count. Low-stock alerts are available per location.
Pricing
Beyond a list price, you can define price lists and customer tiers, so different customers see different prices.
You can preview the price a specific customer would see — the fastest way to work out why a tier or price-list rule is not doing what you expected.
Discounts and gift cards
Discount codes can be validated without being consumed, applied, recorded on use and reversed if an order is cancelled. Automatic discounts apply without a code.
Gift cards are addressed by serial, can be issued in batches, activated, suspended, reactivated, cancelled, refunded and transferred.
Returns
Returns are RMA-based. The customer requests one, ships it and can cancel; your team approves or rejects, receives, inspects and completes. Both sides work the same record.
Rentals
For businesses renting rather than selling: availability checking, restriction validation, deposits held and refunded, and a full custody lifecycle from confirmation through pickup, active use, overdue, return and check-in.
Subscriptions
Storefront › Subscription manages recurring customers. It has four tabs:
| Tab | What it holds |
|---|---|
| Dashboard | Active and cancelled counts, monthly recurring revenue (the sum of active subscriptions' amounts), total revenue collected, and how many active subscriptions renew within the next 7 days. Each subscription can be paused, resumed or cancelled from here |
| Subscriptions | The list, a subscription's record, and the customer behind it — their contact details and counts of their subscriptions, invoices, orders, tickets and reservations |
| Plans & Pricing | The subscription plans (sf_subscription_plan) customers subscribe to |
| Create Subscription | A new subscription record |
A subscription's record is saved with Save Subscription; Cancel Subscription sets it to cancelled and records the date. The API side is under Storefront › Subscriptions.
Tax and shipping
Tax calculates for a cart, a product or a location, with exemptions applied per customer. Cart tax calculation is public, so a storefront can show tax before a visitor signs in.
Shipping covers live rates, label generation, tracking, address verification and autocomplete, and box packing. Configuration supports multiple providers with a default, and per-product shipping settings.
Selling elsewhere
Marketplace selling — Amazon, eBay, Etsy and others — is handled by sales channels, which keeps one catalog consistent across external listings with its own category mappings, pricing rules and order aggregation.