【发布时间】:2022-04-08 06:13:59
【问题描述】:
我正在尝试使用对 V2 订单 API 的 PUT 请求更新商店中的现有订单:
https://api.bigcommerce.com/stores/{$$.env.store_hash}/v2/orders/{id}
根据docs,我应该可以更新以下内容:
customer_id, status_id, 添加新产品, 添加自定义产品, billing_address
我唯一成功更改的是 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:对于其他路过的人来说,这似乎是与可下载产品相关的错误。有关详细信息,请参阅已接受答案下的评论链。
【问题讨论】:
-
您能否提供一个请求正文的示例?
-
@T.J.我正在使用他们提供的示例,该示例在问题中被引用。
-
使用上面的示例并将 product_id 更改为商店中的一个,它确实返回 200。然后对产品子资源(developer.bigcommerce.com/api-reference/orders/orders-api/…)进行查询,我可以看到它已添加到订单中。
-
@T.J.对不起,这对我根本不起作用。你的身体里有其他东西吗?我正在使用带有原始应用程序/json 主体的 V2 API。标头是客户端、令牌、内容类型和接受。我正在查看商店并查询 {order_id}/products API,但都没有反映任何变化。这是邮递员的问题吗?我可以尝试用 PHP 发出请求,看看是否可行。
-
经过测试,我们似乎需要更新如何将新产品添加到订单中。示例中的结构不正确。我无法重现您遇到的其他问题,我在下面列出了每个 PUT 的示例正文。
标签: bigcommerce