WooCommerce and cash on delivery in Algeria: what you still build yourself
Yes, WooCommerce supports cash on delivery. It ships a payment method called Cash on delivery, it is free, and you switch it on in two clicks.
In Algeria that setting does one small part of the job. It puts a pay-on-delivery option in front of the buyer, and nothing else.
The rest is four separate builds. A price for each of the 58 wilayas, a home rate and a stop desk rate. A way to hand the parcel to your courier. A way to get the delivery status back. A stock rule that waits for your confirmation call.
This article is published by DZBuild, and we sell one of the options named near the end. Every WooCommerce fact below was read on 7 September 2026 from WooCommerce's own pages or the WordPress plugin directory. The links are at the bottom.
Does WooCommerce support cash on delivery?
Yes, and you do not pay for it. Cash on delivery is built into the free WooCommerce plugin. On 7 September 2026 the WordPress plugin directory listed WooCommerce at version 11.1.0, free, with 7 million or more active installations.
The trouble is the phrase. In WooCommerce, cash on delivery means "the buyer pays the person who hands over the parcel". In Algeria it means a phone call, a courier account, a wilaya price list, and an order that might come back a week later.
WooCommerce solves the first sentence. You solve the second one.
What the built-in COD setting actually does
Open the payment settings and you get six controls, in WooCommerce's own words. You enable or disable the method. You write a Title shown at checkout and a Description under it. You write Instructions that "explain how to pay via COD". The last two are Enable for shipping methods and Accept for virtual orders.
When a buyer picks it, the order is created with the status Processing. WooCommerce's documentation says you then confirm the money yourself and move the order to Complete.
So the feature is a label plus a status. It knows nothing about your wilaya prices, your courier, or whether anyone answered the phone.
Setting 58 wilaya prices, home and stop desk
First, a correction that is worth 20 minutes of your time. Many Algerian tutorials still say WooCommerce only knows 48 wilayas. That was true, and it is not true now.
On 7 September 2026 we read the WooCommerce state list in the project's own source. It holds 58 Algerian entries, DZ-01 Adrar through DZ-58 El Meniaa. The bug report that asked for this, issue 33969 opened on 19 July 2022, is closed.
So the wilayas exist in the checkout dropdown. The prices do not.
WooCommerce prices delivery through shipping zones. A zone can be limited to a region, and the documentation states there is no limit on how many zones or methods you add. A customer matches one zone only, the first one that fits their address.
For an Algerian store that means one zone per wilaya. Inside each zone you add two Flat Rate methods, one for home delivery and one for the stop desk, each with its own price. 58 zones, two rates in each, so 116 prices typed by hand. Change couriers in March and you type them again.
The plugin directory has one tool aimed at this exact job. Yaxii Shipping Manager generates the Algerian zones for you, and on 7 September 2026 it listed 10 or more active installations.
Read its own description before you rely on it. It builds and previews zones. It also states that rate-table imports from providers such as Yalidine, ZR Express and Maystro are "not active in this release". So it saves you the typing. It does not send a parcel.
Getting the order to an Algerian courier
This is the part with no clean answer.
On 7 September 2026 we searched the WordPress plugin directory for "yalidine", "zr express", "algeria shipping" and "cash on delivery algeria". Here is everything Algerian that came back, with the install counts shown that day:
| Plugin | What it does | Active installations |
|---|---|---|
| Createk Delivery for Yalidine | Unofficial connector to the Yalidine API (checkout, fees, parcels) | Fewer than 10 |
| Yaxii Shipping Manager | Builds Algerian shipping zones; provider rate imports not active | 10 or more |
| MidoForm Order Form | Cash on delivery order form for the Algerian market | 10 or more |
| Yaxii Smart Form Lite | Cash on delivery form with per-state shipping prices | Fewer than 10 |
| Daleel, Arabic States | Adds Arab country states with Arabic labels | 40 or more |
Only one of those moves a parcel, and it is an unofficial plugin with fewer than 10 installations. Nothing in those searches sends a parcel to Maystro, NOEST or Ecotrack. We also tried the WooCommerce marketplace search for Algeria that day. The results did not load, so this article prints no number for it.
That leaves three honest routes.
Copy each order by hand into your courier's portal. It costs nothing except about a minute per parcel, plus the phone numbers you will mistype.
Pay a developer to build against your courier's API. The free unified shipping API we publish puts several Algerian couriers behind one set of endpoints. Our guide to it is written for the person writing the code. To compare the couriers first, read shipping companies in Algeria.
Or move the store to something that already did the work. That is the last section, and it is not the only right answer.
Getting the delivery status back on the order
WooCommerce order statuses are Pending payment, Processing, On hold, Completed, Cancelled, Refunded, Failed, and Draft.
Read that list again with an Algerian week in mind. Nothing in it covers a buyer who did not answer, a parcel waiting at the stop desk, or an order that came back.
A WooCommerce status changes when a person or a plugin changes it. Nothing in the box watches your courier. So without a build, your morning goes like this: open the courier portal, read yesterday's parcels, open WooCommerce, update the orders one by one.
The cost is not the ten minutes. The cost is that your sales number counts every parcel that left, including the ones now sitting in a return pile. Returns are their own subject, and we cover them in reducing your COD return rate.
When stock should move on a COD order
WooCommerce reduces stock when an order reaches On hold or Processing. A cash on delivery order lands in Processing at checkout. So your stock drops the second someone taps the button.
For a card store that is correct, because the money already arrived. For a COD store running Facebook or TikTok ads, it is wrong every day. A share of those orders is never confirmed on the phone. Each one holds a unit a paying buyer could have had.
The Hold stock (minutes) setting does not rescue you either. It only touches orders stuck in Pending payment, and it cancels them when the timer runs out. A COD order is never in Pending payment.
One recent change is worth knowing about, and it is worth knowing why it does not help. On 17 July 2026 the WooCommerce developer blog announced that from version 11.0, an order moving to Failed gives its stock back. That was written for card payments that get rejected later. A COD order does not fail, so nothing in it applies to you.
Your options are a custom order status wired to your own stock rule, or stock tracking off and a notebook. Both are work you maintain.
What a platform built for COD does instead
DZBuild is an Algerian platform, and this is the part where we are the seller rather than the guide, so check it against your own screen.
The delivery screen carries 102 Algerian courier tiles. Yalidine, ZR Express, Maystro, NOEST, Guepex and Zimou each have one, and a custom tile covers any other courier on the shared Ecotrack API. You connect your own courier account with your own credentials.
On an order, a send to delivery button builds the courier's own request. It fills in the customer name, phone, address, item list, delivery type and the cash to collect. It writes the tracking number back onto the order.
You can tick a batch and send up to 50 at once, and you get back a list split into sent, failed and skipped.
After that the statuses come to you. Tracking sync moves each order to shipped, delivered, returned or cancelled on its own, and a return puts the stock back without you touching it.
The wilaya table fills itself the same way. One button imports the rates, wilayas, communes and stop desk lists from your own courier account, so your checkout shows the prices you actually negotiated. And stock is committed when you confirm the order on the phone, not when the buyer taps the button.
The full courier list is in our documentation, and you do not need an account to read it. If your parcels already leave on a courier you have an account with, open both tools side by side and compare that one send step yourself.
When staying on WooCommerce is the right call
Three real reasons to stay, and then our own gaps in the same breath.
You already paid a developer and the wiring works. A working integration you own beats a migration you have not tested.
Your catalogue is small. At 5 parcels a week, typing them into the courier portal costs less than any subscription.
You need something a hosted platform will not do: custom pricing logic, a membership area, a wholesale tier, an ERP link. WordPress bends there and hosted platforms do not.
Where DZBuild loses today, stated plainly. Shipping prices are one table per store, so you cannot price differently per courier. Orders have no bulk delete and no bulk status change, and deleting is one order at a time. A send batch stops at 50 orders.
Pro is 1,000 DZD per month, read from the live platform on 7 September 2026. The first 3 days are free, with no bank card. After that you pay to keep the store open, and a payment made with a CIB, EDAHABIA or BaridiMob card is final once the plan starts.
If those gaps are the ones that would hurt you, stay where you are. If the four builds above are what eats your evenings, three days is enough to test the send step with your own courier account.
The money question over a full year is a different article: what a WordPress store really costs to run in Algeria.
Questions about WooCommerce and cash on delivery
Is WooCommerce free? The plugin is free and open source. Your costs are hosting, a domain, any paid theme or plugin, and the developer time in this article.
Does WooCommerce work in all 58 wilayas? The 58 wilayas are in the state list, verified 7 September 2026. Prices per wilaya are not included, and you build them as shipping zones.
What is WooCommerce Smart COD? It is a paid third-party plugin sold outside the WordPress directory, so its features and price come from the seller, not from WooCommerce. We did not test it and we are not printing a price we did not read today.
Can WooCommerce send orders to Yalidine automatically? Not on its own. On 7 September 2026 the only Yalidine plugin in the WordPress directory was an unofficial one with fewer than 10 active installations. Anything more reliable is a custom build.
Does WooCommerce inventory management work for cash on delivery? It reduces stock at checkout, which is wrong for COD because many orders are never confirmed. Fixing it means a custom order status and your own rule.
Which is cheaper, WooCommerce or an Algerian platform? The plugin is free, so the answer depends on hosting and developer hours, not on licence fees. The dated comparison across platforms is in our platform comparison.
How this was checked
Everything below was opened on 7 September 2026.
- The six COD settings and the Processing status: https://woocommerce.com/document/cash-on-delivery/
- The eight default order statuses: https://woocommerce.com/document/managing-orders/order-statuses/
- Zone matching, and no limit on zones or methods: https://woocommerce.com/document/setting-up-shipping-zones/
- Stock restored on failed orders in version 11.0, dated 17 July 2026: https://developer.woocommerce.com/2026/07/17/failed-order-stock-update/
- Version 11.1.0, free, 7 million or more active installations: https://wordpress.org/plugins/woocommerce/
- The state list with 58 Algerian entries, DZ-01 to DZ-58: https://github.com/woocommerce/woocommerce/blob/trunk/plugins/woocommerce/i18n/states.php
- Issue 33969, opened 19 July 2022 about the missing 10 wilayas, now closed: https://github.com/woocommerce/woocommerce/issues/33969
- The plugin searches behind the table and its install counts: https://wordpress.org/plugins/search/yalidine/ and https://wordpress.org/plugins/search/algeria+shipping/ which lists all five rows on one page
- Yaxii Shipping Manager, including its own note that provider rate-table imports are not active in this release: https://wordpress.org/plugins/yaxii-shipping-manager/
Not verified: the WooCommerce marketplace search for Algerian shipping extensions did not return results that day, so this article prints no figure for it. We tested no paid plugin sold outside the WordPress directory.
DZBuild's own figures, the 102 courier tiles and the 1,000 DZD monthly price, were read from the live platform on 7 September 2026. Plugin counts and prices move, so the date matters as much as the number. Tell us if something here goes stale and we will correct it in place with a dated line.
