Appearance
How the shop model works
Ten minutes here saves an hour of guessing later. Everything in the workspace is built from a small set of objects, and most confusion during setup comes from mixing two of them up.
Customers
| Object | What it is | Example |
|---|---|---|
| Organisation | The customer. Holds the price list, payment terms, default carrier, addresses. | Northside Football Club |
| Contact | A person at that organisation. One is the primary contact. | Megan Cole |
| Portal user | A login for the customer portal, tied to one organisation. | megan@northsidefc.au |
| Address | A billing or shipping address on the organisation. | Club rooms, 12 Park Rd |
A contact is not a login. Creating a contact lets you quote and invoice them; inviting them to the portal creates the portal user that lets them log in.
Walk-in retail customers still become an organisation. That is normal and expected: it keeps history, reorders and invoices attached to something.
Product
Blanks are described in four layers, and SKUs are what stock actually attaches to.
Brand Gildan
Style 5000 Heavy Cotton Tee
Colourway Black
Size L
= SKU GIL-5000-BLK-L <- stock lives here| Object | What it is |
|---|---|
| Brand | The blanks manufacturer |
| Style | A garment model within a brand |
| Colourway | A colour of that style, with a hex value used for mockups |
| Size | S, M, L, OS and so on, with a sort order so size runs read correctly |
| SKU | One brand + style + colourway + size. Carries on-hand quantity, reorder point and reorder quantity |
| Category | A grouping for the storefront: tees, hoodies, caps |
Stock is never a single number that gets overwritten. Every movement writes a row to an append-only ledger, so on-hand is always explainable.
Decoration and price
| Object | What it is |
|---|---|
| Decoration method | Screen print, DTG, DTF, embroidery, vinyl. Carries the cost matrix and the constraints that apply to it |
| Price list | A named set of prices. Assign one to an organisation to give a club or trade rate |
| Pricing rule | A composable rule that adjusts price: quantity tier, customer discount, setup waiver and so on |
| Coupon code | A percent or fixed-amount code a customer enters |
| Promotion | An automatic offer evaluated on save, such as buy 100 get 10 free |
The order matters when you set these up. Decoration methods first, then price lists, then rules on top. Details in pricing rules.
The job
This is the spine of the product.
Quote -> Order -> (production stages) -> Dispatched -> Invoice -> Paid| Object | What it is |
|---|---|
| Quote | Priced lines, not yet committed. Can be sent, chased, and converted |
| Quote line | One garment plus decoration plus quantity, priced by the engine |
| Order | A committed job. Has a stage, a due date, a promised dispatch date, stage history |
| Order line | The same shape as a quote line, plus cost snapshots taken at the time |
| Artwork | The design attached to an order, with versions, messages and an approval state |
| Production batch | Several orders ganged together for one press run |
| Time entry | One staff clock-on against one order, costed at that person's rate |
| Invoice | Issued from an order, with lines, tax and a payment link |
| Return | A receipt back in, with refund or credit note and stock writeback |
Two things are snapshotted, deliberately, and this is worth understanding before you change a price or a pay rate:
- Cost snapshots on order lines. The garment and decoration cost at the moment the order was created stays on the line. Raising a supplier price next month does not rewrite the margin of a job that already shipped.
- Labour rate snapshots on time entries. The rate is frozen when the clock starts, so a pay rise does not retroactively change last month's job costs.
Workflow stages
An order's stage is the column it sits in on the production board. The default five:
Artwork Print queue In production QC + Pack Dispatched
You can rename these or add your own in workflow stages. Automations, the floor board and the operator stations all read the same list, so changing it changes them all together.
Selling surfaces
| Object | What it is | Public URL |
|---|---|---|
| Public shop | Your catalogue on the apex site | /shop |
| Affiliate store | A branded sub-store for one organisation | /store/{slug} |
| Campaign store | A time-boxed group buy | /campaign/{slug} |
| Kiosk | In-store iPad self-serve | /workspace/kiosk |
All four end in the same place: a real quote or order in your workspace.
Your shop, your team
| Object | What it is |
|---|---|
| Tenant | Your whole workspace. Everything above belongs to exactly one tenant |
| User | A staff login, with a role and a labour rate |
| Role | Owner, manager, sales, production, designer, finance or viewer. Decides which screens and actions are available |
| Setting | A stored preference: brand name, accent colour, workflow stages, portal toggles |
Roles are covered in team and permissions. The short version: give people the narrowest role that lets them do their job, and use viewer for anyone who only needs to look.