Cash on delivery on Shopify in Egypt and Morocco: how it actually works
Tarz guides · August 2026
Yes — cash on delivery works on Shopify in Egypt and Morocco, and there are two routes: Shopify's built-in manual COD payment method, or a COD order-form app such as EasySell or Releasit that replaces checkout with an on-page form. Either way, your theme must not fight the route you choose.
Why does cash on delivery dominate in Egypt and Morocco?
Two reasons, and neither is going away soon. First, trust: a shopper who has never heard of your store risks nothing by ordering when payment happens at the door. The risk sits with the seller until the parcel is handed over — which is precisely why COD converts where a card form does not. Second, cards: card penetration is lower than in the Gulf, and plenty of shoppers who do hold a card would still rather not type it into an unfamiliar website.
The result is visible across both markets: a large share of stores replace the native checkout with a cash-on-delivery order form, and even stores that keep Shopify's checkout offer COD as a payment choice. If you sell in Egypt or Morocco, the question is not whether to offer COD — it is which of the two routes below fits your operation.
Route 1: Shopify's native manual payment method
Shopify ships cash on delivery as a built-in manual payment method. No app, nothing added to your storefront, and checkout itself is translated by Shopify — so an Arabic storefront gets an Arabic checkout.
- In your Shopify admin, go to Settings → Payments.
- Under Manual payment methods, choose Cash on Delivery (COD).
- Write the additional details and instructions shoppers see — for example, that the courier should be paid in cash and the exact amount to have ready.
- Save. Orders placed with COD arrive as unpaid; you mark each one paid once the cash is collected.
The shopper walks through Shopify's standard checkout — address, shipping, payment — and simply picks cash on delivery at the payment step. That completeness is the route's strength and its weakness: you get proper address validation and shipping rates, but the buyer has to finish a multi-step form, and in markets used to a shorter "name, phone, address, confirm" ritual, the extra steps are where impatient buyers drift off.
Route 2: a COD order-form app
The second route replaces checkout entirely. Apps such as EasySell and Releasit put an order form directly on the product page — typically name, phone and address, then a confirm button. The shopper never sees Shopify's checkout; the app creates the order, marked for cash on delivery, in your admin. Pricing varies by app and plan, so check each listing.
Technically, the app injects its form into your product page through Shopify's app blocks and app embeds. That is where your theme choice starts to matter, because the app can only place a working form on a page that behaves the way Shopify says a product page should.
What must the theme guarantee for a COD app to work?
- A standard product form. The main product section uses Shopify's standard
{% form 'product' %}— no custom submission wrapper that assumes add-to-cart always leads to the native cart and checkout. - App blocks in the main product section. The app's form has to land inside the product section where the app expects it, not in a sidebar the app cannot target.
- A sticky add-to-cart that submits the same form. If the floating buy button is a separate script with its own logic, it bypasses everything the app attached to the real form. It must be a native submit of the one product form.
- No submit hijacking. No
preventDefault-and-replay, no synthetic submit events, no intercepting the form to run the theme's own flow first. Whatever else has attached to the form must see the genuine submit.
When a theme breaks one of these, the failure is quiet: the form renders, the button clicks, and orders never arrive — or arrive through the theme's path with the app's fields dropped. Merchants rarely trace that back to the theme, but that is where it lives.
| Native manual COD | COD order-form app | |
|---|---|---|
| Where the shopper orders | Shopify's standard checkout | A form on the product page |
| Setup | Settings → Payments, a few minutes | Install the app, enable its block or embed |
| Cost | Included with Shopify | Varies by app and plan — check the app's listing |
| What the theme must do | Keep the standard cart-to-checkout path intact | Standard product form, app blocks, no submit hijacking |
| Suits | Stores whose buyers finish a full checkout | Stores selling to buyers who expect the short form |
How Tarz handles this
Tarz is built so both routes work without modification. The product form is Shopify's standard product form, the main product section supports app blocks, and the sticky add-to-cart submits that same form natively — the theme never intercepts a submit. Its own add-to-cart enhancement handles only its own button and stands down entirely when a COD app block sits in the product section.
None of that is theoretical: EasySell and Releasit are both verified against the Tarz build with live test orders. Both install as app embeds — switch the embed on under App embeds in the theme editor and the form appears on the product page. Step-by-step setup lives in the cash-on-delivery apps documentation.
Beyond COD: Egyptian payment badges and the Bosta carrier
Cash may dominate, but it is not the whole picture. For shoppers who do pay up front, showing rails they recognise matters more in Egypt than a generic card row: Tarz ships original payment badges for Fawry and ValU — alongside Mada, STC Pay, Tabby and Tamara for the Gulf, and the standard global set — so the trust row on your product page speaks to the shopper actually reading it.
On the fulfilment side, the order-tracking page includes Bosta alongside Aramex, SMSA and the global carriers. It links out to the carrier's own tracking page and never fabricates a tracking status — an invented "out for delivery" is the fastest way to burn the trust COD earned you.
Operational habits that keep COD profitable
The mechanics above are the easy part. COD lives or dies on operations, so a few habits worth stealing — nothing clever, just what works:
- Confirm every order by phone or WhatsApp before dispatch. Refusals concentrate in unconfirmed orders. A thirty-second call filters out mistyped numbers, wrong sizes and impulse regret before you pay for shipping. Tarz's native WhatsApp button — a plain wa.me link, no app — keeps that channel one tap away for the shopper too.
- Ask for a landmark and a second phone number during confirmation. Couriers in both markets navigate by landmark as much as by street address.
- Treat return rates as a cost line, not a surprise. A refused COD parcel costs you shipping in both directions. Price it into your margins from day one rather than discovering it in month three.
- Keep a prepaid option next to COD. Repeat customers who trust you will often switch to paying up front — make it possible.
- Mark orders paid as the cash reconciles, so your Shopify reports stay honest and your accountant stays calm.
Related guides
Tarz (طراز) is an Arabic-first, RTL-native Shopify theme in final development, heading for the Shopify Theme Store. The planned launch price is $300, one time. Join the waitlist to get one email on launch day — and the launch price.