Bank Installments, BNPL and Bank Transfers: Building WooCommerce Stores for Sri Lanka

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

Your email address will not be published. Required fields are marked *