Web Pixel 的 checkout 对象字段为空怎么排查
现象#
在 checkout_completed 回调里读 event.data.checkout.totalPrice 得到 undefined,lineItems 是空数组;同一段代码在商品页读 init.data.cart 却有值。
原因#
- 结账事件的载荷在 event.data.checkout,而 init 快照里只有 cart,两个对象结构完全不同
- 金额是 MoneyV2 对象,必须读 totalPrice.amount,直接当数字用只会拿到 undefined
- order 节点只在结账完成后存在,购物车阶段没有订单号可读
- 行项目商品在 merchandise.product 下,按 cart 的 items 路径取会取空
处理步骤#
- 先用
console.log(event.data.checkout)看真实结构 - 金额取
totalPrice.amount,币种取currencyCode - 订单号取
checkout.order.id,并作为 transaction_id - 遍历
lineItems,取merchandise.product.id - 把取值封装成函数并对 undefined 兜底,避免一个字段缺失让整个回调抛错
验收标准#
Pixel Helper 展开该事件能看到 totalPrice.amount 与订单号,转发到 GA4 的 value 与后台订单总额一致。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。