Версия Вебасиста 4.0.3.1114
Версия Shop-Script 12.1.0.1207
Плагином создается заказ:
$shop_order = new shopOrder($orderData, ['ignore_count_validate' => true]);
try {
$order_id = $shop_order->save();
} catch (waException $ex) {
waLog::dump(['orderData' => $orderData, 'errors' => $shop_order->errors(), 'exception' => $ex->getMessage(), 'trace' => $ex->getTraceAsString()];
}
Получаю exception: Order validation error
в ошибках пишет, что не указал склад
'errors' => [
'order' => [
'items' => [
[
'stock_id' => 'Выберите склад',
],
],
],
хотя в orderData во всех items склад прописан (id настоящего склада, который реально существует). У товара нет остатков, но при использовании параметра ignore_count_validate это не должно быть проблемой.
Поскажите, в чем может быть дело ?
7 комментариев
Покажите, пожалуйста, ту часть значения переменной $orderData, которая относится к товарам и их количеству на складе.
'orderData' => [ ... 'items' => [ [ 'product_id' => '2376', 'sku_id' => '10713', 'type' => 'product', 'price' => 6948, 'quantity' => 1, 'goodsItemIndex' => 0, 'currency' => 'RUB', 'stock_id' => 3, ], ], ],Добавлю еще информацию:
Вебасист облачная, с коробочных версий пока не поступало ошибок.
Пробовали добавить остаток на данный sku_id, но сообщение exception все то же самое
Если в карточке товара не заполнены остатки, то указывать какой-либо склад при создании заказа не нужно. Это и в веб-интерфейсе так: когда вы в бекенде добавляете в заказ товар, для него не предлагается выбор склада, если ни на одном складе для него не указаны остатки.
1. Но мы добавили остаток по этому товару на этот склад (он у него один в системе), и попробовали снова создать заказ - получили туже ошибку.
2. Вы пишите, что если в карточке товара не заполнены остатки, то указывать какой-либо склад не нужно. Правильно ли я понимаю, что остатков вообще не должно быть нигде ? Если у пользователя есть два склада (id 1, 2), на одном остатки заполнены (1), на другом не заполнены (2). Если не указывать stock_id, будет order validation error -> Заполните склад ?
Добавил проверку: если нет записи остатков ни на одном складе, тогда параметр stock_id не передаем. Ошибка исчезла, заказ создан.
Спасибо. Проблема решена.