• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/archive/recovery/firstschemebuilder.php
  • Класс: BitrixSaleArchiveRecoveryFirstSchemeBuilder
  • Вызов: FirstSchemeBuilder::riseBasket
protected function riseBasket(array $archivedBasketItems = [])
{
	$basketItemsMap = array();
	$basket = $this->order->getBasket();
	foreach ($archivedBasketItems as &$archivedItem)
	{
		if (empty($archivedItem['SET_PARENT_ID']))
		{
			/** @var SaleBasketItem $item */
			$item = $basket->createItem($archivedItem['MODULE'], $archivedItem['PRODUCT_ID'], $archivedItem['ID']);
			$this->riseBasketItem($item, $archivedItem);
			$basketItemsMap[$archivedItem['ID']] = $item;
			$type = $archivedItem['TYPE'];
			unset($archivedItem);

			if ($type == SaleBasketItem::TYPE_SET)
			{
				$bundleCollection = $item->getBundleCollection();
				foreach ($archivedBasketItems as &$bundle)
				{
					if ($item->getId() !== (int)$bundle['SET_PARENT_ID'])
						continue;

					/** @var SaleBasketItem $itemBundle */
					$itemBundle = $bundleCollection->createItem($bundle['MODULE'], $bundle['PRODUCT_ID']);
					$this->riseBasketItem($itemBundle, $bundle);
					$basketItemsMap[$bundle['ID']] = $itemBundle;
					unset($bundle);
				}
			}
		}
	}

	return $basketItemsMap;
}