Rami BitarandClaude Opus 5.5 6104838684 Upgrade Next to 16.3.8 and default the store domain to mock.shop
An unset or blank NEXT_PUBLIC_SHOPIFY_DOMAIN reached the Hydrogen client
as an empty storeDomain, which throws 'storeDomain is required and must
be non-empty'. Fall back to the tokenless mock.shop store, only send the
public token alongside a configured domain, and have the editor's Shopify
plugin read the same resolved config.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-03 11:56:31 -04:00
2026-08-09 16:00:10 -04:00
2026-08-15 21:20:35 -04:00
2026-08-09 16:00:10 -04:00
2026-08-09 16:00:10 -04:00
2026-08-09 16:00:10 -04:00
2026-08-09 16:00:10 -04:00
2026-08-09 16:00:10 -04:00

Shopify Hydrogen

What's here

  • index.html — Vite entrypoint.
  • src/main.tsx — mounts <App /> into #root.
  • src/App.tsx — wires <App /> from @reacteditor/core with the schema, plugins, and the Shopify provider.
  • editor/ — drop-in copy of the editor scaffold from fe-shopify-client/app/editor. Components, config, theme, Shopify client/queries/hooks/contexts, plugin-ai vendor css.
  • app.schema.json — source of truth for every page in the demo. Shape: { "/": { root, content }, "/about": { ... }, ... }.
  • api/chat.ts — aiPlugin endpoint exposed in dev via a Vite middleware. Talks to Claude via @ai-sdk/anthropic with the editor + Shopify tool surface (updatePage, searchProducts, etc.).

Run

cp .env.local.example .env.local   # optional — defaults to mock.shop
yarn install
yarn dev   # → http://localhost:3001

Shopify

Defaults to the public mock.shop storefront (no token needed) so commerce blocks render demo data immediately. Override via VITE_SHOPIFY_DOMAIN and VITE_SHOPIFY_STOREFRONT_ACCESS_TOKEN in .env.local.

AI

/api/chat is served in dev by a Vite middleware that loads api/chat.ts via ssrLoadModule. Set ANTHROPIC_API_KEY in .env.local. Tools include the React Editor built-ins plus Shopify search/lookup helpers. For production deployment you'll need to host api/chat.ts behind your own Node server (the handler exports a standard POST(req: Request): Promise<Response>).

S
Description
No description provided
Readme
1 MiB
Languages
TypeScript 98.6%
CSS 1.1%
JavaScript 0.3%