Managing default JSON files in the same GIT theme across different stores

Topic summary

A developer is managing a single Git-integrated theme across multiple Shopify Plus stores, each serving different locales/languages for the same brand. Translation files and locale-specific page templates (e.g., page.landingpage-uk.json, page.landingpage-it.json) work well in this setup.

Core Problem:
Default JSON template files like index.json and product.json cannot be locale-specific when edited via the theme customizer. Shopify only recognizes standard filenames (index.json), not locale variants (index-uk.json, index-de.json). When brand managers edit these files in one store, changes overwrite the shared Git repository, affecting all stores.

Attempted Solutions:

  • Store contextualization feature was considered, but Shopify Plus Support confirmed context-specific pages only display based on geolocation apps (visitor location), not store market.
  • Community suggestions include GitHub workflows with conditions, and tools like Shopkeeper, but the developer finds these workarounds complex and risky for managing just a few JSON file variants.

Current Status:
The issue remains unresolved. The developer seeks better native support from Shopify’s frontend team, viewing this as a basic requirement for multi-store, single-theme setups.

Summarized with AI on November 14. AI used: claude-sonnet-4-5-20250929.

I’m struggling with the following scenario:

  • I have one theme, using GIT integration

  • I have multiple plus stores for the same brand, for each locale/language

  • I can translate all repo files using the normal locale/**.json and translation string logic

  • Brand managers can create content pages for each store using the theme customiser and sections, which in their turn create page.xxx.json files in the live theme, which in my turn i pull using the theme:pull feature so they are added to the repo

  • The pages will always be locale-unique, meaning we would have something like page.landingpage-uk.json, page.landingpage-it.json, … which means they can just sit safely next to each other in the templates folder

So far so good. But, here the problem comes in: what about the uniquely-named shared default files like index.json, product.json, … If these files are being edited using the theme customiser, they are overwritten with the language/locale from the store where it was just edited in. That means there would need to be a index-de.json, index-uk.json, index-it.json, .. which is of course not allowed nor possible as Shopify only expects index.json.

I thought about using the ‘context’ feature (described here: https://help.shopify.com/en/manual/online-store/themes/customizing-themes/store-contextualization) but after a talk with Shopify Plus Support, it appears these context specific versions of a page will only show based on a geolocation app (meaning, index.context.[markethandle].json would only be served if the visitor is located in France). So that’s not an option.

In short: how do i serve locale-specific shopify-unique JSON page templates like index.json across multiple stores using the same connected GIT theme?

Hi MathijsDelva,

The native GitHub Integration is primarily built for managing safe theme deployments to a single store, although some devs have implemented workflows that allow for scenarios where themes are different, using conditions and GitHub workflows - as in this forum post and this blog post.

There are also some community built tools like Shopkeeper that may help with your setup.

Hope the above helps!

Hi Liam, thank you for your reply. The forum & blog posts gave me some insights, but i feel that’s quite dangerous terrain and also a lot of configuration to just to safeguard a few different versions of JSON data. I would really like some better support and insights from within the Shopify Dev Front-end team on this issue, as i feel this is something quite basic to support out of the box. Thanks for your reply Liam!

1 Like