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:
| Filter | Use |
|---|---|
| Status | Find all pending orders to call |
| Date range | Daily / weekly reports |
| Wilaya | Plan courier hand-overs by region |
| Courier | Reconcile with courier reports |
| Payment | COD vs CIB / Edahabia |
Search by phone, customer name, or order number from the search box at the top.
Order limits per plan
| Plan | Orders per calendar month |
|---|---|
| Free | 30 |
| Pro | Unlimited |
| Unlimited | Unlimited |
| Enterprise | Unlimited |
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
| Status | Description |
|---|---|
pending | Customer placed the order; you haven't reviewed it yet. |
confirmed | You've called and verified — stock is decremented. |
processing | Being packed / prepared. |
shipped | Handed to the courier; tracking number issued. |
delivered | Customer received it. |
cancelled | Cancelled before delivery — stock is restored if it had been decremented. |
returned | Returned after delivery — stock restored, refund logged. |
Stock effects
- Stock is decremented when the order moves to
confirmed, not atpending. This protects you from spam orders. - Cancelling from
confirmed/processing/shippedautomatically restores stock. - Returning from
deliveredalso 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:
- Order arrives as
pending. - You call the customer to confirm the order is real and still wanted.
- Mark as
confirmedif real → stock decrements, ready to ship. - Mark as
cancelledif 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:
- Pick a delivery provider from the dropdown (if you have several linked).
- Pick
homeordeskif you support both. - 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/cancelledin 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
confirmedunless you've actually verified. It decrements stock and creates a real shipping intent. - Use sub-statuses if your team handles ≥ 50 orders/day —
no answercallbacks need their own queue. - Bulk-cancel old
pendingorders 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.