Manage your product catalog, brands, and orders.
Go to Admin → Shop → Products → New Product. Each product has a name, description, price, and optional images. Products can be assigned to categories and associated with a brand.
Product descriptions support Markdown. Upload multiple images — the first image is used as the primary display image on listing pages.
To seed a new store quickly, go to Admin → Shop → Products → Import from catalog. Every imported product needs a category, so create at least one product category first — the import page will prompt you if you have none. Pick a brand from the logo grid — each brand shows how many catalog products it has, and brands with none are greyed out. Selecting a brand lists its products, which you can narrow with the per-brand category filter and view as a compact list or an image-rich card grid (your choice is remembered). Tick the products you want, set a default category and visibility, and import the whole batch in one click. Everything is editable afterwards from the normal product form. The brand catalog and bulk import are available on the Pro plan; on any plan you can add products by hand.
The brand catalog is a shared resource maintained by platform admins, not per-shop. If you spot a wrong price, description, or image on a catalog item, let your platform administrator know — platform admins can edit any catalog product's text, price, images, and visibility, or add, hide, and delete catalog products outright.
Those corrections stick. When the catalog is refreshed from a brand's source data, a manually corrected field is locked and left alone — the importer flags the new upstream value for platform-admin review instead of silently overwriting the fix.
For configurable equipment that needs a fitting or consultation conversation — rebreathers, CCR units, custom regulators — check Inquire to purchase on the product form. The price field clears, the public listing and detail page show “Inquire for pricing,” and Add to Cart is replaced with a Request a Quote button that opens the contact form prefilled with the product name. Inquire-mode products are hidden from the POS till and from admin order creation since they can't close without a quote conversation.
Inquire products can publish Configurable options — option groups with labels (Mouthpiece, Color, Material) and a comma-separated list of choices. The customer picks from each group on the product page; their selections are included in the Request-a-Quote message so your quote conversation starts with the spec already filled in.
Check Internal use only on the product form to keep a product out of the public shop entirely — it won't appear in listings, its detail page and the sitemap are hidden, and it can't be added to a cart or checked out. Unlike an inactive product, it stays fully available in the owner's draw, the POS till, and admin order creation, so you can still consume it or bill it as part of a job. Use it for parts kits and components the shop uses or charges for but never sells standalone online. You can set the flag on the product form, or when bulk-importing from the brand catalog. Products marked this way show an Internal use only badge in the admin product list.
For products that come in multiple options — sizes, colours, wetsuit thicknesses — use Option Groups on the product form. Add one or more groups (e.g. Size: XS, S, M, L, XL) and the platform generates the full variant matrix automatically. Each variant gets its own SKU, stock level, and an optional price override; if prices differ the listing card shows a range (e.g. “$89–$129”).
On the storefront, customers select their options on the product detail page before adding to cart — the price and stock state update live as they choose. Variants are also available at the POS: tap the product, pick the variant, and add it to the sale.
Brands are configured under Admin → Settings → Brands. Once set up, customers can filter products by brand on the shop page. Common dive brands include Aqualung, Scubapro, Shearwater, and Apeks.
When a customer completes checkout, their order is recorded and they receive an order confirmation email with an invoice PDF attached. Orders are visible under Admin → Shop → Orders.
Payments are processed through Square. See the Invoicing & Payments doc for payment configuration details.
Open an order and click Edit to substitute an out-of-stock item, add a forgotten one, or change quantities. A still-pending order rewrites and re-emails its unpaid invoice automatically. On a paid order the invoice it was paid on is left intact as the record; the platform shows the difference as a balance owed or a refund due, which you settle with the usual payment and refund tools — nothing is charged automatically. Every adjust is logged as an internal comment. You can even edit an order that has already partially or fully shipped — already-shipped items are locked (they can't be removed or reduced below the shipped quantity), but you can still add items or adjust the unshipped remainder, and the order's shipped/paid status re-derives automatically. Only completed and cancelled orders are fully locked.
Every order (until it's cancelled) has a comment thread. Post an internalnote for staff, or a customer-visible note that appears under “Notes from the shop” on the customer's order page — with an optional Notify customer checkbox that emails them the note when you post it.
Don't wait on a backorder to send what's ready. From a paid order, click Record shipment and choose which items and quantities are going out — ship everything remaining in one click, or enter partial quantities per line. Carrier and tracking number are both optional free text, and you can add an internal note for staff context.
Each recorded shipment emails the customer what shipped, what's still to come, and the tracking number if one was entered. The order shows a running “X of Y sent” progress badge until every item has gone out, at which point it advances to Shipped automatically. This works the same way for in-store pickup orders — record each pickup as it happens, with the same emails and progress tracking.
Let customers complete a purchase without creating an account. Turn it on under Admin → Configuration → Shop Settings — it's a per-store setting and off by default.
When enabled, a shopper can check out with just an email address instead of signing in. After checkout, they receive an order confirmation email with a secure link to view their order — no login required. They can create an account at any time afterward to track future orders from their dashboard.
A couple of things stay account-only: store credit isn't available on the guest path, and orders containing an Air Fill Card product require the customer to sign in.
Configure your fulfillment method under Admin → Configuration → Shop Settings. Three options are available:
The chosen method and any fee are shown to customers during web checkout, on the admin order form, and on all order detail views and receipts.
Products can optionally track stock quantities. When a product is out of stock, it is still visible on the shop page but cannot be added to the cart. Update stock levels from the product edit page.
Already have a website you're happy with — hosted on GoDaddy, Wix, WordPress, Squarespace, wherever — and only want us to run the store? You don't have to migrate anything. Turn off every section except Shop and your site becomes a store-only site: the shop is the homepage, the nav shows only shop links, and nothing 404s from a disabled section. Run it on its own subdomain (e.g. shop.yourdiveshop.com) right alongside your existing site.
There are two ways to plug the store into your current site, and you can use either or both:
shop.yourdiveshop.com. Simplest option; the store opens as its own full page.iframe so customers browse without leaving your site (see Embeddable Store below).Set External home URL on your tenant settings to your main site's address and the store's logo and a “Back to site” link will point there instead of the store homepage — so customers can always get back to your main site. Only http:// or https:// addresses are accepted; contact your platform administrator to turn on store-only mode and set this.
To serve the store from shop.yourdiveshop.com you keep your domain exactly where it is — at GoDaddy, Namecheap, wherever — and just add a couple of DNS records that point the shop subdomain at us. Your existing website on the bare domain is untouched. Add the store hostname under Admin → Configuration → Domains, then follow the step-by-step DNS walkthrough (with a GoDaddy example) in the Domains & DNS Setup doc. A subdomain is the recommended path; it's also what makes signed-in inline “add to cart” work in the embed below.
Your shop can be embedded as an iframe on your own website instead of (or alongside) linking out to it — visitors browse the chrome-free catalog and product pages in place, and the frame resizes itself to fit the content. Adding to cart works inline; viewing the cart, signing in, and checkout always break out to the full store in a top-level page, since payment needs a real first-party page to run on.
Only sites you allow can embed the store — this is locked down by default. Ask your platform administrator to add your site's address (e.g. https://www.yourdiveshop.com) to the embed allow list. Once it's allowed, they'll hand you a ready-made snippet — an iframe plus a small auto-resize script — to paste into your site. A browser will refuse to load the store on any site that isn't on the list.
Tip: for inline “add to cart” to work for a signed-in customer inside the embed, the store should live on a subdomain of the same site it's embedded on (e.g. shop.yourdiveshop.com embedded on www.yourdiveshop.com). Browsing and break-out checkout work regardless; your platform administrator handles this setup.
Once your site's address is on the embed allow list and you have the snippet from your platform administrator, add it to the page where you want the store to appear:
iframe in the snippet is the reliable, lowest-common-denominator method and works there.Publish the page and open it in your browser to confirm the catalog loads and resizes correctly. Test the “add to cart” and checkout break-out on a real published URL over HTTPS — embeds don't behave the same on local previews.