前言
Theme 首頁看起來接近設計稿,不代表轉版已完成。上一篇 談到同一張卡片背後可能是 Article、Product、Collection、Metafield 或 manual block;驗收必須同時覆蓋 code、視覺、Theme Editor 與真實 resource。
這篇用實際 conversion plan 建立一條驗收梯子,並把「這次真的跑過什麼」和「計畫要求、但還沒有公開證據」分開。
原本的做法與問題症狀
最容易出現的驗收方式是只看一張 desktop screenshot。它抓不到:
- Liquid 或 JSON schema 錯誤。
- Header、Section、Block 在 Theme Editor 中無法選取或儲存。
- 390px 手機寬度發生水平 overflow。
- 820px 平板落在錯誤 breakpoint,卡片數量與間距失衡。
- 1440px 桌面內容過寬,或大圖沒有合理尺寸。
- Blog 沒文章、Collection 沒商品、圖片為空時 markup 崩壞。
- 外部字型、圖片或 JavaScript 造成效能與第三方依賴。
反過來,只跑 Theme Check 也不夠。靜態 analyzer 能找 Liquid、JSON、效能與最佳實務問題,卻不知道實際 preview 是否忠於 source design。
問題是怎麼推敲出來的?
案例的 design handoff 提供多組 viewport,conversion plan 再收斂成三個主要 acceptance widths:390、820、1440。這三個數字不是 Shopify 平台保證的 breakpoint,而是此專案用來代表 mobile、tablet portrait 與 desktop 的抽樣點。
驗收因此分六層:
- Source inventory:頁面、素材、互動與 responsive contract 是否都有對應去向。
- Static theme validation:Theme Check、Liquid、JSON schema、檔案結構。
- Preview rendering:透過 development theme 在測試商店載入真實 Shopify runtime。
- Responsive visual comparison:390/820/1440 與 source archive 對照。
- Theme Editor operations:新增 section、修改 setting、重排 block、儲存、重開。
- Resource edge cases:空 Blog、長標題、缺圖、多 variants、空 Collection 與分頁。
任何一層失敗都應記錄在對應責任,不要用「頁面看得到」把它們合併成一個 pass。
最後採用的架構
驗收矩陣可以這樣保存:
| 層級 | 工具/操作 | 驗收重點 | 本次狀態 |
|---|---|---|---|
| Source inventory | source map | 每個 surface 與 asset 有去向 | 有 conversion plan |
| Theme static | shopify theme check |
error、warning、Liquid/JSON | 已執行 |
| Development preview | shopify theme dev |
Shopify runtime 與真實資料 | 無當日證據 |
| Mobile | 390px | navigation、單欄、overflow、tap target | 計畫項 |
| Tablet | 820px | grid transition、spacing、media | 計畫項 |
| Desktop | 1440px | max width、比例、large media | 計畫項 |
| Theme Editor | add/reorder/save/reload | schema、定位、持久化 | 無當日證據 |
| Resource cases | Blog/Product/Collection | empty/long/missing/pagination | 無當日證據 |
「無當日證據」不是失敗,也不是通過;它表示發布文章時不能宣稱已驗收。
關鍵實作
第一個 gate 是固定 CLI 版本與 path:
shopify version
shopify theme check --path ./theme
視覺驗收則應建立可重現的 checklist:
390px
□ 無水平捲動
□ mobile navigation 可開關、可鍵盤操作
□ heading 不截斷
□ CTA 不互相覆蓋
820px
□ grid 在 tablet 寬度不過密
□ 圖片與文字順序符合 source
□ section 間距沒有沿用錯誤 desktop 值
1440px
□ content max-width 與 gutter 正確
□ hero、卡片與圖片比例接近 source
□ navigation、hover、focus 狀態完整
Theme Editor 驗收不能只改文字:
新增 section → 修改 settings → 新增 block
→ 重排 block → 隱藏/刪除 → 儲存
→ 重新整理 editor → preview storefront 再確認
若 JSON template 會由 editor 更新,還要確認團隊如何把 store-side configuration 拉回版本控制,或明確決定它不屬於 code artifact。
實際驗證
2026-07-29 的當日結果如下:
- Shopify CLI:4.5.2。
- Theme Check:exit code 0。
- 檢查 44 個 theme files。
- 0 error。
- 3 warnings,全部集中在
layout/theme.liquid的外部字型資源,規則為RemoteAsset。
Theme source 也有 templates/index.json、多個 custom sections、schema、blocks、header/footer groups,以及 Article、Blog、Product、Collection 等基礎 templates。
本次沒有連接或修改任何正式商店,也沒有公開 development store。沒有執行可被保存的 390/820/1440 screenshot comparison,沒有 live Theme Editor reorder/save/reload 紀錄,也沒有真實 resource fixture。因此本文提供的是「驗收方法+靜態 gate 的當日結果」,不是完整視覺簽核。
仍然存在的限制
第一,Theme Check exit 0 不代表 warning 可忽略。外部字型會讓頁面依賴第三方 domain,也可能增加 render-blocking request;應建立 owner 與修正決策。
第二,三個 viewport 是代表點,不是完整裝置集合。至少還應檢查兩點之間的流動寬度,以及 200% zoom、長文字與不同語系。
第三,screenshot 只能看視覺,不能證明 keyboard navigation、focus order、screen reader label、reduced motion 或 form error handling。
第四,development theme 使用的 resource 狀態會影響結果。只有 demo content 的 happy path,無法證明 empty state、pagination、unavailable variant 與缺圖。
第五,Theme Editor 的 section reorder 可能改變前景/背景、heading order 或 JavaScript selector。元件能拖曳不等於任意順序都有合理語意。
最後,來源工作區沒有可核對的 theme Git history。驗收結果應另存 timestamp、CLI version、theme commit/artifact identity 與 screenshot;否則日後無法確認通過的是哪一版。
可以延伸到哪些情境?
完整發布前可以把 gate 排成:
Theme Check
→ JSON / Liquid smoke test
→ development preview
→ 390 / 820 / 1440 visual regression
→ Theme Editor CRUD + reorder
→ resource edge cases
→ accessibility / performance
→ controlled publish + rollback check
自動化適合阻擋可重現的錯誤;視覺、內容與商家操作仍需要明確 reviewer。最重要的不是把每格快速標綠,而是讓「已驗證」、「尚未驗證」與「平台之外的限制」各自可追蹤。
本次每日上限到 1039 為止;同一 Theme 批次的下一篇維護文章尚未發布,因此不預先建立正式連結。
參考資料
- Shopify:Theme Check
- Shopify:Shopify CLI for themes
- Shopify:Test your theme
- Shopify:Theme editor integration
- Shopify:Theme architecture
以上平台文件查核日期:2026-07-29。
