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.
The big picture
Section titled “The big picture” 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 └─────────────────────────────┘Three ideas that explain everything
Section titled “Three ideas that explain everything”1. The storefront speaks one language
Section titled “1. The storefront speaks one language”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.
2. Backends plug in through adapters
Section titled “2. Backends plug in through adapters”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.
3. Features are Capabilities
Section titled “3. Features are Capabilities”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.
Who owns what
Section titled “Who owns what”| 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 |
A request, end to end
Section titled “A request, end to end”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.