Shopify Metafield 用來保存平台標準欄位之外的資料,例如商品材質、保固期、洗滌方式、下載文件或集合頁介紹。建立一個欄位很快,真正困難的是幾個月後仍知道它的用途、資料由誰維護,以及刪除會影響哪些頁面與整合。
不要從「後台可以新增什麼」開始。先定義顧客或營運需要回答的問題,再決定資料應屬於商品、variant、collection、customer、order 或其他 resource。
一個欄位只表達一個語意
把「材質、產地、保養方式」全塞進 rich text,前台能顯示,卻無法篩選、驗證或重用。若三項資料有各自用途,應分成明確欄位。相反地,純敘事內容若不需要程式處理,也不必過度拆成每一句一個欄位。
為每個欄位寫一句定義、範例和反例。例如 specs.material 表示顧客可見的主要材質,不包含包裝。這能避免不同團隊把相近資料填進不同位置。
Namespace 和 key 要能長期理解
使用穩定、具領域意義的 namespace,例如 specs、shipping 或品牌自有前綴;key 描述資料本身,不綁定目前版位。product_page_tab_2 日後換版就失去意義,care_instructions 則能在商品頁、email 或 App 重用。
命名確定後不要頻繁更改。若需要遷移,先建立新欄位、搬資料、更新所有讀取端並驗證,再移除舊欄位。
選擇正確型別與驗證
數字、日期、URL、檔案、商品 reference、list 和 rich text 各有不同能力。使用 typed metafield 能讓後台輸入與 API 回傳更可靠。能用 reference 指向商品或 metaobject 時,不要保存容易失效的手寫 handle。
Definition 可設定驗證,例如數值範圍、文字長度或允許值。驗證應反映真正業務規則;過度嚴格會讓營運者為了通過而填入假資料。
先確認資料的 owner
每個 metafield 要指定來源和維護者。材質可能由商品團隊提供,物流限制由營運維護,ERP 同步欄位則由系統產生。若後台仍允許人工修改系統主資料,下一次同步可能覆蓋內容。
建立資料字典,記錄 resource、namespace/key、型別、定義、owner、來源、使用頁面、API 消費者和更新頻率。欄位少時看似多餘,規模增加後能大幅降低重複和誤用。
前台不能假設每筆都有值
Theme section 使用 dynamic source 或 Liquid 讀取 metafield 時,要處理缺值、錯誤型別和長內容。某欄位是新功能,舊商品可能尚未補齊;前台應隱藏該模組或提供合理替代,不能顯示空標題。
多語系也要確認哪些 metafield 可翻譯、由誰審核,以及市場缺少翻譯時的狀態。不要讓英文市場 URL 默默出現繁體中文資料。
何時改用 Metaobject 或外部系統
單一商品的一個值適合 metafield;多個欄位組成且會重用的實體,例如成分、設計師、門市或 FAQ,通常更適合 metaobject,再由 metafield reference 連接。大量商品主資料若由 PIM 或 ERP 管理,Shopify 可能只是發布目標,欄位模型仍需和來源系統對齊。
上線前先做覆蓋率報告
建立欄位後,統計應填商品中有值、空值與格式錯誤的數量,再依類別和市場切分。若只有少數商品完成,前台模組應延後啟用或分批發布,不能讓顧客看到大量不一致頁面。資料修正也要有截止日和 owner。
抽樣時包含新品、舊品、多變體、不同市場和已下架商品。API 同步欄位需再比對來源系統,確認空值究竟代表「沒有資料」或「應清除舊值」,兩者不能用同一規則處理。
變更要有相容期
欄位型別、namespace 或 key 需要調整時,先列出 Theme、Flow、App、報表與外部 API 的所有讀取端。新舊欄位並行一段時間,完成搬移與監控後再刪除舊定義。直接改名可能讓前台靜默變空,錯誤不一定會被系統主動通知。
每季盤點沒有資料、沒有讀取端、名稱重複或 owner 不明的欄位。刪除前先搜尋 Theme、App、Flow 和 API 使用情況,保留遷移紀錄。若需要把資料帶進可編輯頁面,可搭配 Shopify 2.0 區塊規劃,讓內容模型和視覺模組一起驗收。