The challenge
American Eagle wanted a single Shopify Plus store to serve shoppers across seven Asia-Pacific markets: Australia, Hong Kong, Taiwan, Malaysia, Singapore, Japan and South Korea. It also had to carry two brands, American Eagle and Aerie, under one roof.
Each market has its own currency, language, tax rules and shopping habits. Japan alone has strict address formats and phone conventions. Promotions had to work in every currency without the team maintaining seven separate setups. The store also needed clean analytics so the marketing team could trust what they were seeing.
What I built
A multi-market foundation
I built the store on Shopify Markets with a dual-brand structure, so both brands share one codebase while each market gets its own currency, language and content. Translations run through locale files and Translate & Adapt, covering Japanese, Korean, Chinese and English. Tax and duty labels change automatically based on the shopper's market.
Cart and mini-cart
I redesigned the cart page with a responsive layout, a sticky checkout button, a discount code system and a free shipping progress bar. I also built the mini-cart drawer and fixed market-specific bugs, like duplicated HKD currency symbols and untranslated Japanese strings.
Gift with purchase across seven currencies
When a shopper hits a spending threshold, a free Swimsuit Bag is added to their cart automatically, and removed if they drop below it. Each market has its own threshold stored in shop metafields, so the merchandising team can adjust amounts without touching code.
Bundle promotions without extra apps
Using Shopify Discount Functions, I built an underwear bundle offer for Aerie and men's lines. No third-party app, no monthly fee, and the logic is controlled through metafields.
Promotions and product badges
I created a rule-based promotional text system using Metaobjects, letting the team schedule and target messages from the Shopify admin. Product cards show badges like Sale, Sold Out, Clearance, New and Best Seller based on product tags.
Better browsing
Collection pages got AJAX pagination, price range filters, colour swatches, and localised filters for wash and fit, pulled from Metaobjects so labels translate correctly in every market. I also added breadcrumbs, a trust bar, a sticky header and a Recently Viewed carousel built on the Section Rendering API.
Japan checkout validation
Using Checkout Blocks, I added validation for Japanese phone formats and full-width (zenkaku) addresses, blocked corporate addresses where required, and added bilingual checkout notes.
Reliable tracking
I set up GA4 ecommerce tracking through GTM using Shopify's Customer Events (Web Pixels) along with theme-side dataLayer events, including fixes for mini-cart interactions that were previously going untracked.
How we worked
Work ran through JIRA with ticket-based branches, structured commits and pull request reviews. Changes were tested per market before release, since a fix for one currency or language can easily break another.
The result
One store now handles seven markets and two brands, with promotions, translations and checkout rules that adapt to each shopper's location. The in-house team can run campaigns, change thresholds and update messaging from the admin without calling a developer, and the promotions run on native Shopify features instead of paid apps.
