我正在尝试使用对V2订单API的PUT请求来更新商店中的现有订单:
https://api.bigcommerce.com/stores/ {$$。env.store_hash} / v2 / orders / {id}
根据docs,我应该能够更新以下内容:
customer_id,status_id,添加新产品,添加自定义产品,帐单地址
我唯一成功更改的是status_id。我可以使用文档页面底部提供的示例正文:
{
"status_id": 1,
"billing_address": {
"first_name": "Trisha",
"last_name": "McLaughlin",
"company": "",
"street_1": "123 Main Street",
"street_2": "",
"city": "Anywhere",
"state": "Some State",
"zip": "12345",
"country": "United States",
"country_iso2": "US",
"phone": "",
"email": "elsie@example.com"
}
}
我没有尸体就得到200 OK的回复。但是在商店中,仅状态会更改。如果我故意拼写错误的字段,则会收到错误响应,对我来说,该正文的格式正确,但被忽略了。
任何人都可以提供一个示例的机构来更新帐单地址或添加API将对其起作用的新产品吗?
我目前正在用Postman生成PUT请求,但是稍后将移至PHP。
谢谢。
编辑:
这是我尝试添加现有产品的请求的一个示例,该请求也被接受但不起作用。
{
"products": [{
"product_id": 111,
"quantity": 5
}]
}
编辑2:为了提供更多背景信息,我尝试更新的订单已经有现有产品,并且已经“付款”(产品是免费的)。我尝试添加已经订购的产品以及新产品。我也尝试过各种状态的订单。另外,订单是由来宾帐户处理的,因此customer_id字段为0。我没有尝试使用已注册的帐户订单进行此操作。这些事情中的任何一个可能导致问题吗?
编辑3:对于其他任何徘徊的人,这似乎是与可下载产品相关的错误。有关详细信息,请参见已接受答案下的评论链。
答案 0 :(得分:0)
添加新产品:
{
"products": [{
"name": "Poster",
"quantity": 5,
"price_inc_tax": 12.45,
"price_ex_tax": 10.12
}]
}
添加现有产品:确保将product_id更新为商店中的产品。
{
"products": [{
"product_id": 187,
"quantity": 5,
"price_inc_tax": 12.45,
"price_ex_tax": 10.12
}]
}
它将返回200。然后查询Order Products以查看订单上的产品列表。
要更新帐单邮寄地址,此结构有效:
{
"billing_address": {
"first_name": "Jane",
"last_name": "Doe",
"company": "",
"street_1": "455 Main Street",
"street_2": "",
"city": "Austin",
"state": "Texas",
"zip": "78751",
"country": "United States",
"country_iso2": "US",
"phone": "",
"email": "rick@sanchez.com"
}
}
客户ID必须与商店中存在的客户ID相匹配。要获取客户列表,请使用customers endpoint。
{
"customer_id": 20
}