The founder called me the day after launch. "The traffic is good. The products look right. Why is nobody buying?" I asked him to send me the cart-abandon funnel from his Shopify backend. The number that came back was 38% bounce on the courier-rate page of checkout.
Riyadh shoppers were not the problem. Aramex was not the problem. The product was not the problem. The problem was that the rate showed up on step three of checkout, which felt — to a shopper who had already entered their phone and address — like a bait-and-switch.
I'd seen this exact pattern in three other KSA Shopify accounts. Five years of regional Shopify abandonment training had taught local shoppers to expect a surprise shipping fee somewhere late in checkout. So they preemptively bounced.
The fix took half a day. I added a small courier-estimate widget to the cart page itself — before checkout. It read the shopper's location from a simple geo-IP lookup, called the Aramex API for a live rate, and showed a single line: "Shipping to Riyadh: 25 SAR · arrives Tuesday-Wednesday." No surprise, no email gate, no account creation.
Within a week, cart-stage bounce dropped from 38% to under 3%. The visible-rate widget was not making people pay less — it was making them feel they were not being tricked. Same product, same price, same Aramex backend, totally different conversion.
I think about this build every time a client tells me a UX problem is a marketing problem. Sometimes it is. More often it is a single number that the shopper can't see, and the moment you put it in front of them — even if the number itself isn't great — they relax enough to actually buy.



