我发现,当我使用BigCommerce API更新订单时,订单的产品线项目被重复了。似乎即使我在订单更新JSON对象中传递单行项目,我也会得到两行(订单产品)。
我在这里放置更新调用文档:https://developer.bigcommerce.com/api/stores/v2/orders#update-an-order
更新是成功的,但我原来的产品现在是两个产品线。似乎BC将我发送的内容解释为新产品线,而不是替换/更新现有的产品线。
我正在传递orderProducts的'id'。
我是否需要传递一些东西来指示行项目要更新而不是创建新的?enter code here
这是我发送的JSON:
{
"customer_id": 1,
"date_created": "Mon, 14 Sep 2015 19:28:01 +0000",
"status_id": 11,
"base_shipping_cost": "0.0000",
"shipping_cost_ex_tax": "0.0000",
"shipping_cost_inc_tax": "0.0000",
"base_handling_cost": "0.0000",
"handling_cost_ex_tax": "0.0000",
"handling_cost_inc_tax": "0.0000",
"base_wrapping_cost": "0.0000",
"wrapping_cost_ex_tax": "0.0000",
"wrapping_cost_inc_tax": "0.0000",
"total_ex_tax": "34.0000",
"total_inc_tax": "34.0000",
"items_total": 16,
"items_shipped": 0,
"payment_method": "Manual",
"refunded_amount": "0.0000",
"order_is_digital": "false",
"ip_address": "64.231.103.57",
"geoip_country": "Canada",
"geoip_country_iso2": "CA",
"discount_amount": "0.0000",
"ebay_order_id": 0,
"billing_address": {
"first_name": "Charles",
"last_name": "Delfs",
"company": "Delfs Eng",
"street_1": "50 Moore St.",
"street_2": "Box 1428",
"city": "Bradford",
"state": "Ontario",
"zip": "L3Z 2B7",
"country": "Canada",
"country_iso2": "CA",
"phone": "",
"email": "mrdelfs@gmail.com"
},
"products": [{
"id": 253,
"product_id": 113,
"name": "Hammer and Anvils 6",
"sku": "",
"price_ex_tax": "24.0000",
"price_inc_tax": "24.0000",
"quantity": 1,
"ebay_item_id": "",
"product_options": []
}, {
"id": 254,
"product_id": 113,
"name": "Hammer and Anvils 6",
"sku": "",
"price_ex_tax": "24.0000",
"price_inc_tax": "24.0000",
"quantity": 1,
"ebay_item_id": "",
"product_options": []
}],
"shipping_addresses": []
}
BC Support的响应…"感谢您联系Bigcommerce!"
"我很遗憾地说,更新订单行项目的细节很少,因为它目前还没有完全建立起来。有一些方法可以更新现有的行项目——类似于您尝试过的方法,但是如果您想覆盖现有的行项目,则需要在订单中包含现有产品的"id"参数。但问题是,当对现有产品进行更新时,总数计算似乎不正确。我也看到过类似的奇怪之处,它改变了现有的送货地址。现在您可以额外更新"total_inc_tax"one_answers"total_ex_tax"以使其准确,但在某些情况下,"total_tax"行项似乎仍然不正确。
这确实是v2 API没有妥善解决的问题,需要在即将推出的下一个版本中解决。与此同时,我的建议是,如果您需要更新产品或送货地址,不要以这种方式更新现有订单,而是创建新订单并丢弃原始订单。更新订单上的其他细节似乎不会产生同样的负面影响。
我很抱歉,因为我知道这不是你想听到的。如果您对上述问题有任何疑问,请让我知道,我会尽我所能提供帮助。"解决方案:我的代码没有将返回的BC Line信息映射到正确的记录,并且随后创建了重复的记录。
一个根本的问题仍然存在:该API允许编辑行项,但不允许删除行项。他们建议删除并重新创建订单,这会破坏所有通过订单id连接的第三方应用程序!