You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python批量修改WooCommerce产品报404错及变量产品修改咨询

我来帮你解决这两个问题,先看批量修改简单产品的报错原因,再讲变量产品的批量修改方法:

修复批量修改简单产品的404错误

你遇到的rest_no_route错误主要有两个原因:

  1. 用错了API端点:WooCommerce REST API v3的批量操作端点是products/batch,不是你用的products/bulk
  2. 数据格式不符合要求:批量更新需要把要修改的产品列表包裹在update字段下,而不是直接传元组

修正后的代码如下:

import sys
import json
from woocommerce import API

wcapi = API(
 url="https://...",
 consumer_key="ck_...",
 consumer_secret="cs_...",
 wp_api = True,
 version="wc/v3",
 query_string_auth=True # Force Basic Authentication as query string true and using under HTTPS
)

# 正确的批量更新数据结构:用update字段包含待修改产品列表
data = {
    "update": [
        {"id": 1995, "regular_price": "1775000", "sale_price": "1685000", "stock_quantity": 6},
        {"id": 4673, "regular_price": "2300000", "sale_price": "2045000", "stock_quantity": 15}
    ]
}

# 使用正确的batch端点发起请求
response = wcapi.put("products/batch", data)
print(response.json())

额外提醒几个细节:

  • 产品ID用整数类型更规范(字符串也能被识别,但整数是官方推荐格式)
  • 每个产品对象只需要包含要修改的字段,不需要传递全量产品属性
  • 确保你的Consumer Key拥有write_products的权限
批量修改WooCommerce变量产品

变量产品的变体是独立的资源,需要针对父产品的变体端点进行批量操作。具体步骤是:

  1. 找到目标变量产品的父ID
  2. 使用products/<父产品ID>/variations/batch端点批量更新该产品下的变体

示例代码如下:

# 批量更新某个变量产品的多个变体
variation_data = {
    "update": [
        {"id": 123, "regular_price": "100000", "sale_price": "90000", "stock_quantity": 10}, # 变体1的ID
        {"id": 124, "regular_price": "150000", "sale_price": "135000", "stock_quantity": 5}  # 变体2的ID
    ]
}

# 替换<父产品ID>为目标变量产品的实际ID
response = wcapi.put("products/<父产品ID>/variations/batch", variation_data)
print(response.json())

如果需要批量修改多个变量产品的变体,你需要循环遍历每个变量产品,分别调用对应的variations/batch端点(WooCommerce API v3不支持跨产品的变体批量更新)。

内容的提问来源于stack exchange,提问作者bghad1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 14:38:16