Store Builder

Orders

Read an order, update its three independent statuses, record parcels, send a pay link — and create one by hand for a sale taken outside the storefront.

Orders live under Manage → Orders. They are created when a shopper checks out on your published storefront, or by you with Create order — the last section.

The list searches by order number or customer name and filters by order status and by payment state — two separate filters, because an order is in both at once: confirmed and unpaid, or paid and not yet shipped. The columns are Order, Customer, Date, Status, Payment, Fulfillment, Total.

Three statuses, and they are independent

An order does not have a status — it has three, and they do not drag each other along.

Order status — where the order is in your process.

Pending Just placed, nobody has touched it
Confirmed You have seen it and accepted it
Shipped It has left the warehouse
Delivered The customer has it
Cancelled Not happening

Payment — whether the money has arrived: Unpaid, Partial (a deposit, an instalment), Paid, Refunded.

Fulfillment — whether the goods have gone: Unfulfilled, Partial (more than one parcel), Fulfilled.

Why three: a cash-on-delivery order that has arrived but not been collected for is Delivered + Unpaid. A prepaid order that has not shipped is Pending + Paid. Collapse them into one field and neither ordinary situation can be expressed.

Update them in the Status controls block on the order's page. You change one without touching the other two — which matters when several people work the same orders: a warehouse marking a parcel shipped cannot overwrite its payment state by accident.

Payment also moves on its own

With a gateway connected (the Payments app), a shopper who pays is reported back by the gateway and the order becomes Paid with nobody pressing anything. The gateway touches that field and no other — order status and fulfillment stay your decisions.

Partial arrives two ways. The gateway sets it when you edit an order — add a line, raise the shipping — while a charge is already out with the shopper: the money that arrives is the old amount and no longer covers the order. Or you set it deliberately with Amount to collect next on the order screen — a deposit; empty collects the whole balance.

Send a pay link opens a payment for this order and hands you a link for the customer — for an order taken by phone, or a COD order the shopper would rather prepay. The order is marked paid only when the gateway confirms.

If the order screen says "This order has {n} settled payments — money was collected more than once", believe it: check the gateway and refund the extra before doing anything else.

Parcels

The Parcels block records each parcel that left: carrier, tracking number, tracking link (optional, must be a full http(s) address) and an internal note the customer never sees.

The order worth remembering: record the parcel first, then mark the order Shipped. The shipping email carries a tracking number only if a parcel exists when it goes out. Deleting a parcel record does not recall an email already sent.

What is in an order

Items — each line with its unit price, quantity and SKU. Totals — Subtotal, Discount, Shipping, Tax, Total.

If part of the order was paid with a gift card, that amount shows below the Total with a Still due line, not folded into Discount: a gift card does not make the goods cheaper, it pays for them.

Customer, Ship to, Bill to, Note.

Line items and totals are history. They record the sale that happened, at the prices of that moment, and cannot be rewritten. If a price changes tomorrow, today's order keeps today's numbers — which is what you need when the books have to reconcile.

The language the shopper bought in

On a store selling in more than one language, an order records the language the shopper was reading when they checked out, and the emails about that order — placed, paid, shipped, cancelled — are written in it. A shopper who bought on the /en/ pages is not sent a Vietnamese confirmation.

It is a snapshot, like the prices: removing that language from the store later does not change which language the buyer is written to. And it is checked at checkout against the languages you actually publish, so an order can only ever record one of them.

The item names on the order stay the names the products were sold under. The email and the shopper's own order history print each line in the shopper's language when the product has been translated — a display, not a rewrite of the record.

An order with no language recorded — placed on the store's default language, typed in by you with Create order, or placed before this existed — is written to the way emails always were. See Selling in more than one language for that rule.

When a shopper wants to send something back

A paid order can be returned, if you have turned returns on. Requests live in a queue of their own because they have a life cycle of their own: see Returns.

Deleting an order

Delete order removes it permanently and cannot be undone. A deleted order disappears from every revenue report; for an order that fell through, Cancelled is usually the better answer — it keeps the record while saying plainly it was not fulfilled.

Creating an order by hand

Create order records a sale you took somewhere else — over the phone, in chat, at the counter. Search for products to add lines, pick a payment method, paste a discount code if there is one.

Two things the dialog says that you should believe:

  • Totals are not computed here. The dialog shows only the line subtotal; delivery, discount and tax are worked out when the order is saved, by the same arithmetic checkout uses. So an order you typed and an order a shopper placed never come out to two different numbers for the same basket.
  • Picking a customer from the search links the order to that record. Typing a name by hand makes a guest order: it is missing from that person's record, from "this customer's other orders" and from their lifetime spend — nothing matches by email. A first-time phone buyer typed by hand is the ordinary case; for a customer who already exists, pick them.

Not through the API: POST /api/v1/orders answers 405 with the code orders_are_read_only. An integration does not get to mint revenue without going through checkout. See The public API.

Updated 26/09/2026