BigCommerce 订单 API:无法更新

BigCommerce Orders API: unable to update

我正在尝试使用对 V2 订单的 PUT 请求更新商店中的现有订单 API:

https://api.bigcommerce.com/stores/{$$.env.store_hash}/v2/orders/{id}

根据docs,我应该可以更新以下内容:

customer_id, status_id, Add a new product, Add a custom product, 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:为了提供更多上下文,我尝试更新的订单已经有现有产品并且已经 'paid for'(产品免费)。我试过添加订单中已有的产品以及新产品。我也在不同状态的订单上试过这个。此外,订单由访客帐户处理,因此 customer_id 字段为 0。我没有尝试使用注册帐户订单执行此操作。这些问题是否会导致问题?

编辑 3:对于任何路过的人来说,这似乎是与可下载产品相关的错误。有关详细信息,请参阅已接受答案下的评论链。

添加新产品:

{
    "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
    }]
}

它将return一个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
}

根据此页面: https://developer.bigcommerce.com/api-reference/b3A6MzU5MDQ3MzE-update-an-order

它指出:

“状态将包括(字符串,选项)之一 - 在订单状态下定义的值。此值为 read-only。请勿尝试在 POST 中修改或设置此值或 PUT 操作。

您似乎无法从 api...

更新订单状态