Shopify 商品与变体

用 productSet 改三个变体价格却删掉其余变体

现象#

只想改 3 个变体的价格,调用 productSet 时只传了这 3 个,结果商品从 300 个变体变成 3 个,其余 SKU 与库存全部消失。

原因#

  • productSet 对 variants 这类列表字段是集合语义,未包含的条目会被删除
  • 只传部分标量字段时其余字段保持不变,列表字段却按全量重新写入
  • 一次写入的 inventoryQuantities 合计上限 50000,多地点大商品会中途失败
  • CSV 导入按 Handle 匹配,缺列会被当成清空而不是跳过

处理步骤#

  1. 只改价格改用 productVariantsBulkUpdate,并带上 allowPartialUpdates: true
  2. 必须用 productSet 时先翻页取全量 variants 再整体回填
  3. 写前用 bulkOperationRunQuery 导出变体与库存做备份
  4. CSV 只导出要改的列,保留 Handle 与 Variant SKU 作匹配键
  5. 改完比对 variantsCount,数量变少立即按备份回滚

验收标准#

变体总数与改前一致,只有目标 3 个变体的价格变化,其余 SKU、库存、图片未动。

本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。