Problem
FAQs on products and categories, collection sliders, editable deal blocks, review widgets, product inserts in blog posts and generated menus all had to return. The stores had to look like before and keep their SEO, and the content had to stay editable in the admin. Several brands had to share one codebase.
Solution
One theme in one repository, with a branch per store. Migrated data lives in BigCommerce metafields with storefront access, as handles or JSON. The theme reads it in the browser through the Storefront GraphQL API, turns each handle into a catalogue entity with a route query, in batches that respect the API's complexity limit, and renders FAQ accordions, sliders, banners and breadcrumbs.
Key decisions
Chose one branch per store in a single repository
Why Shared fixes move between stores without duplicate code, while each store's config points at its own store.
Chose to keep Shopify handles in metafields, not BigCommerce IDs
Why Values stay readable and editable in the metafields manager, and the mapping happens on the storefront.
Chose to split storefront queries into batches
Why Twelve categories in one query exceeded the complexity limit, and the collection slider vanished from the page.
Chose to keep Shopify's URL structure
Why It protects SEO and outside links. I removed the early script redirects once the URLs matched, because crawlers do not run them anyway.