Shopify Theme 更新不是按下按鈕後看看首頁。新版可能修正安全與功能,也可能改變 section schema、CSS、JavaScript 和翻譯;商店自己的客製、App snippet 與追蹤碼若沒有記錄,很容易在更新後消失或重複。
安全的更新流程從知道「目前版本和原版差在哪裡」開始。正式 Theme 若長期直接在 code editor 修改,又沒有版本控制,第一步應先建立可追蹤基準。
建立三方差異
準備舊版原始 Theme、目前 production Theme 和新版原始 Theme。比較目前版相對舊原版的客製,再查看新版對舊版的官方變更。這能區分品牌修改與供應商更新,避免把整個 production Theme 粗暴覆蓋到新版。
客製清單記錄檔案、目的、需求連結、資料依賴、App、owner 和測試案例。只寫「首頁有改」不足以讓下一位工程師重建。
使用 Git 與 Theme 副本
將 Theme 程式放進 Git,分支處理新版合併與衝突。Shopify CLI 或團隊整合可將程式推到未發布 Theme,供內容和 QA 預覽。正式站 code editor 應限制緊急使用,事後也要把修改同步回程式庫。
Theme settings 和 template JSON 可能包含營運內容,合併時要避免用開發環境的舊資料覆蓋正式設定。程式與內容需要各自的來源和備份策略。
先處理 schema 與內容相容性
新版 section 若更名 setting、調整 block type 或移除 preset,舊 template 可能顯示空白。用 production template JSON 和真實商品資料測試,確認 sections 能載入、dynamic source 正確、Theme editor 沒有錯誤。
若需要資料遷移,寫一次性腳本或明確人工步驟,先在副本演練。不要要求內容團隊在發布當天重建所有頁面。
檢查 App、Pixel 與整合
確認 app blocks、app embeds、舊式 snippets、web pixel、tag manager 和客服工具。新版可能已原生提供相同功能,造成重複;也可能改變 DOM,讓依賴 selector 的 App 失效。
用關鍵旅程驗證評論、訂閱、加購、搜尋、登入、付款與訂單事件。App 後台顯示 connected,不能代替前台實測。
建立回歸測試清單
至少涵蓋首頁、集合、商品、搜尋、購物車、內容頁和主要市場;測手機、桌面、鍵盤、變體、缺貨、折扣、付款與分析事件。比較新版前後的 Core Web Vitals 實驗室指標和 network request,避免功能正常但速度明顯退步。
問題依交易阻斷、資料錯誤、操作障礙和視覺差異分級。高風險缺陷清零後才排發布,其餘要有 owner 與期限。
發布要能快速回復
選低風險時段發布,保留原 production Theme,不要立即刪除。發布後執行短版 smoke test,監看付款、前端錯誤、客服與分析。若出現價格、購物車或付款問題,按事先門檻切回原版,再保留證據調查。
內容凍結和程式凍結分開管理
更新測試期間,營運仍可能修改首頁、活動與商品 template。設定短暫凍結窗口,或明確記錄從 production 合併最新 JSON 的時間。若無法停止內容工作,就指定一人負責對照差異,避免新版發布後遺失剛完成的活動設定。
程式凍結則限制非必要 feature 和 App 安裝。安全修正可走獨立 hotfix,但必須同步到新舊兩條分支,否則更新發布時會把修正覆蓋掉。
先在小流量範圍觀察
若架構與工具允許,可先對測試市場、內部人員或可控流量驗證;無法分流時,選訂單較低時段並縮短發布後檢查週期。重點是提前決定觀察哪些訊號、誰有權回復,以及需要保留多久證據。
更新後清理舊資產
穩定觀察期結束後,再移除不需要的 Theme 副本、舊 App snippet 和臨時 feature flag。保留上一個可回復版本與 release note,但不要讓後台堆滿名稱不清的副本。每個正式 Theme 使用日期、版本和 owner 命名,降低誤發布風險。
更新完成後補上版本、差異、測試和已知限制。每次小改都走相同流程,下一次 Theme 升級才不會重新考古。可把這套工作納入 Shopify 維護合約,明確約定版本監看與更新責任。