用 productSet 改三个变体价格却删掉其余变体
现象#
只想改 3 个变体的价格,调用 productSet 时只传了这 3 个,结果商品从 300 个变体变成 3 个,其余 SKU 与库存全部消失。
原因#
- productSet 对 variants 这类列表字段是集合语义,未包含的条目会被删除
- 只传部分标量字段时其余字段保持不变,列表字段却按全量重新写入
- 一次写入的 inventoryQuantities 合计上限 50000,多地点大商品会中途失败
- CSV 导入按 Handle 匹配,缺列会被当成清空而不是跳过
处理步骤#
- 只改价格改用
productVariantsBulkUpdate,并带上allowPartialUpdates: true - 必须用 productSet 时先翻页取全量
variants再整体回填 - 写前用
bulkOperationRunQuery导出变体与库存做备份 - CSV 只导出要改的列,保留
Handle与Variant SKU作匹配键 - 改完比对
variantsCount,数量变少立即按备份回滚
验收标准#
变体总数与改前一致,只有目标 3 个变体的价格变化,其余 SKU、库存、图片未动。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。