Так получается, что для стороннего сервиса, через который создает заказ клиент нужно знать наш ID заказа чтобы в банк отправить. И получается у нас создается заказ с минимум данных и товаром, но тип товара становится известен только после того как придут все данные после оплаты. соответсвенно согласно этому типу нужно заменить или оставить как есть на товар или торговое предложение. Ну тут в общем внутренние заморочки.
Так вот никак отгрузка не обновляется не могу понять в чем причина:
[CODE]
//собираем id которые нужно снести с корзины
foreach ($basket as $basketItem) {
$zapjmnimID[] = $basketItem->getField('ID');
}
//добавляем новый товар
$item = $basket->createItem('catalog', $obEl['ID']); //создаём новый товар в корзине
$item->setFields(array(
'QUANTITY' => 1,
'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
'LID' => 's1',
'PRODUCT_PROVIDER_CLASS' => 'CCatalogProductProvider',
"CATALOG_XML_ID" => $obEl['IBLOCK_EXTERNAL_ID'],
"PRODUCT_XML_ID" => $obEl['XML_ID'],
'CUSTOM_PRICE'=>'Y',
'PRICE' => $PlProductInfo['PRICE'],
'NAME'=>$arParams['NAME']['VALUE']
));
$item->getPropertyCollection()->setProperty($arParams);
//удаляем не нужные товары
foreach($zapjmnimID as $delitem){
$basket->getItemById($delitem)->delete();
}
//сохраняем корзину
$basket->save();
//отгрузка, доставка
$shipmentCollection = $order->getShipmentCollection();
удаляем текущую отгрузку
foreach ($shipmentCollection as $shipment) {
$shipment->delete();
}
//добавляем доставку под другой тип
$shipment = $shipmentCollection->createItem();
$service = \Bitrix\Sale\Delivery\Services\Manager::getById(15);
$shipment->setFields(array(
'DELIVERY_ID' => $service['ID'],
'DELIVERY_NAME' => $service['NAME'],
));
$shipmentItemCollection = $shipment->getShipmentItemCollection();
//добавляем товары в отгрузку
foreach ($basket as $basketItem)
{
$item = $shipmentItemCollection->createItem($basketItem);
$item->setQuantity($basketItem->getQuantity());
}
//сохраняем заказ
$result = $order->save();
[/CODE]
Пункт "добавляем товары в отгрузку" не отрабатывает, в чем у меня ошибка?