API заказов BigCommerce: невозможно обновить - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь обновить существующий заказ в магазине, используя PUT-запросы к API заказов V2:

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?

В настоящее время я генерирую PUT-запросы в Postman, но позже перейду на PHP.

Спасибо.

Редактировать:

Это пример запроса на добавление существующего продукта, который я пытался добавить, но он также принят, но не работает.

{
    "products": [{
        "product_id": 111,
        "quantity": 5
    }]
}

Редактировать 2: Чтобы получить больше контекста, заказы, которые я пробуюобновить уже существующие продукты и были «оплачены» (продукты бесплатны).Я пробовал добавлять товары, которые уже есть в заказе, а также новые.Я пробовал это на заказах с различным статусом.Кроме того, заказы обрабатываются гостевыми учетными записями, поэтому поле customer_id равно 0. Я не пытался сделать это с заказом зарегистрированного счета.Может ли какая-либо из этих причин вызывать проблему?

Редактировать 3: Для всех, кто бродит мимо, это, похоже, ошибка, связанная с загружаемыми продуктами.Пожалуйста, смотрите цепочку комментариев под принятым ответом для деталей.

1 Ответ

0 голосов
/ 05 декабря 2018

Добавить новый продукт:

{
    "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Затем запросите Заказать продукты , чтобы увидеть список продуктов в заказе.

Чтобы обновить адрес выставления счета, эта структура работает:

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

Идентификатор клиента должен совпадать с идентификатором клиента, который существует в магазине.Чтобы получить список клиентов, используйте конечную точку клиентов .

{
    "customer_id": 20
}
...