The problem
Army & Outdoors runs separate regional stores ? NZ, AU, US, EU. Each has its own currency, pricing, and shipping. The trouble: visitors constantly landed on the wrong one.
- A US shopper finds AAO via Google and lands on the NZ site ? sees NZD pricing, NZ shipping, gets confused or bounces
- An NZ customer clicks an old link and ends up on the US store ? wrong currency, wrong delivery options
- An AU shopper lands on the NZ store ? close, but still wrong currency and shipping
Every one of these is a friction point at exactly the wrong moment ? when someone's trying to buy. Wrong currency alone is enough to lose a sale.
Part 1 ? geo-detection popup
When a visitor arrives, the system checks their country against the store they've landed on:
- If they're already on their local store ? the popup never shows. No interruption for the majority of visitors.
- If they're on the wrong store for their country ? a clean popup appears: "Looks like you're in New Zealand. Good news, we've got a local site for you." with two clear choices ? "Go to Local Website" or "No, stay on this page".
The "stay on this page" option matters. Some people genuinely want the other store (gifting across regions, expats, freight forwarders). Forcing a redirect would lose them. Offering it respects the visitor.
Part 2 ? the bit that actually matters: product-aware redirect
Here's the detail most region-redirect tools get wrong.
A US visitor is looking at a specific product on the NZ store ? say a particular jacket. They click "Go to Local Website". A naive redirect dumps them on the US homepage. Now they have to find that jacket again. Most won't bother. The redirect that was supposed to help just lost the sale.
My switcher doesn't do that. It reads the product handle from the current URL and sends the visitor to the same product on their local store. US visitor looking at a jacket on the NZ site ? clicks redirect ? lands on that exact jacket on the US site, in USD, with US shipping. No re-searching. No friction. The redirect actually helps.
If the product doesn't exist on the destination store (regional catalogue differences), it falls back gracefully to the destination homepage with a friendly message rather than a 404.
Part 3 ? header switcher on every page
The popup only fires once (it respects the visitor's choice and doesn't nag). But people change their minds, or want to deliberately browse another region. So there's also a persistent country/currency switcher in the site header ? available on every page.
Pick a region from the dropdown and you switch stores, keeping the product context wherever possible ? same product-handle logic as the popup redirect.
The technical bits worth noting
- Product-handle preservation ? the core logic. Parse the current URL, extract the product handle, reconstruct the equivalent URL on the destination store, verify it exists, redirect. Graceful fallback if not.
- Show-once logic ? the popup respects the visitor's decision (stored client-side). It doesn't reappear on every page load, which is the fastest way to make a geo popup hated.
- Same code across all stores ? the switcher logic is identical in every regional store's theme. One pattern to maintain, not four divergent copies.
- No app dependency ? built directly in Liquid + JavaScript. No third-party app subscription, no external service that can fail or change pricing.
- Built when nothing good existed ? at the time this was built, there were no solid off-the-shelf solutions for product-aware cross-store redirects. So it got built in-house. (There may be apps now ? but this one has run for years with zero ongoing cost or vendor risk.)
The result
- Visitors land where they should ? wrong-region arrivals get a clear, non-pushy path to their local store
- Product context preserved ? the redirect keeps them on the exact product, so it converts instead of losing them
- Choice respected ? anyone who genuinely wants another region can stay, or switch back any time via the header
- Zero ongoing cost ? no app subscription, no vendor lock-in, runs in the theme
- 4 stores, one pattern ? consistent behaviour across NZ, AU, US, EU
Why this matters for your store
If you run more than one regional storefront, you have this problem whether you've measured it or not. Some meaningful percentage of your traffic is landing on the wrong store, seeing the wrong currency, and quietly leaving. It doesn't show up as an error ? it shows up as a slightly worse conversion rate that you can't easily attribute.
The fix isn't just "detect country and redirect" ? plenty of tools do that badly. The fix is detecting country, offering (not forcing) the redirect, and preserving the exact thing the visitor was looking at so the redirect helps instead of resetting them. That's the version I built, and it's been running in production for years.


