Создание заказа через рест апи

При попытке создать заказ через рест апи получаю ошибку 400:
“Пожалуйста, выберите магазин”.

Тело запроса:

{
    "payment_id": 19,
    "shipment_id": 36,
    "products": {
            "1": {
            "product_id": "36",
            "amount": "1"
        },
        "2": {
            "product_id": "38",
            "amount": "1"
        },
        "3": {
            "product_id": "44",
            "amount": "1"
        }
    },
    "user_data": {
      "email": "email@example.com",
      "b_firstname": "John",
      "b_lastname": "Doe",
      "b_address": "44 Main street",
      "b_city": "Москва",
      "b_state": "MOW",
      "b_country": "RU",
      "b_zipcode": "02134",
      "b_phone": "",
      "s_firstname": "John",
      "s_lastname": "Doe",
      "s_address": "44 Main street",
      "s_city": "Москва",
      "s_state": "MOW",
      "s_country": "RU",
      "s_zipcode": "117321",
      "s_phone": ""
    }
}

Версия cs-cart: 4.2.4
В документации нигде не указано как передать идентификатор компании. Судя по коду, он определяется в момент создания заказа через `Registry::get(‘runtime.company_id’). По умолчанию там выходит 0, что, похоже, означает “все магазины” и является причиной ошибки.
У меня в админке создана только одна компания - id = 1.

Какие есть варианты по решению это задачи?
Можно ли как-то установить эту настройку в дефолтное состояние (не 0)?
Можно ли передать company_id через рест? (как быть тем, у кого и правда несколько компаний?)

Обновление cs-cart не предлагайте, пожалуйста :slight_smile:

Попробуйте передать в массиве “company_id”:0

Ну, во-первых, 0 это и так значение по умолчанию, которе означает “Все магазины” и, собственно, вызывает ошибку. Во-вторых, моя единственная компания имеет id 1 и передача его в массиве не дает ничего. Отредактировал вопрос для большей ясности.

Возможно вы используете рутового админа.
Создайте нового админа, разрешите работу с апи.
Проконтролировать можно в таблице users.
У пользователя должен быть установлен id вашей витрины(НЕ 0)

Посмотрите этот фрагмент из английской документации по REST API: https://docs.cs-cart.com/4.8.x/developer_guide/api/entities/orders.html#create-an-order. Правда, тестировал я на более поздних версиях, чем 4.2.4, но статья должна помочь.

Спасибо! Там нашлось спасительное: /api/stores/<company_id>/orders/

Но вот беда: заказ создается совершенно пустым )

А второй способ пробовали, когда ключ в массиве products не рандомное число, а ID товара? При этом в самом массиве нужно удалить “product_id”

Нашел причину проблемы в стороннем плагине. Кстати, похоже именно вашей разработки.

Напишите в личку, проверим