Skip to main content

Receive your first order

When a customer places an order, you're notified instantly and the order moves through a state machine you control from the dashboard. This page walks through the full flow — what the customer sees, what you do, and how the order ends up at the customer's door.

🎬 Video — order flow walkthrough

What the customer does

  1. Lands on your storefront ({your-slug}.dzbuild.app or your custom domain).
  2. Picks a product, picks variants if any, and adds to cart.
  3. Proceeds to checkout, fills in name, phone, wilaya and address.
  4. Picks a delivery type — home delivery or stop desk — and confirms.
  5. Sees a "thank you" page with their order number.

That's it from the customer's side. They don't need an account to place an order.

The order lifecycle

pending → confirmed → processing → shipped → delivered

cancelled (any non-terminal state)

returned (after delivered)
StatusWhat it meansWho triggers it
pendingOrder placed, not yet confirmedCustomer at checkout
confirmedYou called the customer and verifiedYou (dashboard)
processingYou're packing the orderYou (dashboard)
shippedHanded over to the courier; tracking issuedYou or courier API
deliveredCustomer received itCourier API or you
cancelledOrder cancelled before deliveryYou or customer
returnedCustomer returned after deliveryCourier API or you
info

Stock decrements at confirmed, not at pending — so you don't lose inventory to fake or spam orders. Cancelling a confirmed order restores stock automatically.

What you do

1. You get notified

When an order comes in:

  • Dashboard bell — instantly, with optional sound.
  • Email — to the store owner's email.
  • PWA push — if you've installed the dashboard PWA on your phone.
  • Webhook — if you've registered one. See Webhooks.

2. Open the order

Dashboard → Orders (/dashboard/orders) → click the new order.

3. Call-confirm

Most Algerian stores run a call-confirm flow: pending orders sit until you call the customer, verify they actually meant to order, then move the order to confirmed. This is the single most important habit to build — it cuts return rates dramatically.

For a CRM-style call-confirm UI with sub-statuses (no answer, busy, postponed, fake, …), install the Advanced Orders addon and use /dashboard/orders/advanced.

4. Send to courier

  1. Click the order in the dashboard.
  2. Scroll to the Shipping section → pick a courier.
  3. The courier API generates a tracking number; your customer is notified by SMS automatically.
  4. The order's status moves to shipped.

See Couriers overview for setting up Yalidine, EcoTrack, ZR Express, Maystro, Noest or Procolis.

5. Watch it through to delivered

Most courier integrations sync the delivery status back automatically — you'll see the order flip from shipped to delivered in the dashboard once the courier marks it as delivered. For couriers without auto-sync, mark it manually when you get the SMS confirmation.

Order timeline

Every state change is logged with a timestamp and the actor (you, the customer, the courier API). Click an order → Timeline tab to see the full history. This is also exposed via the API (GET /v1/orders/{id} includes a timeline[] array).

What's next