Sri Lankan e-commerce has payment habits that global WooCommerce tutorials never mention: shoppers compare bank installment plans before buying, “buy now pay later” means Koko or Mintpay rather than Klarna, and a large share of orders still settle by direct bank transfer with a photographed deposit slip. If your store doesn’t speak that language on the product page, you lose the sale at the exact moment of decision. Here’s how I approach it — it’s the problem my plugin SL Bank Pricing for WooCommerce exists to solve.
1. Show installment pricing where the decision happens
Cards from Commercial Bank, HNB, Sampath, BOC and a dozen others carry 6/12/24/36-month installment schemes, usually with a per-duration surcharge and often an instant-payment discount for straight settlement. The shopper’s real question isn’t “what does it cost” — it’s “what’s my monthly figure on my bank’s card”. Answer it on the product page: per-bank monthly breakdowns, computed from your configured surcharge, shown consistently through cart and checkout so the number never shifts mid-journey. A surprise at checkout is an abandoned cart.
2. Treat BNPL as information, not a gateway
Koko, Mintpay and Genie handle their own checkout flows and merchant onboarding. What your product page needs is the badge — “pay in 3 with Koko” — because that’s what unlocks the purchase decision for younger buyers. Keep the display layer decoupled from payment processing: gateways change their APIs, badges don’t. (This is why my plugin is deliberately display-only; WooCommerce’s own gateways keep doing the actual money movement.)
3. Do direct bank transfer properly, not grudgingly
WooCommerce’s built-in BACS gateway takes the order but the merchant experience around it is bare. What Sri Lankan stores actually need:
- Account details (name, number, branch) for each bank the store banks with, visible on cart and checkout — buyers transfer within their own bank to avoid fees and clearing delays
- A payment-slip upload on the order confirmation page, attached to the order, so “I paid, here’s the slip” stops happening over WhatsApp
- Order status automation once the slip arrives, so fulfilment isn’t waiting on someone checking an inbox
4. Engineering notes if you’re building this yourself
- Slip uploads are user-submitted files on an unauthenticated-ish surface: validate MIME types server-side, randomize filenames, and attach via the media API with the order as parent.
- Store per-bank config as structured options, and give merchants JSON export/import — staging-to-production config drift is real.
- Order meta goes through the WooCommerce CRUD layer so HPOS stores work (I wrote a separate post on that migration).
- Currency formatting: LKR amounts get long — test your layout with Rs. 1,249,999.00 monthly breakdowns, not $9.99.
The takeaway
Localizing WooCommerce for Sri Lanka isn’t translation — it’s meeting three payment behaviours (installments, BNPL, bank transfer) at the point of decision. Get those on the product page and checkout stops being where trust goes to die. Running a Sri Lankan store and want this working end-to-end? Talk to me — or just install the plugin.

Leave a Reply