Twinsoft Innovations Start a project

Different product images per country

Market Images for WooCommerce. Your customers in Dubai see the Arabic packaging. Your customers in Berlin see the German label. One store, one catalogue — the pictures change to suit whoever is looking.

For WooCommerce · free tier · no account, no external service

The problem

Sell the same product into more than one country and the photograph stops being one thing. Different packaging. A different plug on the cable. A model dressed for the local season. Labelling that has to be in the local language. Seasonal photography that is simply wrong in the other hemisphere.

WooCommerce gives you one set of images per product. Until now the choice has been a compromise photograph that suits nobody, or a separate store per market with everything that entails. This is the third answer.

How it works

1

Define your markets

A market is a name and a list of countries. Gulf might be AE, SA, KW and QA. Most stores need three or four, not two hundred.

2

Choose images per market

On any product, pick a featured image and a gallery for each market. Variations get their own, which is where most of the value is.

3

That is the whole setup

Shoppers see the images for their country. Everyone else sees your normal ones. Nothing you leave empty ever renders blank.

What it does properly

Variations, not just products

Each variation can carry its own images per market. The colour you sell in one country is often not the colour you sell in another, and that is the case nobody else handles.

A fallback that never blanks

Every field falls back on its own. Override just the featured image for one market and it keeps your standard gallery. A market you have not touched behaves exactly as it does today.

Built for stores behind a CDN

Cloudflare, CloudFront and Vercel country headers are read first. Behind a CDN, IP lookups see the CDN rather than the shopper — which is why most geolocation plugins quietly show everyone the same thing.

Honest about page caching

Any plugin that varies a page by location has to deal with full-page caching, and most pretend otherwise. Reading the CDN's own header is what makes it solvable, and the settings page tells you exactly how to configure it.

Nothing leaves your store

No third-party service, no API key, no account. The visitor's country is read from the request and used to pick an image. Nothing is logged, sent or sold.

Yours to extend

Filters let a multi-currency or geolocation plugin you already run set the market directly, so you are not asking two systems to guess the same thing twice.

Why your translation plugin cannot do this

This comes up constantly, so it is worth being precise. These are all good plugins doing the job they were built for — none of that job is this one.

WPMLTranslates text and alt text. WPML's own support states it expects a one-to-one translation and has no functionality for different images.
Polylang for WooCommerceAdvertises that it keeps product galleries synchronised across languages — the opposite of what you need here.
Country restriction pluginsHide or show whole products by country. Useful, and a different job: they control what is available, not what it looks like.

Language is not country, which is the deeper reason. Germany, Austria and Switzerland share a language and not much else about how a product is packaged, labelled or presented.

Pricing

Free for up to three markets, on the WordPress.org directory. That covers most stores permanently, and it is not a trial.

$39 a year for one site with unlimited markets, or $89 a year for unlimited sites — for agencies and anyone running more than one store.

Questions

When is it available?

It is finished and in testing now, and goes to the WordPress.org directory shortly. Tell us and we will send you the link the day it lands.

What will it cost?

Free for up to three markets, which covers most stores. Beyond that it is $39 a year for a single site and $89 a year for unlimited sites.

Do I need a translation plugin?

No. This works on country rather than language and runs on its own. It is compatible with translation plugins because it does a different job — and language is not country: Germany, Austria and Switzerland share a language but not packaging.

What if a country is in two markets?

The first market listing it wins. Markets are checked in the order shown on the settings page, so you control precedence by ordering them.

Will it slow my store down?

No extra queries beyond one post meta read WordPress already caches, and no external HTTP requests at all.

How do I test it without a VPN?

Add a preview parameter to any product URL while logged in as an administrator. It is restricted to administrators on purpose, so crawlers and cache warmers cannot fill your page cache with the wrong country's images.

Want it the day it launches?

It is built and in testing now. Tell us your store and we will send you the link when it reaches the WordPress.org directory, along with a licence for the paid tier to try.