Так получается, что для стороннего сервиса, через который создает заказ клиент нужно знать наш ID заказа чтобы в банк отправить. И получается у нас создается заказ с минимум данных и товаром, но тип товара становится известен только после того как придут все данные после оплаты. соответсвенно согласно этому типу нужно заменить или оставить как есть на товар или торговое предложение. Ну тут в общем внутренние заморочки.
Так вот никак отгрузка не обновляется не могу понять в чем причина:
Пункт "добавляем товары в отгрузку" не отрабатывает, в чем у меня ошибка?
Так вот никак отгрузка не обновляется не могу понять в чем причина:
Код |
---|
//собираем 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(); |
Пункт "добавляем товары в отгрузку" не отрабатывает, в чем у меня ошибка?