The Complete Headless CMS Ecommerce Stack Guide 2026
Combine a headless CMS with commerce — the reference pattern, frontend composition, editorial preview workflows, and the stack combinations that work in production.
Headless CMS ecommerce pairs two specialised systems behind one frontend: the CMS owns content — landing pages, brand stories, lookbooks, SEO articles — while the commerce platform owns the catalogue — products, prices, inventory, checkout. The frontend is the only place they meet. Done right, headless CMS ecommerce gives marketing teams page-building freedom without developer deploys, while commerce data stays live and authoritative.
The architecture question every headless CMS ecommerce project must answer correctly on day one: where does product data live? The answer is always the commerce platform — the CMS stores references (product handles or IDs), never copies. Duplicate product data into the CMS and you have created a synchronisation problem that ends with customers seeing yesterday’s prices on this morning’s campaign page. This guide covers the reference pattern, composition in the frontend, editorial workflows, and the proven stack combinations. It builds on our headless commerce architecture and headless commerce SEO guides.

Headless CMS Ecommerce: The Reference Pattern
In the reference pattern, a CMS document for a campaign page contains content blocks — hero, editorial copy, image galleries — and product references holding only the commerce platform’s product handle. At render time, the frontend resolves each reference against the commerce API for live title, price, image and availability. The campaign page marketing built in March still shows correct prices in June because it never stored any. Most headless CMSs make this first-class: Sanity has typed reference fields and a Shopify Connect app, Storyblok and Contentful ship commerce field plugins that let editors pick products visually from the connected store while persisting only IDs. The Sanity documentation shows the canonical schema approach for headless CMS ecommerce references.
Headless CMS Ecommerce: Frontend Composition
The frontend in headless CMS ecommerce composes both sources per page: fetch the CMS document (content blocks plus product references), resolve the references against the commerce API — batched into one query, never N+1 — and render. A reusable ProductCard component that accepts a handle and fetches live data is the workhorse: editors drop product references anywhere, the component guarantees freshness. Caching follows the data’s nature — CMS content caches long with webhook-driven revalidation on publish, commerce data caches short (or per-request for inventory-sensitive fields). In Next.js terms: revalidateTag('cms') on the publish webhook, 60-second ISR on resolved product data.
// app/campaign/[slug]/page.tsx
export default async function CampaignPage({params}) {
// 1. Content from the CMS — cached until publish webhook revalidates
const page = await sanityFetch(CAMPAIGN_QUERY, {slug: params.slug},
{next: {tags: ['cms']}});
// 2. Resolve all product references in ONE commerce query
const handles = page.blocks
.filter(b => b._type === 'productRef')
.map(b => b.handle);
const products = await getProductsByHandles(handles, // Storefront API
{next: {revalidate: 60}});
// 3. Compose: content blocks + live commerce data
return ;
}Headless CMS Ecommerce: Editorial Workflow and Stack Choices
The payoff of headless CMS ecommerce is the editorial workflow: preview mode renders draft content against live products so marketing sees exactly what will ship; scheduled publishing launches campaign pages at midnight without a developer awake; and structured content models keep brand pages consistent. The production-proven stacks: Sanity + Shopify + Next.js (the most common pairing), Strapi + Medusa + Astro for full open source, Contentful + commercetools for enterprise, and headless WordPress + WooCommerce where years of existing content make WordPress-as-CMS the pragmatic choice. Choose the CMS on editorial experience and the commerce platform on commerce needs — the reference pattern decouples them, which is precisely the point. The Storyblok documentation and Strapi documentation cover their commerce field integrations. Our headless commerce team builds headless CMS ecommerce stacks end to end.
Never duplicate commerce data into the CMS. The moment a price, stock level or product title is copied into a CMS document, you own a synchronisation problem with a failure mode customers see. References only — the frontend resolves them live. Every headless CMS ecommerce horror story starts with a copied price field.
Frequently Asked Questions About Headless CMS Ecommerce
What is headless CMS ecommerce?
Headless CMS ecommerce is an architecture pairing a headless CMS (content: pages, stories, SEO articles) with a commerce platform (catalogue: products, prices, inventory, checkout) behind one frontend. The CMS stores product references, the frontend resolves them against the commerce API at render time, and each system does what it is best at.
Should product data live in the CMS or the commerce platform?
Always the commerce platform. The CMS stores only references — product handles or IDs — which the frontend resolves live. Copying prices, stock or titles into CMS documents creates a synchronisation problem whose failure mode is customers seeing stale prices on campaign pages. This is the single most important rule in headless CMS ecommerce.
What is the best headless CMS ecommerce stack?
Sanity + Shopify + Next.js is the most widely deployed combination. Full open source: Strapi + Medusa + Astro. Enterprise: Contentful + commercetools. Stores with years of WordPress content often choose headless WordPress + WooCommerce. The reference pattern decouples the choices — pick the CMS on editorial experience and the commerce platform on commerce requirements independently.
How does caching work in headless CMS ecommerce?
Cache by the data’s nature: CMS content caches long with webhook-driven revalidation on publish (instant updates, minimal API load), while resolved commerce data caches short — around 60 seconds for prices, per-request for tight inventory. In Next.js: revalidateTag on the CMS publish webhook, time-based ISR on product resolution.
Can marketing teams build pages without developers in headless CMS ecommerce?
Yes — that is the core payoff. With structured content blocks and visual product pickers (Sanity Connect, Storyblok and Contentful commerce plugins), marketing composes campaign and landing pages, previews drafts against live product data, and schedules publishing — no developer deploy in the loop. Developers build the block components once; editors reuse them indefinitely.
Is headless CMS ecommerce worth it for small stores?
Usually not below a meaningful content-marketing operation. The architecture earns its complexity when editorial output is constant — campaigns, lookbooks, SEO content at volume. A small store on Shopify with a few pages, or WooCommerce with native WordPress content, ships faster monolithically. Adopt headless CMS ecommerce when content velocity, not fashion, demands it.
Building a Content + Commerce Stack?
We architect and build headless CMS ecommerce — Sanity, Strapi, Shopify, Medusa, WooCommerce, any frontend.