Добрый день! Проблема с добавлением комплектов к заказу через API (силами D7). Суть: при добавлении комплекта не видно его составляющих в корзине и не срабатывает количественный учёт (не уменьшается доступный остаток у комплекта и составляющих его товаров).
Тестирую на следующем коде:
При этом, если с помощью этого же кода добавлять простой товар (не комплект), то всё работает нормально - остаток уменьшается.
Сталкивался кто-нибудь с добавлением комплектов? Как реализовывали, чтобы у вас всё работало?
Тестирую на следующем коде:
| Код |
|---|
Bitrix\Main\Loader::includeModule("sale");
Bitrix\Main\Loader::includeModule("catalog");
$order_id = 1507;
$product_id = 22493;
$order = Bitrix\Sale\Order::load($order_id);
$basket = $order->getBasket();
// Добавление в корзину
$item = $basket->createItem('catalog', $product_id);
$prod_fields = [
'QUANTITY' => 1,
'CURRENCY' => 'RUB',
'LID' => 's1',
'PRODUCT_PROVIDER_CLASS' => \Bitrix\Catalog\Product\Basket::getDefaultProviderName(),
'PRICE' => 200,
'CUSTOM_PRICE' => 'Y',
];
$item->setFields($prod_fields);
$shipmentCollection = $order->getShipmentCollection();
$shipment = $shipmentCollection[0];
$collection = $shipment->getShipmentItemCollection();
foreach ($order->getBasket() as $basketItem) {
if ($basketItem->getProductId() == $product_id) {
// Добавление в отгрузку
$shipmentItem = $collection->createItem($item);
$shipmentItem->setQuantity($item->getQuantity())
}
}
$order->save(); |
При этом, если с помощью этого же кода добавлять простой товар (не комплект), то всё работает нормально - остаток уменьшается.
Сталкивался кто-нибудь с добавлением комплектов? Как реализовывали, чтобы у вас всё работало?
Интеграция заказов и сделок: