Имеются комплекты товаров, сгенерированных на стороне БУС. Комплекты отлично смотрятся в корзине, как один товар. Но при выгрузке в 1С он рассыпается на составляющие, что и нужно, НО ещё и добавляется сам комплект. Таким образом цена в 1С увеличивается в 2 раза, что не совсем удобно. Как можно избавиться от этого "лишнего" комплекта в выгрузке ? Нахрапом, думал удалю его из корзины заказа, и дело с концом. Таким вот кодом:
Код |
---|
use Bitrix\Sale;
$ORDER_ID = 1;
$basket = Sale\Order::load($ORDER_ID)->getBasket();
$dbRes = \Bitrix\Sale\Basket::getList([
'select' => ['ID', 'NAME', 'QUANTITY', 'TYPE'],
'filter' => [
'=ORDER_ID' => $ORDER_ID
]
]);
while ($item = $dbRes->fetch()) {
echo $item['NAME'] . " \r\n";
if($item['TYPE'] == 1) {
$order = \Bitrix\Sale\Order::load($ORDER_ID);
$basket = $order->getBasket();
$basketItem = $basket->getItemById($item['ID']);
if ($basketItem) {
//echo $basketItem->getField('NAME');
$basketItem->delete();
echo "Комплект ".$basketItem->getField('NAME')." удалён \r\n";
}
$order->save();
}
};
|
А не тут то было, удаляются все позиции комплекта, что впринципе и логично. Как же добиться элегантного решения данной ситуации ? Разбирать комплект на позиции ? То еще дело... скидки, купоны... да и если товар этот дублируется в корзине(товар в комплекте и просто этот же товар). Какие есть предложения или мысли, как бы это дело победить ? Может событие есть, где отредактировать можно, или мутация ?