Where are carts lost at checkout?
Ecommerce checkout optimization means removing the reasons a shopper who has already chosen a product walks away before paying. The causes are well documented.
Baymard Institute's ongoing cart abandonment research puts extra costs (shipping, fees, tax) at the top of the list, followed by delivery that looks too slow, not trusting the site with card details, being forced to create an account and a checkout that feels too long or complicated. Its survey is of US shoppers, so treat it as a guide to the causes rather than Thai percentages. Many people also abandon simply because they were browsing, which no checkout change will fix.
For a Thai store, the same list shows up with local twists. The shopper is almost always on a phone, often reading in Thai, typing a long address with a subdistrict and postcode, and then asked to pay with a PromptPay QR code that is displayed on the very screen they would need to scan it with. Each of those moments is a small wall. Fix them in order of how many people hit them, and measure after each change.
This guide starts at the cart. If shoppers are leaving earlier, before they ever add anything, the problem sits on the product page, and our notes on what a good product page needs are the better place to start.
Guest checkout and fewer fields
Forcing a first-time buyer to register before paying is the easiest leak to close. Offer guest checkout by default and invite the shopper to save an account on the thank-you page, when the order is already placed and the request feels like a favour rather than a toll. Both WooCommerce and Shopify let you allow guest orders in their checkout settings.
Then count your fields. Every box you remove is one less reason to stop. Most stores can cut the list below without losing anything they actually use.
- Company nameHide it unless the shopper asks for a tax invoice.
- Second address lineMerge into one line; Thai addresses rarely need two.
- Confirm emailOne email field is enough; show it back on the review step.
- Separate first and last nameKeep only if your courier label needs them split.
- Date of birth or genderNot needed to ship a parcel, and it is extra personal data under PDPA.
- Account passwordOffer it after payment, not before.
How should a checkout handle Thai addresses?
Default checkout templates are built for Western addresses: street, city, state, zip. A Thai address has a house number, often a moo or soi, a road, then subdistrict (tambon or khwaeng), district (amphoe or khet), province and a five-digit postcode. When the form does not match that shape, shoppers guess, couriers get bad labels and parcels come back.
What a good Thai address form does
- Uses separate fields for subdistrict, district, province and postcode, in that order, with Thai labels on the Thai version of the site.
- Autocompletes: type a postcode or a subdistrict and the other three fill in from a Thai address database. This removes most spelling errors.
- Accepts both Thai and Latin script, because some buyers type in English and couriers handle both.
- Asks for a mobile number with Thai format checks, since the rider will call it on delivery day.
Plugins and apps exist for this on both platforms, and a custom build can use an open Thai address dataset. Whatever you pick, test it with a few real addresses from outside Bangkok before launch.
No surprise costs
A shopper who sees one total in the cart and a higher one on the payment step feels tricked, even if the difference is a fair courier charge. Show the delivery cost, or at least a clear range, before checkout begins.
- Put the free-shipping threshold in the cart, with the remaining amount calculated live ("add a little more for free delivery"), rather than in a footer banner.
- Show an estimated delivery window next to each option, for example standard delivery in two to four working days, so buyers can compare Thailand Post, KEX Express (formerly Kerry Express), Flash Express or J&T on speed as well as price.
- Name any extra charge in plain words: COD fee, remote-area surcharge, gift wrapping.
How those rates are calculated behind the scenes, flat, weight-based or live from a courier API, is a separate job covered in our guide to connecting Thai couriers to your store. At checkout, the only rule is that the number the buyer sees first is the number they pay.
Payments that work on a phone
Thai shoppers expect PromptPay, cards and often cash on delivery. Which gateway supplies them is a bigger decision, and our piece comparing payment gateways available in Thailand walks through the options, and Shopify owners should read how Shopify payments work in Thailand. Here the question is how the choices are presented.
Order the methods by use
List the method most of your buyers pick first, and keep the list short. Three or four clear options beat eight logos. If your data shows most mobile orders go through PromptPay, put it on top on mobile.
The same-phone QR problem
A PromptPay QR shown on the phone that must scan it is the most common Thai checkout snag. Help the buyer finish without a second device:
- Add a "save QR image" button with a short note: open your banking app, choose scan, then pick the image from your gallery.
- Show the exact amount and a countdown if the QR expires, so nobody pays a stale code.
- Confirm the payment automatically through the gateway and send the buyer to the order page, rather than asking them to upload a slip.
COD rules at checkout
Cash on delivery still matters in Thailand, especially for first orders from a shop the buyer does not know yet. It also costs you in refused parcels and courier fees. The fix is not hiding COD; it is stating its rules where the choice is made.
- Say whether a COD fee applies and how much, next to the option itself.
- State any order limit, for example COD only up to a certain basket value, and hide the option automatically above it.
- Tell the buyer to have the exact amount ready and that the rider will call the mobile number given.
- If some areas or products are prepaid only, say so before the payment step, not after.
Clear rules reduce refusals because the people who choose COD know exactly what they signed up for. Our guide to cash on delivery in WooCommerce shows how to set these limits and fees.
Consent, tax invoices and trust
PDPA consent done properly
Thailand's Personal Data Protection Act lets you use the address and phone number to fulfil the order, because the buyer asked you to. Marketing is different. Put an unticked, separate checkbox for newsletters or promotions, and link your privacy notice right beside the place order button. A pre-ticked box bundled with the terms is exactly what the law's consent rules are meant to stop.
Optional tax-invoice fields
Business buyers often need a full tax invoice. Add a "request a tax invoice" toggle that reveals company name, tax ID and branch only when ticked, so retail shoppers never see them. How those details flow into electronic invoices is covered in our guide to e-Tax invoices for Thai online stores.
Coupon field and trust signals
A big open coupon box sends people off to search for codes and some never return. Collapse it behind a small "have a code?" link. Near the payment button, show your real contact details and your business registration. Our article on registering an online store with the DBD and displaying its trustmark explains what Thai buyers look for.
Measure the funnel, then fix
Guessing wastes effort. In Google Analytics 4, a funnel exploration with the steps view cart, begin checkout, add shipping info, add payment info and purchase shows exactly where people drop. Split it by device, since mobile and desktop usually leak in different places. Change one thing at a time and compare a few weeks before and after.
Abandoned-cart emails
A reminder sent a few hours after someone leaves a filled cart recovers some of those orders. Under PDPA, send it only to shoppers who gave an email during checkout and agreed to receive such messages, keep it about their cart, and include an easy way to opt out.
Where we fit
Checkout details like these are part of every store we build. Our work on building an online shop on Shopify or WooCommerce includes PromptPay, cards, COD, Thai couriers and e-Tax invoice setup, and a typical project takes around 15 days, longer for large catalogues. See what an online store costs with us, or browse more guides on selling online in Thailand.
Keep reading
Sources
- Baymard Institute: cart abandonment rate statistics
- Google Analytics Help: funnel exploration
- Personal Data Protection Committee (PDPC)
- WooCommerce docs: accounts and privacy settings
- Shopify Help Center: checkout settings

