建立 Hydrogen(React Router 7)專案,連結商店,配置 Shopify Dev MCP 與 AI Toolkit,部署 Oxygen。六個步驟,完成可由 Claude Code 全程開發的環境。
Shopify headless 開發有兩條路:官方 stack Hydrogen + Oxygen(付費方案免額外費用,內建部署、預覽與回滾),或自組框架搭配 Storefront API 與 Headless channel。本教學採用前者。
Hydrogen 於 2025 年 5 月(2025.5.0)自 Remix 2 遷移至 React Router 7;目前 skeleton(2026.4.4)使用 React Router 7.16,@shopify/remix-oxygen 已移除。多數模型的訓練資料早於此次遷移,agent 憑記憶產出的程式碼會含過時 import 與不存在的欄位。Shopify Dev MCP 提供文件檢索與 GraphQL schema 驗證,將 agent 錨定在現行 API。
涵蓋:專案建立、商店連結與環境變數、MCP 配置、agent 規則(CLAUDE.md)、開發迴圈、Oxygen 部署。不涵蓋 Liquid 佈景主題與 App 開發。最終產出:連結真實商店、push 即部署、可由 Claude Code 全程開發的 Hydrogen 專案。
| 元件 | 角色 |
|---|---|
Hydrogen |
Shopify 官方 headless 框架,建立在 React Router 7 之上 |
Oxygen |
邊緣部署平台;付費方案(Basic 以上與 Plus)免額外費用,不支援 Starter 與 dev store |
Storefront API |
商品、購物車、結帳資料的 GraphQL 介面 |
Customer Account API |
客戶登入與帳戶功能的 OAuth 介面 |
Shopify Dev MCP |
agent 的文件檢索 + GraphQL schema 驗證,本機執行、免認證 |
Shopify AI Toolkit |
官方 agent plugin,含 agent skills 與 Dev MCP,支援 Claude Code |
Node 版本為硬性門檻:skeleton 的 engines 要求 ^22 || ^24,Shopify CLI 4.4 要求 >=22.12.0。官方 getting-started 頁的「Node 16」為過時資訊。
claude mcp add 指令完成。node -v 確認。
quickstart 的參數組合:JavaScript、mock.shop 示範資料、不設 markets、建立 h2 全域捷徑。需自選 TypeScript 或樣式方案(Tailwind、CSS Modules、vanilla-extract、PostCSS)時拿掉 --quickstart,CLI 逐項詢問。
Starter 內含路由:首頁、商品頁、系列頁、購物車、帳戶、搜尋、部落格、政策頁、sitemap、robots.txt。後續開發以修改既有路由為主。
npm run dev 後,http://localhost:3000 渲染 mock.shop 示範商店。商品頁與購物車可操作;此時尚未連結真實商店。
在商店 admin 建立 Hydrogen storefront:Sales channels → Hydrogen → Create storefront。Shopify 同時自動產生該 storefront 的環境變數。回到專案執行:
| 環境變數 | 用途 |
|---|---|
PUBLIC_STORE_DOMAIN |
商店網域,如 example.myshopify.com |
PUBLIC_STOREFRONT_API_TOKEN |
Storefront API 公開 token,客戶端查詢用 |
PRIVATE_STOREFRONT_API_TOKEN |
私密 token,伺服器端查詢用;不可外流 |
PUBLIC_STOREFRONT_ID |
storefront 的識別 ID |
PUBLIC_CUSTOMER_ACCOUNT_API_CLIENT_ID |
Customer Account API 的 OAuth client ID |
PUBLIC_CUSTOMER_ACCOUNT_API_URL |
Customer Account API 端點 |
SESSION_SECRET |
React Router 簽署 session cookie 用的密鑰 |
程式碼經 context.env.<NAME> 讀取變數;正式環境變數在 admin 的 Storefront settings → Environments and variables 管理。--customer-account-push 經 tryhydrogen.dev 網域開 tunnel 並同步回呼網址,為本機測試客戶登入(OAuth)的必要條件。
.env 含上表 7 個變數;dev server 顯示你商店的商品,mock.shop 資料消失。
Shopify Dev MCP 於本機執行,不需認證。個人使用一行註冊;團隊 repo 加 --scope project,設定寫入專案根目錄 .mcp.json,commit 後全隊共用;每位成員首次使用需核准一次。
1.14.2 版的六個工具。其他工具要求先呼叫 learn_shopify_api 取得 conversationId;未呼叫時一律拒絕。
| 工具 | 作用 |
|---|---|
learn_shopify_api |
載入指定 API 的背景知識並發 conversationId;每個對話的第一步 |
search_docs_chunks |
以使用者需求搜尋 shopify.dev 文件與程式範例 |
validate_graphql_codeblocks |
對真實 schema 驗證 GraphQL 程式碼,防幻覺欄位;支援 Admin、Storefront、Partner、Customer API |
validate_theme |
驗證佈景主題目錄內的檔案 |
validate_theme_codeblocks |
驗證生成的佈景主題程式碼區塊 |
validate_component_codeblocks |
驗證 Storefront Web Components 用法(early access,需設 STOREFRONT_WEB_COMPONENTS 環境旗標) |
chrome-devtools-mcp 與 @playwright/mcp(npm)可讓 agent 修改後自行開頁驗證。
/mcp,shopify-dev-mcp 顯示已連線並列出 6 個工具。團隊場景另確認 .mcp.json 已 commit。
Shopify 未發布官方 CLAUDE.md 範本;最接近的官方資產為 shopify.dev/llms.txt 與 AI Toolkit 的 agent skills。以下為 Tenten 內部範本,將步驟三的工具設為 agent 的固定流程:
learn_shopify_api。若 agent 直接憑記憶寫 GraphQL,檢查 CLAUDE.md 是否位於專案根目錄。
以一個真實任務驗收環境。標準迴圈:查文件、寫查詢、驗證 schema、修改程式、瀏覽器確認。validate_graphql_codeblocks 攔截 schema 中不存在的欄位與操作。
search_docs_chunks 與 validate_graphql_codeblocks,且驗證通過。未經 MCP 完成的 Shopify 任務,抽查其 GraphQL。
GitHub 持續部署:在 Sales channels → Hydrogen → Create storefront 流程中選 Set up GitHub continuous deployment now,選定 organization 與 repo,按 Connect;merge Shopify 自動建立的 workflow PR。之後每次 push 產生 preview deployment,預設分支對應 production。
環境結構:production 綁定預設分支;custom environments 綁定指定分支;其餘分支為 preview。deployment 不可變(immutable)且各有獨立網址;在 admin 修改環境變數會觸發相關環境重新部署。回滾僅支援 production 與 custom environments。
@shopify/remix-oxygen 已移除;agent 產出含 remix 相關 import 時退回重寫。introspect_admin_schema、fetch_full_docs 不存在於 1.14.2;現行入口為 learn_shopify_api,未先呼叫時其他工具一律拒絕。/api/mcp 端點(search_catalog、get_cart 等)供購物 agent 使用;開發迴圈使用本機的 Shopify Dev MCP。.env 不進版本庫。PRIVATE_STOREFRONT_API_TOKEN 與 SESSION_SECRET 為伺服器端秘密;正式環境變數在 admin 的 Environments and variables 管理。--customer-account-push;未開 tunnel 的 localhost 不在允許清單。.mcp.json commit 後,每位成員首次啟動顯示 pending approval;屬預期行為。最終狀態:專案連結真實商店;agent 具文件檢索與 schema 驗證;每次 push 產生 preview。逐項確認:
.env 含 7 個變數、dev server 讀真實商店 — 步驟二的產出。.mcp.json 進版本庫、/mcp 列出 shopify-dev-mcp — 步驟三的產出。
1. 環境模板化。CLAUDE.md、.mcp.json 與 workflow 檔各客戶案相同;收進 template repo,新案 clone 即用。
2. Agentic commerce。shopify.dev/docs/agents 的 UCP 體系(Catalog、Cart、Checkout、Order MCP)為商店側介面,供購物 agent 消費商店,與本篇的開發側互補。
3. QA 迴圈加瀏覽器。將 chrome-devtools-mcp 或 @playwright/mcp 加入 .mcp.json,由 agent 驗證頁面行為。
① Hydrogen getting started(shopify.dev)——scaffold 與初始設定的官方版本。
② Shopify Dev MCP(shopify.dev)——各 agent 平台的官方安裝指令與說明。
③ Claude Code MCP 文件(code.claude.com)——scope 規則、.mcp.json 格式與核准機制。