Template
Three changes needed to run against a real storefront rather than mock.shop. Storefront API version 2025-07 -> 2026-07. Verified before switching: the API validates the version segment (a bogus one returns NOT_FOUND), and the fields this app selects all still resolve at 2026-07 — including the two deprecated ones, ProductOption.values and CartCost.totalTaxAmount, and the classic customer account mutations. BREAKING (config): NEXT_PUBLIC_SHOPIFY_STOREFRONT_ACCESS_TOKEN is now NEXT_PUBLIC_SHOPIFY_PUBLIC_ACCESS_TOKEN. Deploy environments must set the new name *before* the next build — NEXT_PUBLIC_* values are inlined at build time, so a stale name silently degrades to a tokenless client and real-store queries start failing. Works around a bug in this preview build of @shopify/hydrogen: the client tags every request with X-Hydrogen-Version, which the Storefront API does not list in its CORS access-control-allow-headers. Browsers reject the preflight, fetch throws, and hydrogen reports the generic "SFAPI request failed". Confirmed by isolating the single header in the browser against a real store: without it the request reaches the server (401 on a dummy token), with it fetch throws TypeError: Failed to fetch. This never showed up on mock.shop, which answers access-control-allow-headers: *. The header is stripped in the browser only, inside the fetch wrapper the client already owns; server-side requests are not subject to CORS and keep sending it. Remove once the API allows the header, or once these queries move server-side — which is the better fix, and what hydrogen's own guidance recommends for browser UI. Verified against a real store: product grid, search (519 results), product detail with variants, and cartCreate all succeed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JaxgqPbFxLsSuLPZom2kdC
13 lines
398 B
Bash
13 lines
398 B
Bash
# Shopify Storefront
|
|
NEXT_PUBLIC_SHOPIFY_DOMAIN=mock.shop
|
|
# NEXT_PUBLIC_SHOPIFY_PUBLIC_ACCESS_TOKEN=
|
|
# NEXT_PUBLIC_SHOPIFY_API_VERSION=2026-07
|
|
|
|
# Store assistant — set to 1 to show the Ask launcher; anything else hides it
|
|
NEXT_PUBLIC_ENABLE_AI=0
|
|
|
|
# Store assistant (/api/chat) — https://openrouter.ai/keys
|
|
OPENROUTER_API_KEY=
|
|
# Optional; defaults to openai/gpt-5.6-luna-pro
|
|
# OPENROUTER_MODEL=
|