# Stop Desk Selector

**Category:** Storefront  ·  **Min plan:** Free  ·  **Slug:** `stop-desk`

Let customers choose a specific desk/pickup point when selecting desk delivery.

## Video tutorial

[Stop Desk Selector](https://www.youtube-nocookie.com/embed/WXLRs4eZO-k)

## Features

* Desk selection on checkout, fast-checkout and landing pages
* Desk name, address & phone in a detail card
* Served from DZBuild's own pre-synced desk list — no live courier call
* Inert (changes nothing) when your couriers have no desk data

## Stop desk vs. this add-on

In DZBuild, **stop desk** is two distinct things:

1. A **delivery type**: *desk delivery* on an order, as opposed to *home delivery*. This works without any add-on, but **the customer never names a desk**: desk delivery is a cheaper delivery choice priced by your own desk rate, and the office is picked at send time. Couriers that need a specific office still get one when you send the order: a desk of that courier in the customer's commune, else one elsewhere in the wilaya, and the send is refused when the wilaya has none.
2. **This add-on** — adds a structured picker listing the actual desks available in the customer's wilaya, with address and phone.

So the add-on doesn't replace anything: it adds a picker that didn't exist. You only need it if you want customers to choose a specific desk.

A separate add-on, **Pickup From Store**, is often confused with this one. Stop Desk selects one of the *courier's* desks; Pickup From Store selects one of *your own* locations.

For courier setup details (which couriers expose desk lists, how addresses are synced), see [Couriers → Stop Desk](https://dzbuild.com/docs/couriers/stop-desk.md).

## Why use it

* Customers picking up at a desk want to know exactly where: which desk, what address, what phone to call if they're late. Without the picker they get none of that at checkout.
* Without it, the parcel goes wherever the fallback lands: any desk in the customer's commune, else any desk in the wilaya. The customer had no say in it.
* With it, the desk the customer picked is the one sent to the courier.

## How to activate

1. Make sure at least one of your couriers is **linked** and has desk data synced (see the courier list below, and [Couriers → Stop Desk](https://dzbuild.com/docs/couriers/stop-desk.md)).
2. Open **Dashboard → Add-ons** at [`/dashboard/addons`](https://dzbuild.com/dashboard/addons).
3. Find **Stop Desk Selector** under *Storefront*.
4. Click **Activate** (Free plan).

Activating it can never break desk delivery

If none of your linked couriers has any desk data at all, the add-on stays completely inert store-wide: nothing renders and desk delivery keeps behaving exactly as it did before, on your own pricing settings. There is no risk in trying it.

## Which couriers supply desks

| Courier                                                                                          | Desk data                                                                                                                                                                                                                      |
| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| ZR Express New, NOEST, EcomDelivery                                                              | Real desk locations: name, address, phone                                                                                                                                                                                      |
| Yalidine, Guepex, Easy & Speed, Economiqua, Zimou Express, Elogistia, MDM Express, Near Delivery | Real desk locations with name and address; these couriers publish no desk phone number                                                                                                                                         |
| Maystro                                                                                          | Real desk locations with their name only                                                                                                                                                                                       |
| EcoTrack-based couriers, Colivraison                                                             | Commune-level only — a "has desk delivery" flag, so entries read *Courier — Commune* with no address or phone                                                                                                                  |
| ZR Express (old / Procolis)                                                                      | No named desks. Every commune of a wilaya that carries a stop-desk price is offered as a commune-level entry under the ZR Express name, with no address or phone, and ZR picks the actual office when it dispatches the parcel |

The add-on still works for the commune-level couriers — it just shows less detail.

## Where the picker appears

All three order surfaces, so it covers your whole funnel:

* The standard checkout page.
* Fast-checkout on the product page (all five fast-checkout styles, including `commerce`).
* Landing-page order forms.

## How it behaves at checkout

When the customer picks **Desk delivery**:

1. The storefront loads the desk list for their selected wilaya from **DZBuild's own pre-synced desk list** — not from a live courier call. It stays fast and keeps working even when the courier's API is down.
2. Each entry appears in a dropdown, labelled *Courier — Commune | address* (address truncated to the first 50 characters). When several couriers are linked, the courier's proper display name prefixes each option — including the custom name you gave a custom EcoTrack integration — so the customer can tell whose desk they're choosing.
3. Once a desk is selected, a detail card below the dropdown shows its full name, address and phone. Commune-level entries show the courier and commune only.
4. The selection is stored alongside the order. The order shows the chosen desk and its courier, and when you send the order, that courier is selected for you. Keep it: if you send the order with another courier, that courier picks its own office instead.

### When there are no desks

There is no "picker with no entries". Three different things happen depending on the level:

* **The wilaya has no synced desks** — the desk delivery option is removed entirely and an informational notice explains that there is no desk in that wilaya.
* **The list comes back empty after selection** — the checkout silently switches the customer to **home delivery at the home price** and recalculates the total. Be aware this changes the shipping charge the customer sees.
* **No linked courier has any desk data** — the add-on is inert store-wide and desk delivery behaves exactly as before activation.

## Tips

* Desk availability is evaluated at **wilaya** level, not commune level. If any desk exists anywhere in the customer's wilaya, the desk option is offered — even when their own commune has none, because they can pick a desk elsewhere in the wilaya. Your own wilaya-level "desk delivery enabled" setting still has the final say.
* The picker loads desks per wilaya, so customers must select their wilaya **before** the desk dropdown becomes usable. (DZBuild's checkout already enforces that order — the dropdown starts disabled.)
* With [Multi-Language](https://dzbuild.com/docs/addons/multi-language.md), the commune in each desk entry shows in French for visitors browsing in French and in Arabic otherwise; desk names and addresses always show exactly as the courier publishes them.

## Compatibility

* **Paused on the `digital` theme.** While your store runs the digital theme the add-on stays paused — paused, not uninstalled, and resumes automatically if you switch back to a physical-goods theme.
