如何使用Sync API翻译商品自定义字段?
如何在Sync REST API中翻译商品自定义字段
要翻译商品的自定义字段,你需要把翻译内容放在translations下对应语言节点的customFields对象中,而不是直接将字段名放在翻译节点根下,也不能在根节点的customFields里嵌套语言键值对。
正确的请求结构示例
[ { "entity": "product", "action": "upsert", "payload": [ { "productNumber": "12345", "name": "A simple product", "taxId": "01982e42a48a73bfbf87fd4f7410cadb", "stock": 9999, "isCloseout": false, "weight": 0, "visibilities": [], "price": [], "translations": { "cs-CZ": { "description": "", "customFields": { "zenit_gravity_tabs_set_short_description": "Foo(捷克语翻译)" } }, "de-DE": { "description": "", "customFields": { "zenit_gravity_tabs_set_short_description": "Foo(德语翻译)" } }, "en-GB": { "description": "", "customFields": { "zenit_gravity_tabs_set_short_description": "Foo(英语翻译)" } }, "es-ES": { "description": "", "customFields": { "zenit_gravity_tabs_set_short_description": "Foo(西班牙语翻译)" } }, "nl-NL": { "description": "", "customFields": { "zenit_gravity_tabs_set_short_description": "Foo(荷兰语翻译)" } }, "pl-PL": { "description": "", "customFields": { "zenit_gravity_tabs_set_short_description": "Foo(波兰语翻译)" } } }, "properties": [], "id": "bbc2966bdeb5085837f24824b93eca42", "tags": [], "customFields": { "zenit_gravity_tabs_set_short_description": "Foo(默认语言值)" } } ] } ]
之前尝试失败的原因
- 第一种尝试:直接把自定义字段放在翻译节点的根层级(比如
cs-CZ下直接添加字段),API无法识别这种结构,翻译节点下的自定义字段必须嵌套在customFields对象内。 - 第二种尝试:根节点的
customFields仅接受字符串类型的默认值,不支持嵌套语言键值对,因此触发了“值应为字符串类型”的错误。
关键注意点
- 根节点的
customFields要设置该自定义字段的默认语言值,确保未配置翻译的语言会回退到这个值。 - 每个语言节点下的
customFields只需包含需要翻译的字段,无需重复所有自定义字段。
内容的提问来源于stack exchange,提问作者Daniel
相关产品推荐
相关产品推荐

