GAS对接WC RESTv2创建带自定义属性产品报错求助
问题排查与解决方案
核心错误原因
你遇到的问题主要来自两个方面:
1. 语法错误:属性未正确嵌套到data对象
你写的代码里,attributes字段是在data对象定义完成后单独声明的,这会导致data对象根本不包含attributes属性,同时这也是JavaScript语法错误。正确的做法是把attributes作为data的一个键值对,放到对象内部。
2. 参数类型不符合WooCommerce API要求
WooCommerce v2 API对产品属性的参数类型有严格要求,你的代码里多个参数类型错误:
variation和visible需要是布尔值(false),不是字符串"false"options需要是数组,比如["ANY"],不是字符串"[ANY]"id和position需要是整数(0、1),不是浮点数0.0、1.0
修正后的完整代码
// 修正后的data结构,可正常创建带自定义属性的产品 var data = { "name": " TESTING HERE TOO", //"sku" : "TESTINGINGING ", "type": "simple", "regular_price": "1.99", "weight": 10, "manage_stock": true, "stock_quantity": 10, "description": "testing \n", "attributes": [ { "variation": false, "options": ["ANY"], "id": 0, "name": "Supplier", "position": 0, "visible": false }, { "variation": false, "options": ["ANY"], "id": 0, "name": "Invoice", "position": 1, "visible": false } ] }; var surl = website + "/wp-json/wc/v2/products?consumer_key=" + keys + "&consumer_secret=" + scret; var options = { "method": "POST", "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8", "muteHttpExceptions": true, "payload": data };
验证说明
修正后,attributes会被正确识别为包含对象的数组,每个属性的参数类型也符合API要求,就能正常创建带自定义属性的简单产品了。
内容的提问来源于stack exchange,提问作者Wanderson
相关产品推荐
相关产品推荐

