Showing a product's country of origin to the shopper

You filled in Country/Region of origin on every product. It reaches duties and shipping labels, and it does not reach your product page — not through the theme, not through a dynamic source, not through any app currently on the store. Shoppers started asking for it when tariffs did, and the answer has been the same since 2021.

You already filled it in. Every product in the admin has a Country/Region of origin, and since May 2025 you can set a store-wide default that Shopify falls back on for duty and tax when a product has none of its own. It feeds duties and it prints on customs paperwork, and that is the whole of its life.

Then a shopper asks where something is made, or a tariff lands on a category you sell, and you go looking for the field in your theme. It is not there. This page is about why, and what to do instead.

The field is real, and it is in the wrong place

The value exists, precisely and in a documented form. In Shopify's Admin API it sits on the inventory item as countryCodeOfOrigin — "The ISO 3166-1 alpha-2 country code of where the item originated from." Same object as the HS code. That is the customs shelf.

What matters for a product page is what the theme can reach, and the answer is nothing. The documented properties of a Liquid variant run from available and barcode through sku, taxable, title, weight and weight_unit. There is no origin, no customs, no HS code, and no way to hop from the variant to the inventory item. The Storefront API's variant is the same story. The field is not hidden behind a permission or a plan — it is simply on an object your storefront was never given.

So the honest sentence is this: Shopify records where a product came from and gives your customers no way to see it.

Shoppers asking where it is made? Describe where it should appear and we will put it there →

Four years of merchants finding the same wall

The question is as old as the field, and the first answer is still the current one:

From Shopify is there a way to get the "country of origin" from a product backend to display on a product page using liquid tags?

— George_Greenhil, 20 January 2021

There is no country_of_origin field on the product, you can see what is available here... You can assign this value as a Metafield and output it in the product page

— Mircea_Piturca, 20 January 2021

A metafield. That is still the answer in 2026, and the thread has stayed open long enough to watch the motive change. In February 2025 a merchant came back to the same thread to say the field exists in bulk edit but is not available as a dynamic source, and that new tariff rules made it something customers now need. Asked two months later whether a solution had turned up, the reply was two words:

Sadly, no.

— Saintly, 9 April 2025

Another arrived a few weeks after that calling it "very frustrating now with the items requiring tariffs" (GameOnOttawa, 3 May 2025), and three days later a fourth merchant opened a new thread for it. She got pointed at a video, and her answer to it is the cleanest statement of this whole problem:

The video shows how to add the country of origin to products in the admin; it does not show how to make it visible for customers on the product page.

— sugarysnacks, 6 May 2025

That thread is unsolved too.

What the apps do, and the one that is gone

Before anything else: GPSR does not require country of origin, whatever a compliance blog tells you. Shopify's own GPSR guidance never mentions origin or "Made in" at all — what it names is the Disclosures metafield for warnings, and the EU Responsible Person's details when the manufacturer sits outside the EU. If somebody sold you an origin display as an EU obligation, check the obligation. The real reasons to show it are tariffs, customs marking on the goods themselves, claims you choose to make about where something is manufactured, and shoppers who simply want to know.

That matters for app shopping, because the compliance apps are built around the obligation and therefore around other fields. GPSR Kit ‑ EU Compliance is representative — free for up to 10 products, then $14.99 a month to 500 and $29 unlimited, no reviews yet — and what its storefront block carries is "manufacturer, EU rep, warnings, documents". Not origin. Its three competitors in that category are the same shape.

On the other side, HS Code & Origin Bulk Editor — free for 20 products a month, then $9.99 and $19.99, 5.0 stars from 2 reviews — does exactly what it says and "adds and updates Harmonized System (HS/HTS) codes and country of origin across your whole catalog in bulk". Useful, and entirely admin-side: it fills in faster the field that still cannot be displayed. Bulk-filling those fields has its own page.

And the one app built specifically to show a country badge on the product page is no longer on the App Store — its listing returns a not-found page. So the gap is not that nobody thought of it; it is that the one answer has left the market.

Which route is yours

What you need Where it comes from
The value recorded for customs and duties Native — Country/Region of origin on the product
A fallback when a product has no origin set Native, since May 2025 — for duty and tax, not for display
Filling it across a big catalogue quickly An app, free to 20 a month then $9.99
EU safety details on the product page A GPSR app — but it will not carry origin
Origin visible to the shopper A metafield mirrored from the admin field, and a theme that reads it
It staying right after you edit a product The part that is actually hard

The bit everyone underestimates

Copying origin into a metafield once is an afternoon. What breaks is the second month.

The mirror and the original are now two copies of one fact. A product gets re-sourced from another factory, somebody updates the real field in the admin — because that is the field duties run on — and the product page keeps telling shoppers the old answer. Nothing goes red. A bulk edit across a collection does it to a hundred products at once. And a displayed origin that is wrong is worse than no origin at all, because it is a claim you made about where goods come from.

So the job is not the copy. The job is the copy staying true.

What Shopivibe does

You describe where it should show and what should happen when it changes, and both halves get built. "Show the country of origin under the price on every product page, in plain words rather than a two-letter code, and if the real field ever changes, update what the shopper sees the same day — and tell me if a product has no origin set at all before it goes live."

Two things said plainly. The mirror is the mechanism, because Shopify gives themes no other route — that is the platform's shape, not a limitation of the build, and it is the same answer any developer would reach. And the keeping-in-sync is the part that is worth paying for: a one-off copy is cheap everywhere, and the reason this question is still open after four years is that nobody wants to own the maintenance of a duplicated field. That is precisely what gets maintained here, including the day Shopify changes something about how the field works.

The flag or the words, the position on the page, the collections it applies to, the warning when the origin is blank — all of it is yours to describe, and a person here has it live in your store within 24 hours.

Shopivibe solves the problem in your store and keeps what it adds maintained, including when Shopify changes something underneath. Shopivibe is free during early access, with 3,500 credits included. Credits beyond the included 3,500 cost $0.06 each.

Want "Made in" on the page without maintaining two copies of it? Describe it in your own words →

Checked against Shopify's documentation and the App Store on 14 October 2026.