Skip to content
weLabsweLabsStorefront Playbook
Live demoQuickstart

Get started

How it works

How the storefront, the Port, the WooCommerce adapter and the Companion plugin fit together — in five minutes.

The storefront is a separate application from WordPress. Shoppers only ever talk to the storefront; the storefront talks to your WooCommerce store over its REST APIs, and the Companion plugin fills in everything WooCommerce does not provide on its own.

Shopper's browser
│
▼
┌─────────────────────────────┐
│ Storefront (Next.js 16) │ pages, templates, UI — Cloudflare Workers or Node
│ │
│ ┌─────────────────────┐ │
│ │ The Port │ │ typed Capabilities: Discovery, Cart, Checkout,
│ │ │ │ Orders, Identity, Reviews, Wishlist, Theme, Content…
│ └──────────┬──────────┘ │
│ │ │
│ ┌──────────┴──────────┐ │
│ │ Adapter │ │ WooCommerce adapter — or the in-memory Demo adapter
│ └──────────┬──────────┘ │
└──────────────┼──────────────┘
│ HTTPS (Store API, WC REST, WP REST, Companion REST)
▼
┌─────────────────────────────┐
│ WordPress + WooCommerce │ products, orders, coupons, shipping, taxes
│ + Companion plugin │ StoreFront settings, sign-in, payments hardening
│ + Stripe / PayPal / SEO … │ the plugins you already run
└─────────────────────────────┘

Every page works with one storefront-owned vocabulary — products, carts, orders, money in minor units — called the canonical model. WooCommerce’s own data shapes never reach a page. That is why the same pages run against the in-memory demo store and against a live WooCommerce shop.

The Port is the contract between the pages and any commerce backend. An adapter implements it for one platform. The WooCommerce adapter is the only code that knows WooCommerce exists; the Demo adapter powers Demo Mode. Supporting another platform means writing one more adapter, not touching the pages.

The Port is split into Capabilities — reviews, wishlist, express checkout, address book, stock alerts and so on. An adapter declares which ones its backend provides, and the storefront simply leaves out what is missing. There are no dead buttons and no half-built pages; features appear as your store gains them.

Concern Lives in Changed by
Products, prices, stock, coupons, shipping, taxes WooCommerce Store team, in wp-admin
Orders, refunds, payment gateways and their keys WooCommerce + gateway plugins Store team, in wp-admin
Colours, header, footer, home-page campaigns, product-page sections, trust badges Companion plugin (StoreFront menu) Store team, in wp-admin
Policy pages, FAQ, contact details, SEO titles and patterns, analytics scripts Companion plugin / WordPress pages Store team, in wp-admin
Languages, home-page section order, look family, store name Storefront configuration Whoever deploys the storefront
Hosting, domain, secrets Storefront deployment Whoever deploys the storefront

When a shopper opens a product page, the storefront renders it on the server: it asks the Port for the product, its reviews and the store’s theme; the WooCommerce adapter turns those into Store API and Companion requests; the canonical answers come back, and the page is streamed to the browser with its SEO tags and structured data already in place. Only small interactive pieces — the gallery, the add-to-cart button, the mini cart — run as client-side code.

At checkout the storefront collects the address, shows live delivery rates and mounts the payment method’s own secure form (Stripe) or button (PayPal) right on the page. The order is placed through WooCommerce, and the Companion plugin confirms the payment with the processor — the storefront never decides an order is paid on its own.

Storefront Playbook · Built by weLabsFeaturesFAQTalk to us