带有 woocommerce 包和 Woocommerce REST API 的 Python 不会更新类别

问题描述 投票:0回答:0

我在更新产品类别时遇到问题。我将 python 与 woocommerce 库一起使用。 (但是,我尝试使用请求和 REST API - 但结果完全相同)

wcapi = woocommerce.API(
        url="https://FQDN.name",
        consumer_key="ck_xx",
        consumer_secret="cs_yy",
        version="wc/v3",
        wp_api=True,
        timeout=60
    )

如果查询产品:

current_product = wcapi.get(f"products/{wcid}").json()
current_category_ids = [category["id"] for category in current_product["categories"]]
print(f'{current_category_ids=}')

我得到的结果:

current_category_ids=[2419, 2443, 2566, 2511]

当我想为这个产品添加一个类别时:

categories = [{"id": id} for id in current_category_ids]
categories.append({'id': 3465})
product_data = {"categories": categories,}
print(f'{product_data=}')
# product_data={'categories': [{'id': 2566}, {'id': 2511}, {'id': 2443}, {'id': 2419}, {'id:': 3465}]}

updated_product = wcapi.put(f"products/{wcid}", product_data).json()

它不添加“3465”类别 ID。当我在网站上手动添加这个类别时,我在查询 woocomerce 时得到这些类别:

[2419, 2443, 2566, 2511, 3465]

然后我重新运行更新片段,看起来“3465”类别已被删除。

如果我在片段中手动更改:

product_data = {'categories': [{'id:': 15},]}

并运行代码

updated_product = wcapi.put(f"products/{wcid}", product_data).json()
updateded_category_ids = [category["id"] for category in updated_product["categories"]]
print(f'{updateded_category_ids=}')
#result: updateded_category_ids=[2417]

这没有多大意义... 我不知道这是否重要,但每个产品都有两种语言版本。主要语言是“en”,第二语言是“pl”。使用“pl”语言的产品是使用指向英语版本的translation_of参数创建的。与类别相同。两种语言版本:en(主要)和 pl.

关于我可以做些什么来完成这项工作有什么想法吗?

python woocommerce woocommerce-rest-api
© www.soinside.com 2019 - 2024. All rights reserved.