Apps · Operations

Online store

A public storefront that sells the catalog you already keep in Point of Sale. One product list, one set of stock, one ledger — whether the sale happens at the counter or on the web.

User guideApps › Online store

What it is, and what it needs

Ecommerce owns no catalog of its own. It publishes products that live in Point of Sale, reads stock from your POS warehouses, and checks web orders out through a POS register — the same checkout the cashier runs. Installing it installs Point of Sale too; the store simply won't work without it.

You get one storefront per workspace, not many. Its settings are a single page, and its public address is fixed by your workspace slug.

Admin

The app is restricted on install. Everyone who needs it wants app access, and anyone who changes settings, publishes products or edits the storefront needs the Manage store permission on top. Grant both under Settings → Workspace → Module Access — see Permissions & access. Without Manage store the pages open read-only and tell you so.

Where everything lives

The sidebar gets an Ecommerce section. Its pages also carry a tab bar across the top, so you can move between them without going back to the sidebar.

PageWhat you do there
ProductsDecide which POS products appear in the store, and build each product's page.
OrdersThe order queue. Every web order lands here and is moved through fulfilment.
DesignerBuild the storefront home page out of blocks.
ChannelsPush the same products to Facebook Shop, Instagram Shopping and the WhatsApp catalog.
PaymentsConnect your own payment gateway.
SettingsStore identity, mode, register, warehouses, filters and the live switch.

Getting the store live

The store is created switched on. If you've never opened Settings, the public page already resolves — it just has nothing published in it yet. Work through Settings once, then publish products.

  1. Set the store's identity On Settings, fill in Store name, Currency, Store language and Theme colour. The Public URL box right underneath shows the address shoppers use; it's set by the system, not by you.
  2. Choose a store mode Full storefront gives a browsable catalog with product pages, a cart and filters. Social quick-sell drops all of that and makes every product tile go straight to a one-product buy page — built for people selling from TikTok, Facebook or Instagram.
  3. Pick the fulfilment style Delivery / shipping or Counter pickup (QSR). Pickup mode gives each order a pickup number and turns on a public order board.
  4. Point it at a register and warehouses Online register is the POS register web orders check out through. Warehouses that sell online decides which shelves the store sells from — a product appears when it has stock in any of them. Leave it empty to show every published product regardless of location.
  5. Confirm Storefront live The Storefront live checkbox is what makes the public address resolve. Turn it off any time to take the whole store offline — the public pages return a "Store not found" page while it's off.
  6. Save Nothing on this page applies until you press Save.

Publishing products

Nothing is for sale online until you say so, product by product. Open Products: it lists your POS catalog with a Show online column. Tick a product and it's in the store; untick it and it's gone. A counter at the top of the page tells you how many are published.

If the list is empty, there are no products in POS yet — add them there first (Stock & warehouse covers the catalog and the shelves it sits on).

Once a product is published, Copy buy-link appears on its row. That's a direct link to a single-product express checkout page — name, email, quantity, done. Paste it into a social post, a story or a chat.

Building a product's page

POS knows a product's name and price; a shopper usually wants more. Edit page on any row opens the product page editor:

  • Image gallery — extra photos, reorderable. The POS product image is always used as the first one, so you're adding to it rather than replacing it.
  • Product video — paste a YouTube or Vimeo link, or upload a file. Uploads over 25 MB are rejected with a prompt to use a link instead, which is the better answer for video anyway.
  • Description — a rich-text editor for merchandising copy: bold, italics, lists, headings and links.
Where images go

Everything you upload here — gallery photos, video files, designer images — goes to the same managed object storage the rest of the workspace uses, and the storefront serves them through short-lived signed links. You don't manage files or paths.

Designing the storefront home

With no design, the store home is a plain grid of your published products. That's a perfectly good store. When you want more, open Designer — a three-pane builder: block palette on the left, a live preview in the middle, and the selected block's properties on the right.

Start from a template in the header seeds a ready-made layout — Classic shop, Boutique, Minimal, Promo / Sale, Modern or Lookbook — which you then edit. Otherwise build from blocks: Hero, Banner, Product grid, Featured products, Category nav, Gallery, Image, Feature row, Heading, Text, Spacer and Divider.

Click a block in the preview to select it, drag to reorder, and use the properties panel to set headings, colours, links, categories and item limits. Press Save when you're happy, and Open store to see the real thing.

A designed home hides the grid

Once the designer has blocks in it, they replace the default catalog grid on the home page. Shoppers reach the full filterable catalog through the Shop all link in the store header, which is always there. Add a Product grid or Category nav block if you want browsing on the landing page itself.

Letting shoppers filter

The catalog always offers search, category, price and sort. On top of that you choose which of your own product fields become filters, under Settings → Product filters. Each one is either a List (tick-box values — colour-named fields render as swatches) or a Range (a slider, for numbers). They appear in a sidebar next to the grid and combine with each other.

Out-of-stock products

By default a sold-out product simply disappears from the catalog. Turn on List out-of-stock products in Settings to keep it listed with an out-of-stock badge instead — visible, but not purchasable. Either way, a direct link to a sold-out product still opens; it just replaces the buy button with a notice.

Taking payment

Open Payments and pick a Provider. Two choices ship today: Manual (no online payment) and Stripe.

Manual means the store takes the order without charging — you collect the money yourself, by cash on delivery, bank transfer or whatever you've agreed.

Stripe uses your account, not ours. Set Mode to Test or Live, paste your Publishable key, Secret key and Webhook signing secret, then tick Enable online payments. Money goes straight to you; this has nothing to do with your BackOffice subscription.

Secrets are write-only

Once saved, a secret is never shown again — the field just gets a "set ✓" mark and a placeholder. Leaving it blank keeps what's stored; typing a new value replaces it. There's no way to read the old one back out, which is the point.

How a web order actually works

This is the part worth understanding properly, because it decides when stock moves and when revenue is recognised.

SetupWhat happens on checkout
Online payments off (manual) The order is placed immediately with status Placed. Stock is reserved there and then — the POS checkout runs, decrements the shelf and refuses to oversell. No revenue is posted to the ledger yet.
Online payments on (gateway) The shopper is sent to the gateway. Nothing is reserved and no order exists until the payment confirms. When it does, the order is created already Paid, stock moves, and the ledger posts.

Reserving at placement is deliberate: a shopper who is halfway through paying you by bank transfer shouldn't lose the last unit to someone else. Recognising revenue at payment is equally deliberate — placing an order isn't the same as being paid.

The order queue

Orders is an ordinary entity page, so everything in Views & filters applies — search it, filter it, save a view, export it. It ships with two views: Order queue, a board grouped by status, and All orders, a table. Each order carries an Order #, Pickup #, Customer, Email, Status, Total, Placed date, Channel (Storefront, Buy-link or WhatsApp) and a link to the POS sale it created.

StatusMeaning
PlacedReserved, awaiting payment.
PaidMoney received. Revenue posts to the ledger at this point.
ReadyPacked and waiting — ready to collect or ready to go out.
FulfilledHanded over or delivered. Done.
CancelledCalled off. Stock goes back and any ledger entry is reversed.

Processing an order

  1. Take the money if it isn't already taken A manual-mode order arrives as Placed. Collect payment however you agreed with the customer.
  2. Drag it to Paid On the Order queue board, moving a card to Paid is what recognises the sale. That's the moment the revenue journal posts, using exactly the same rule a cashier sale uses.
  3. Pack it, then move it to Ready In pickup mode this is also what puts the order's number on the public board as ready to collect.
  4. Move it to Fulfilled when it's gone Handed over, or out for delivery.

The customer is emailed on each of those transitions, provided your workspace has a mailbox connected. If it hasn't, the store still takes orders perfectly well — it just doesn't email. Your admins get an in-app notification (and mobile push, if that's set up) on every new order, saying whether it's awaiting payment or already paid.

Dragging to Paid twice is safe. Dragging to Cancelled isn't reversible by dragging back.

Ledger posting is de-duplicated, so flipping an order back and forth can't double-book revenue. But moving an order to Cancelled actively voids the POS sale behind it — stock is returned to the shelf and, if the order had been paid, the journal is reversed. Moving the card out of Cancelled afterwards does not undo any of that. Be sure before you cancel.

Cancelling and refunding

Cancelling is the supported path for calling an order off: it restores the stock and reverses the accounting in one move, and it's safe to trigger more than once. Returning money to the customer is done in your payment gateway — the store does not push refunds back out for you.

Selling on Facebook, Instagram and WhatsApp

Channels takes the products you've published and syncs them into a Meta product catalog, which is what powers Facebook Shop, Instagram Shopping and the WhatsApp catalog. One catalog feeds all three.

  1. Connect Meta Commerce The connection itself is made on the Integrations page — see Integrations & API. If your existing Meta connection predates this, you'll be asked to reconnect to add the commerce permission; your messaging and publishing access is kept.
  2. Pick or create a catalog Choose the Business, then an existing Catalog — or type a name and press Create. Products start syncing as soon as one is selected.
  3. Or use the feed URL instead The Product feed card gives you a URL to paste into Meta Commerce Manager as a scheduled feed. It's the alternative when you can't get the catalog permission approved — Meta fetches it on a schedule rather than you pushing.
  4. Attach the catalog to WhatsApp On the WhatsApp tile, Attach to WhatsApp links the catalog to your connected number so customers can browse products in chat.

Sync now pushes immediately and reports how many items were pushed and removed; the card also shows how many products are published, how many have reached Meta, and how many hit errors.

The feed needs a live store

The product feed URL is a public address on your storefront. If Storefront live is off, the feed returns nothing and Meta's scheduled fetch fails.

Measuring what the store does

Paste a Meta Pixel ID into Settings and the storefront reports page views, product views, add-to-cart, checkout starts and purchases back to Meta — which is what catalog ads and retargeting need to work.

Chat on the storefront

Show website chat on the store in Settings puts a live-chat widget on the home, product and cart pages. It's a store-specific widget, seeded with sensible defaults — the store name as its title and quick replies about orders, shipping and returns — so it never shows shoppers something meant for a different part of your site. Edit it afterwards and your changes stick.

Common questions

QuestionAnswer
A product isn't showing online Check three things in order: is Show online ticked on the Products page; does it have stock in one of the warehouses selected under Warehouses that sell online; and is Storefront live on.
The public URL says the store isn't found Storefront live is off in Settings. Every public page — including the product feed and buy-links — is gated behind it.
Can I have two storefronts? No. One workspace, one storefront, one public address derived from your workspace slug.
Does the store translate my products? No. The store's own wording — search, cart, buttons, checkout — is translated, and shoppers can switch language in the header. Product names and descriptions stay exactly as you wrote them.
Web orders aren't appearing in my ledger Revenue is only recognised once an order reaches Paid, Ready or Fulfilled — and ledger posting has to be switched on for POS sales in the first place. See Accounting.

The full path from a shopper's click to money in the books is walked end to end in Order to cash.