The scenario
The brand sells women's occasion and formal footwear — heels, block heels and dress flats — for weddings, graduations and Eid, on a Shopify store with KNET, Tabby and cash on delivery at checkout. It grew for two years selling through Instagram DMs before moving the catalogue onto a proper storefront and turning on paid traffic.
Paid traffic arrived and converted at roughly half the rate the founder expected from her own DM sales, and a meaningful share of the orders that did complete came back within a month, mostly for size and mostly paid by cash on delivery. The store looked finished. It had simply never been tested.
- Monthly revenue band
- pending client sign-off
- Average order value
- pending client sign-off
- Fulfilment
- Ships via two local couriers, cash on delivery available nationwide
- Team
- Founder plus one customer service agent on WhatsApp
Paid traffic arrived. The page and the checkout let it go.
The funnel read, split by device and language, showed the drop was not evenly spread. Arabic sessions on mobile — the majority of the traffic — left at two specific points: the size chart, which rendered left-to-right inside an otherwise right-to-left page and read as a foreign object, and the payment step, where KNET, Tabby and cash on delivery only appeared after the customer had already entered an address.
Session recordings on the three product pages taking the most spend confirmed it. Shoppers opened the size chart, scrolled past it without pausing — a sign it wasn't being read, not that sizing didn't matter — and a share of them left the tab open and came back later on WhatsApp asking the exact question the chart was meant to answer. The ones who did check out in cash often refused the parcel at the door once the courier quoted a fee that had never appeared on the site.
None of this was a traffic problem. The store had spent its whole budget getting people to a page that could not answer the one question — will it fit, and will it cost what I expect — that decides a footwear purchase, in either language.
What we did — the pages and offers we tested
The losers are here on purpose. A test with only winners was never a test.
A centimetre size guide, fixed above the fold in both directions
Winner"Measure in centimetres — see your size in 10 seconds."
- Format:
- Product-page module, right-to-left correct table, sitting directly under the price
Rebuilding the table as a native right-to-left element rather than an embedded left-to-right image was the single fix with the widest effect, because it touched every Arabic mobile session rather than one segment. Pre-purchase WhatsApp questions about sizing dropped noticeably within the first two weeks, before any other change went live.
Payment and delivery badges moved to the product page
Winner"KNET, Tabby, or pay when it arrives — shown here, not at checkout."
- Format:
- Icon row directly under the add-to-cart button, both languages
Trust in the payment options had been building at the worst possible moment — after the address was typed in. Moving it to the point of first interest, alongside an honest cash-on-delivery fee, cut the number of orders refused at the door because the fee stopped being a surprise the courier delivered.
The exchange policy, stated in the first screen
Winner"Wrong size after wearing it once? Free exchange within 5 days."
- Format:
- Banner above the fold on the product and cart pages
Occasion shoes are usually bought once, close to the date, with no room for a mistake — stating the exchange window plainly turned hesitant browsers who had been reading and re-reading the size chart into people who actually completed the order, since the cost of guessing wrong was now visibly recoverable.
A bundle discount pop-up on exit intent
Lost"Wait — two pairs for less than the price of two."
- Format:
- Exit-intent modal, both languages
A reasonable idea that lost on mobile, where exit intent fires unreliably and mostly interrupted people mid-scroll rather than mid-departure. It also pushed a two-pair bundle onto a category people buy one pair of at a time for a specific event, which cut add-to-cart while the pop-up was live rather than lifting it.
A delivery-by-date promise near events
Winner"Order by Wednesday, wear it Friday — express delivery available."
- Format:
- Sticky banner during wedding season and the two weeks before Eid
Occasion buyers were not asking whether the shoe was good; they were asking whether it would arrive in time. Naming the cut-off date directly moved orders that had been sitting in the cart for days into completed checkouts, and it worked specifically inside seasonal windows rather than as a year-round message.
What we did — the optimizations, in order
Read the funnel split by device and language
We joined analytics with the store back end and read the drop between product page, cart, checkout and payment separately for Arabic and English, and for mobile and desktop.
Why: A single blended conversion rate had been hiding a funnel that leaked twice as hard in Arabic on mobile. Splitting it is what told us where to spend the first week, instead of guessing at a homepage redesign nobody needed.
Watch real sessions on the top three pages
Recordings and heatmaps on the three product pages taking the most paid spend, in both languages, over two full weeks.
Why: Analytics tells you a page has a problem; a recording tells you what the problem looks like. Watching real scroll behaviour is what surfaced the mistranslated size table and the payment badges nobody scrolled far enough to find.
Fix the floor: speed, right-to-left, payment visibility
Compressed product images, rebuilt the size table as a native right-to-left element, and moved KNET, Tabby and cash-on-delivery badges onto the product page above the fold.
Why: These fixes touch every visitor regardless of what else is tested, so they come first and they are the cheapest gain available. A store cannot test its way past a broken layout — it has to fix it.
Run one page or offer test at a time
The exchange-policy banner, the delivery-by-date promise and the bundle pop-up each ran alone against a holdout, two live tests per template at most.
Why: Running the exchange banner and the bundle pop-up at once would have made it impossible to say which one actually moved checkout completion. One variable at a time is what let us call the bundle a loser with confidence rather than a guess.
Rebuild checkout for a Kuwait address and a hesitant payer
A phone-first form, address entry by area, block and street, an honest cash-on-delivery fee stated before the courier is booked, and a WhatsApp fallback for anyone who abandons the form.
Why: A checkout built around a Western address format and a hidden fee is a checkout built to lose Kuwaiti cash-on-delivery buyers specifically, and they were most of the traffic. Fixing the form and the fee together is what cut door refusals rather than just cart abandonment.
Confirm on WhatsApp, ask for the review after the event
Order confirmation and delivery updates on WhatsApp rather than email alone, with the review request timed to land a week after the estimated event date rather than the day of shipping.
Why: A review asked the day the parcel ships is a review about the box, not the shoe. Timing it to after the occasion produced fit-specific feedback that fed straight back into the size guide, closing the loop the whole project started from.
Keep a weekly test log
One shared document with the hypothesis, the result and the decision for every test, reviewed with the founder every week rather than reconstructed from memory each quarter.
Why: Without a log, a small store re-runs the same size-chart test before every wedding season and re-learns the same lesson. The log is what turns one project into a compounding advantage instead of a one-time fix.
What changed
The table above carries the headline figures, and the return rate is the one to read first, because it is the number that had been hiding inside every other metric: a return three weeks after delivery never shows up in a checkout-completion chart, but it shows up in the bank account. It moved once the size guide became something shoppers could actually read and the exchange window removed the fear of guessing wrong.
Checkout completion and conversion rate moved together, and the biggest single jump happened in the Arabic mobile segment that had been leaking hardest — which confirms the diagnosis rather than being a separate win. The bundle pop-up is worth naming precisely because it did the opposite of what it promised: a discount aimed at the wrong purchase pattern for this category cost the store completed orders while it was live.
Cash-on-delivery orders kept converting at roughly the same rate, but fewer of them were refused at the door, because the fee stopped being a surprise. That is a quieter number than a conversion-rate chart, and in a category this dependent on cash on delivery it matters just as much.
What we would do next
Mirror the same centimetre size guide and exchange-policy line into the WhatsApp catalogue and the Instagram shop, both of which still send buyers to the old size chart. Right now the fix lives in one place while a share of orders still start somewhere else.
Test a sizing-insurance message — free exchange, no questions asked, stated at the point of adding to cart — in place of a price discount for the next bundle offer, since discounting a single-purchase occasion category clearly cost more than it earned this round.