Skip to main content

Orders

Orders are tracked as a state machine with a full audit history. This page covers the orders list, the detail view, the call-confirm workflow most Algerian merchants run, and the Advanced Orders CRM addon for sub-statuses and call attempts.

Video

The orders list

Open Dashboard → Orders at /dashboard/orders. You'll see every order with:

  • Order number (e.g. ORD-12345)
  • Customer name and phone
  • Wilaya / city
  • Total
  • Status pill
  • Created date
  • Quick actions

Filter by:

FilterUse
StatusFind all pending orders to call
Date rangeDaily / weekly reports
WilayaPlan courier hand-overs by region
CourierReconcile with courier reports
PaymentCOD vs CIB / Edahabia

Search by phone, customer name, or order number from the search box at the top.

Order limits per plan

PlanOrders per calendar month
Free30
ProUnlimited
UnlimitedUnlimited
EnterpriseUnlimited

When a Free-plan store hits 30 orders in a single calendar month, new checkouts are blocked until the next month rolls over (or until the merchant upgrades). Existing orders are unaffected. Resetting happens automatically on the 1st of every month.

To upgrade, open /dashboard/subscribe and click ▶ How to renew for the in-app guided tour, or watch the DZBuild YouTube channel tutorials.

The state machine

pending → confirmed → processing → shipped → delivered
↓ ↓
cancelled cancelled / returned
StatusDescription
pendingCustomer placed the order; you haven't reviewed it yet.
confirmedYou've called and verified — stock is decremented.
processingBeing packed / prepared.
shippedHanded to the courier; tracking number issued.
deliveredCustomer received it.
cancelledCancelled before delivery — stock is restored if it had been decremented.
returnedReturned after delivery — stock restored, refund logged.

Stock effects

  • Stock is decremented when the order moves to confirmed, not at pending. This protects you from spam orders.
  • Cancelling from confirmed / processing / shipped automatically restores stock.
  • Returning from delivered also restores stock.

The order detail page

Click any order to open /dashboard/orders/:id. You'll see:

  • Status pipeline — visual progress with the current status highlighted. Move forward by picking a new status from the pipeline buttons.
  • Items — what was ordered, with variants, prices, totals.
  • Customer — name, phone, address, plus a quick link to all previous orders from this customer.
  • Shipping — wilaya / city, courier, tracking number, delivery type (home / desk).
  • Payment — method (COD by default), amount, transaction reference if any.
  • Timeline — every status change with timestamp and actor.
  • Notes — internal notes (not visible to the customer).

The call-confirm workflow

Most Algerian merchants run a phone-confirm flow:

  1. Order arrives as pending.
  2. You call the customer to confirm the order is real and still wanted.
  3. Mark as confirmed if real → stock decrements, ready to ship.
  4. Mark as cancelled if fake or customer-cancelled → no stock used.

The dashboard's call-confirm button opens the customer's phone number in a clickable link so the call is one tap away on mobile.

For a dedicated CRM-style page with sub-statuses, call-attempt tracking and a full per-order timeline, install Advanced Orders.

Sending an order to a courier

If you've linked a courier (Yalidine, EcoTrack, Maystro, Noest, ZR Express, …) on /dashboard/shipping, the order detail page shows a Send to courier button:

  1. Pick a delivery provider from the dropdown (if you have several linked).
  2. Pick home or desk if you support both.
  3. Click Send. DZBuild calls the courier's API, gets back a tracking number, stores it on the order, and moves the status to shipped.

If the courier's API is down, DZBuild surfaces the error and leaves the order untouched — no half-state.

Tracking and timeline

Once a tracking number is issued, the timeline shows every event the courier reports back (in transit, at desk, delivered, returned). Some couriers don't push delivery events automatically — when that happens, mark the order as delivered manually after the customer confirms by phone or SMS.

Bulk actions

Select multiple orders to:

  • Mark as confirmed / cancelled in batch.
  • Generate delivery labels (PDF) — see Custom Delivery Label for per-product layouts.
  • Export to CSV.
  • Hand over to a courier (one API call per order).

Notifications

When a new order arrives:

  • Dashboard bell with sound (toggle in /dashboard/notifications).
  • Email to the store owner.
  • PWA push notification if the dashboard is installed as a web app.
  • Webhook if registered — see Webhooks.

Advanced Orders (addon — Unlimited plan)

The CRM-style page at /dashboard/orders/advanced adds:

  • 12 sub-statuses on top of the standard ones: no answer, busy line, postponed, fake, duplicate, customer cancelled, waiting customer call, at courier, returned, completed, …
  • Call-attempt tracking with timestamped notes.
  • Full status timeline per order.
  • Filter and search by sub-status.
  • Zero impact on the standard orders page — it's a separate, dedicated CRM workspace.

Activate from /dashboard/addons (requires the Unlimited plan).

Tips

  • Confirm by phone within 1 hour of the order when you can — the longer the delay, the more cancellations.
  • Don't move orders to confirmed unless you've actually verified. It decrements stock and creates a real shipping intent.
  • Use sub-statuses if your team handles ≥ 50 orders/day — no answer callbacks need their own queue.
  • Bulk-cancel old pending orders weekly. They're usually fake / spam and clutter the list.
  • Bind the order detail to a single screen during call sessions — open it on tablet, dial on phone.
  • Send to courier in batches at the same hour each day so the courier expects a pickup window.

What's next