Who carries the order: your driver, or a courier?
The choice is made per order, and there is a moment after which it closes.

Every order is delivered one of two ways: by one of your own drivers, or by a courier company you connected from the dashboard. The choice is per order, not a setting you configure once and forget.
Making the choice. You open the order and pick: delivery by your driver, or a courier. When you pick, a shipment is recorded, and a shipment belongs either to a driver or to a courier, never to both. That rule is held in the database itself rather than in the interface, so no order can leave with half a decision.
Twelve Libyan courier companies are ready to connect in the dashboard today. Ready to connect means you have to link your account with the company and enable it before you can hand it an order. Linking alone is not enough and enabling alone is not enough; you need both.
When the choice closes. Here is a limit we would rather state plainly. You can swap the courier while the order is new, processing or ready, and while no shipment has been recorded. Switching between your own drivers and a courier has one extra condition: the order must be unpaid and no online payment may have been started on it. So if your buyer has begun an online payment, the delivery method is locked even though the order has not gone out. Once a shipment exists, switching is a cancel and a re-create rather than an edit.
Zones and prices. You write the delivery zones and the price of each, and you can set an expected delivery window per zone. The price is worked out for the buyer as they choose their city and area, before they confirm the order rather than after. If your store has no zone enabled the manual path still works, but as soon as you enable a single zone, an address no zone covers is refused rather than shipped for nothing.
What the buyer sees. Every order has its own tracking link, and the link alone is the authorisation: no account, no app, no password. The page shows your store's name and logo, the order number, a status ladder, the payment state, a shipment card carrying the courier's name or self-delivery along with the tracking code, and the items, totals and your contact details. The thank-you page shown after checkout is a different page, but it links to the same address.
How often does the status refresh? Once an hour. ezone asks the courier about the shipments and updates their status. It is not live, and we will not call it live. Your own drivers are different: their updates land the moment they press in their app, and those are immediate. A shipment passes through seven states, created, picked up, in transit, delivered, failed, returned and cancelled, and it cannot jump between them arbitrarily.
When a shipment fails or comes back. Failed, returned and cancelled are terminal states for a shipment: it does not move on to another one. So if the parcel comes back, the shipment keeps the state it reached, the order carries the return state with its reason, and the stock goes back. The record tells you what happened rather than what was supposed to happen.
And a status we do not recognise. If a courier returns a status description we have no mapping for, it is recorded as it arrived, with its original message, and it does not move the shipment's state. Better than a guess that sends you in the wrong direction.
What to do with this. Choose the method early, before an online payment starts. Write your zones and their prices before you open the store, because the price appears to the buyer in the cart. And send the buyer the tracking link: it is the cheapest way to reduce the where-is-my-order calls.