Skip to content
OrderAgentOrderAgent

How a customer places an order

The draft-and-confirm flow, the order card, adding to an open order, and why Confirm is mandatory.

From the customer's side there is nothing to learn. They message the shop the way they always have. This page describes what comes back and why.

The draft-and-confirm flow

Customer

2 bag atta 5kg, ghee 1 tin and 500g chilli powder. Deliver after 6pm please.

OrderAgent

Order FB-1204 — draft

Atta 5kg × 2 560.00 Ghee (tin) × 1 720.00 Chilli powder 500g × 1 140.00 ───────────────────────── Total 1,420.00

Noted: deliver after 6pm

[ Confirm ✓ ] [ Add more + ] [ Cancel ]

Three things happened there beyond the obvious. The quantities and units were read from ordinary phrasing. The delivery instruction was recognised as an instruction rather than a mystery product. And nothing was committed — the order is a draft.

Why Confirm is mandatory

An order does not exist until the customer taps Confirm.

This is not a UX preference. Until that tap, no stock is reserved, no price is frozen and nothing appears in your Today queue. It means a customer can think out loud — add an item, change their mind, ask a price — without any of it becoming a commitment you have to unwind.

The tap itself does three things at once, all or nothing:

  • Reserves stock, decrementing each product.
  • Freezes prices. Each line already stored the price the customer was shown; the confirm makes that permanent. A price change tomorrow cannot restate this order.
  • Sets the payment deadline, normally 24 hours from that moment.

If stock has gone in the meantime

If any line cannot be reserved, the whole confirm rolls back — including lines that reserved successfully a moment earlier — and the customer is told exactly which lines are short, and how much is left:

OrderAgent

Sorry — some items just went out of stock:

• Ghee (tin) — available stock: 1tin • Almond 1kg — available stock: 0kg

Please remove or reduce them and send the order again.

Naming the items and the quantity is deliberate. A customer told only that something failed can only give up; one told "1 tin left" reduces the quantity and completes the order.

Adding to an open order

While an order is still a draft, any further order-shaped message joins it — whether or not the customer says "add".

Customer

also 1 more ghee

Adding a product that is already on the order merges into that line's quantity rather than creating a second line for the same thing.

Once the order has moved to awaiting payment, it is locked. A new order-shaped message then gets told that payment is outstanding, rather than either silently appending to a reserved order or quietly opening a second one behind the customer's back.

When something cannot be matched

Customer

2 bag atta and some kesari powder

OrderAgent

I have added Atta 5kg × 2.

I could not find "kesari powder" in the catalogue. Did you mean Turmeric powder 500g?

[ Yes ] [ No ]

A "No" ends it there and the term is recorded for you to review. A "Yes" adds the line — and if stock has since gone, the reply says so for that line specifically, with wording that reflects that the line never made it onto the order.

Cancelling

The customer can cancel while the order is a draft or awaiting payment. Stock that was reserved goes back immediately.

You can cancel any order at any point up to fulfilment with CANCEL FB-1204 or from the order screen. See owner commands.

What the customer never sees

  • Our product name. The shop is the only brand in the conversation.
  • Internal ids. The reference FB-1204 is the only handle they need.
  • Stock levels for products they did not ask about.