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

多语言WooCommerce站点:如何用术语ID/Slug批量分配产品属性?

问题与解决方案

核心问题

多语言站点中,部分属性术语的文本值在两种语言中相同,但对应不同的术语ID。当前通过Python代码批量更新产品属性时,仅使用options参数传入文本值,导致系统自动匹配站点标准语言的术语,无法正确分配对应语言的翻译版本术语。

可行方案

WooCommerce API支持直接使用术语ID作为属性选项的分配参数,无需依赖文本值。对于Slug,需先通过API查询获取对应的术语ID,再传入参数。

1. 直接使用术语ID分配

将对应语言的术语ID放入options数组中,系统会精准匹配对应语言的术语,避免文本值相同导致的匹配错误。

2. 通过Slug获取术语ID(可选)

若需使用Slug,可先调用WooCommerce属性术语API(GET wp-json/wc/v3/products/attributes/{attribute_id}/terms),传入Slug参数查询得到对应术语ID,再将ID传入options数组。

修改后的代码示例

以属性ID=2(model)为例,根据产品语言版本传入对应的术语ID:

data['update'].append({     
    "id": str(int(product.wp_component_id_fr)),
    "attributes": [
        # brand
        {'id':'1',
         'visible':'true',
         'options': [str.upper(product.brand.replace("&","&")).strip()]},
        # model - 使用对应语言的术语ID
        {'id':'2',
         'visible':'true',
         # 根据产品语言选择对应的术语ID:116101或137871
         'options':['137871']},  # 替换为目标语言的术语ID
        # oem
        {'id':'4',
         'visible':'true',
         'options':oem_list},
        # machine
        {'id':'5',
         'visible':'true',
         'options':[machine]}
    ]
 })

验证示例数据

修改后发送给WooCommerce的数据示例:

data = {
    'update': [
        {
            'id': '502620',
            'attributes': [
                {'id': '1', 'visible': 'true', 'options': ['LIEBHERR']},
                {'id': '2', 'visible': 'true', 'options': ['137871']},  # 替换为对应语言的术语ID
                {'id': '4', 'visible': 'true', 'options': []},
                {'id': '5', 'visible': 'true', 'options': ['LIEBHERR R901 B']}
            ]
        }
    ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 14:40:03