Helm › Helm University › Track 3 › Lesson 3.4
Lesson 3.4Eight states, one of which nothing can ever reach, and a first order that will not appear in your list until it is paid.
Prefer to listen? This is the same lesson, word for word. The text below is the transcript.
This lesson prepares you to: Follow an order through every state it can occupy, and know which of them you can see.
An order moves through a small set of named states.
| State | What it means |
|---|---|
| pending | Created, waiting for the buyer to pay |
| awaiting_approval | A minor bought it and a parent has to decide |
| paid | Money taken. This is where your work starts |
| shipped | You marked it shipped |
| delivered | Carrier or a person confirmed it landed |
| cancelled | Never paid, or denied by a parent |
| refunded | Money returned |
Helm's order table also allows a fulfilling state, meaning seller preparing. Nothing in the entire codebase ever writes it. It is read in a dozen places and set in none, so no order has ever been in it or ever will be until something writes it. If you are looking for a way to mark an order as being prepared, there is not one: an order goes from paid straight to shipped.
Your seller order list deliberately hides orders that are pending, awaiting approval or cancelled. You see an order when it is paid, which is the first moment it is actually your problem.
That is the right default. An unpaid order is not a sale, and a list full of abandoned checkouts would bury the real ones.
Between a buyer pressing buy and an order existing, three things are checked in this order.
An order that totals zero settles immediately as paid, with no card, no Stripe and no hold. It is used for Helm's own store and for giveaways.
Worth knowing as a seller: a free item is a real order that lands in your list and needs fulfilling like any other.
At checkout Helm looks up your product's price on the server, applies any live flash sale itself, and charges that. The page the buyer is on never supplies a price and Helm would not trust it if it did.