如何使用axios通过WooCommerce API提交带meta_data的订单
问题解决方法
核心原因
你当前提交的请求参数中line_items仅携带了基础商品的ID,没有传递附加配菜对应的标识参数,WooCommerce API无法识别你选择了需要加价的配菜,因此只会计算基础商品的价格。
分场景解决方案
场景1:配菜为可变商品的变体(Variable Product)
如果你的配菜是在WooCommerce后台为商品设置的变体属性(比如不同规格、不同搭配),需要在对应line_items中新增variation_id字段,传入所选配菜对应变体的ID:
line_items: [ { product_id: 1479, variation_id: 1482, // 替换为用户所选配菜对应的变体ID quantity: 2 } ]
变体ID可以提前调用/wp-json/wc/v3/products/<product_id>/variations接口获取所有可选变体的ID和对应属性、价格。
场景2:配菜为商品附加选项(通过Product Add-Ons等插件实现)
如果你的配菜是通过第三方附加项插件配置的自定义可选属性,需要在对应line_items中新增meta_data字段,传递附加项的键值对:
line_items: [ { product_id: 1479, quantity: 2, meta_data: [ { key: "extra_food", // 替换为插件中配置的附加项字段名 value: "fried_egg" // 替换为用户选择的配菜值 } ] } ]
场景3:配菜为独立的商品
如果每个配菜本身就是WooCommerce中独立的商品,需要把每个选中的配菜作为单独的条目加入line_items数组:
line_items: [ { product_id: 1479, quantity: 2 }, { product_id: 1485, // 替换为配菜对应的商品ID quantity: 2 // 和主商品数量保持一致或者按用户选择填写 } ]
验证技巧
你可以直接抓包网页端提交订单时的请求参数,对比网页端line_items的字段结构,完全对齐字段即可保证价格计算正常,无需手动计算并传递商品总价,WooCommerce API会自动根据参数计算对应金额。
内容的提问来源于stack exchange,提问作者UMAIR ARSHAD
相关产品推荐
相关产品推荐

