商品变体涨到上千个后批量改价总是漏一半怎么处理
现象#
把一个商品扩到 1200 个变体后,后台变体列表翻到第三页开始转圈,脚本用 variants(first: 250) 只拿到前 250 个,剩下 950 个价格一直没改。
原因#
- GraphQL 单次 connection 最多返回 250 条,不翻页永远只看得到第一页
- productVariantsBulkUpdate 一次只能带一个 productId,跨商品改价必须逐个调用
- productSet 一次写入的 inventoryQuantities 合计不能超过 50000 条,多地点时先撞上限
- REST 的 /products/{id}/variants.json 已不支持 2048 变体,返回的是截断结果
处理步骤#
- 用
variants(first: 250, after: $cursor)循环翻页,以pageInfo.hasNextPage作为退出条件 - 全量导出改用
bulkOperationRunQuery,JSONL 里按__parentId还原变体归属 - 改价按每批 100 个调
productVariantsBulkUpdate,只在同一 productId 内合并 - 库存改动走
inventorySetQuantities,别和变体写入抢同一个 50000 条配额 - 回写后对比
variantsCount与改前数字,数量不一致说明有批次失败
验收标准#
抽查第 1000 个之后的变体,价格与新价一致;variantsCount 与改前相同,且返回的 userErrors 为空。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。