Case study · Diageo · Johnnie Walker Style Thailand
The best replatform is the one nobody notices.
Johnnie Walker Style is a Thai-language merchandise store trading in baht. We moved it off a custom PHP build onto Shopify — same products, same customers, same URLs where it mattered, a different engine underneath. Since then we've supported and extended it. A migration that generates a story for the customer has usually gone wrong.
- Client
- Diageo — Johnnie Walker Style Thailand
- Sector
- Brand merchandise · direct-to-consumer
- Work
- PHP → Shopify migration, then support
- Market
- Thailand · Thai language · THB
- Status
- Live, supported and enhanced
A working store on a platform nobody could safely change.
The store worked. That's what makes this kind of project difficult to justify and easy to postpone — a custom PHP build that takes orders every day looks fine from the outside, right up until it becomes the reason something can't be done.
Bespoke commerce ages in a particular way. The payment integrations drift out of support. The security patching depends on somebody remembering. Adding a feature that Shopify would give you as a checkbox becomes a development project with a quote attached. And the number of people who understand the codebase only ever goes down.
There's a second layer here that shapes everything. Johnnie Walker Style sells no whisky — the catalogue is apparel, glassware and collectibles. In Thailand, alcohol advertising is tightly restricted, so a brand's presence has to be built through style, collaboration and culture rather than the product itself. That makes the merchandise store unusually important. It isn't a gift shop attached to the marketing; in this market it is a substantial part of the marketing.
A store carrying that much of a brand's presence in a market can't be down, can't lose its customers, and can't suddenly start speaking English. Which narrows the acceptable outcomes considerably.
Three things that decide whether a migration is felt.
The data move is the part everyone plans for. These are the parts that produce the complaints.
Orders arrive daily and campaigns don't stop for infrastructure. The old store had to keep trading while the new one was built, with a cutover short enough that no customer met a maintenance page.
Not just the content — the confirmations, the warnings, the validation messages. Custom PHP puts those in the code. Missing one leaves an English error in a Thai checkout, which is exactly where a customer stops trusting a store.
Product links live in social posts, messages and search results going back years. A new platform means a new URL structure, and every one of the old addresses has to land somewhere sensible.
Move the store, keep the shop.
The work divides into the migration itself, and everything we've added since it landed.
Products, variants, imagery, pricing in baht and the collection structure carried across and verified against the original. The theme rebuilt to match the existing storefront rather than taking the opportunity to redesign — one change at a time is how a migration stays reviewable.
- Catalogue reconciled item by item, not counted in bulk
- Variants and size options rebuilt as Shopify options rather than custom fields
- Redirects from every old product and category address
- Design held constant through cutover, so any difference was a defect rather than a decision
Collections built around how the range actually works — the 100 Years Collection, the "BLUE" line, artist collaborations like Black Ruby × VINN PATARARIN at ฿3,990, and everyday pieces from ฿350. Sold-out items stay visible rather than disappearing, because a sold-out collaboration is evidence of demand.
- Apparel, headwear, barware and collectibles across one range
- Collaboration pieces given the prominence their price implies
- Sold-out states shown honestly instead of hidden
- Predictive search with imagery, because people shop by looking

A store here isn't a smaller version of a Western one. Payment preferences differ, mobile share is very high, and LINE is the channel customers expect to use when they want to ask something — not email, and not a contact form nobody answers.
- LINE presented as a primary contact route, not buried with social links
- Pricing and checkout in baht throughout, no conversion moments
- Mobile-first, because that is overwhelmingly how the store is used
- Merchandise only — the store carries the brand without carrying the product

Every string, including the ones you hope nobody sees.
A content migration moves the words customers read. The harder job is the words the system says — the confirmation before deleting a cart item, the warning that a choice can't be undone, the reminder to pick a size before adding to the bag.
On a bespoke PHP store those live in the code, often written by hand, sometimes years apart. Every one of them had to be found and rebuilt in Thai on the new platform — because a store that switches to English at the exact moment something goes wrong is a store people stop trusting.
System messages don't appear in a content export. They were found by using the old store the way a customer does — including the paths where things go wrong.
On Shopify they live in the theme's locale file rather than scattered through templates, so the next person can change a word without touching code.
Thai script needs more line height than Latin and breaks differently. Type set for the language rather than inherited from an English theme.
Empty carts, removed items, missing size selections, payment declines. The unhappy paths are where a half-translated store gives itself away.
Build alongside, then switch.
The old store kept trading until the moment the new one took over. No maintenance window, no freeze, no period where the brand was offline in its market.
Catalogue, variants, pricing, URLs, integrations — and the system messages nobody documents. You can't verify a migration against a system you only partly understand.
The Shopify store built and populated while the PHP store carried on taking orders. Nothing switched until the new one had been checked against the old, page by page.
Deliberately no redesign during the move. Migrating and redesigning at once means that when something looks wrong, nobody can tell whether it's a bug or the new design.
Redirects from the old URL structure so links in years of social posts, messages and search results still reach the right product.
A short cutover, then close monitoring of orders, search behaviour and errors — because the first week after a migration is when anything missed surfaces.
With the store on Shopify, the enhancements that used to need a development project became routine. Collections, campaigns, search and merchandising changes now ship without one.
The point of a migration is what becomes easy afterwards.
Moving platforms isn't an achievement in itself. The value shows up the first time the brand team wants something that used to be a quote and a fortnight — a new collection, a campaign page, a payment method, a promotion — and it takes an afternoon.
Security patching, platform updates and payment compliance stopped being Diageo's problem and became Shopify's. We stayed on to do the rest: campaigns, merchandising, search, performance, and the collaborations the store exists to sell.
From something we maintain to something we build on.
The clearest argument for this migration is the difference between the two columns of work — one of them is nobody's job now.
- Shopify
- Custom theme
- Liquid templates
- Managed checkout
- Thai locale file
- THB pricing
- Thai typography
- System messages translated
- Catalogue & variants
- URL redirect map
- Parallel build
- Page-by-page verification
- Collections & campaigns
- Predictive search
- Performance work
- Ongoing support
Related case studies.

Aviation came to us already live. We're the team that keeps it current — seasonal launches, limited editions and campaign moments shipped into a codebase we inherited, at the pace a brand famous for fast marketing actually moves. Taking over someone else's platform well is a different discipline from building your own, and it's the one this project is about.

Bundaberg has been distilling in Queensland since 1888. Its store sells licensed spirits, official merchandise and distillery tours through one Shopify checkout — under the Queensland Liquor Act, with a licence number on every page and every sale legally made from a single address in Bundaberg East. We support that store and enhance it continuously.




