• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/archive/process/orderarchivecollection.php
  • Класс: BitrixSaleArchiveProcessOrderArchiveCollection
  • Вызов: OrderArchiveCollection::collectBaskets
private function collectBaskets(array $orderIds)
{
	$sortedBasketItems = [];
	$basketItemsList = [];

	$registry = SaleRegistry::getInstance(SaleRegistry::REGISTRY_TYPE_ORDER);

	/** @var SaleBasket $basketClassName */
	$basketClassName = $registry->getBasketClassName();

	$basketItems = $basketClassName::getList(
		array(
			"order" => array("ORDER_ID"),
			"filter" => array("=ORDER_ID" => $orderIds)
		)
	);

	while ($element = $basketItems->fetch())
	{
		$basketItemsList[$element['ID']] = $element;
	}

	if (!empty($basketItemsList))
	{
		$basketProperties = InternalsBasketPropertyTable::getList(
			array(
				"filter" => array("BASKET_ID" => array_keys($basketItemsList))
			)
		);

		while ($property = $basketProperties->fetch())
		{
			$basketItemsList[$property["BASKET_ID"]]['PROPERTY_ITEMS'][] = $property;
		}

		$basketProperties = SaleShipmentItemStore::getList(
			array(
				"filter" => array("=BASKET_ID" => array_keys($basketItemsList))
			)
		);

		while ($property = $basketProperties->fetch())
		{
			$basketItemsList[$property["BASKET_ID"]]['SHIPMENT_BARCODE_ITEMS'][$property['ORDER_DELIVERY_BASKET_ID']] = $property;
		}
	}

	foreach ($basketItemsList as $basketItem)
	{
		$sortedBasketItems[$basketItem['ORDER_ID']][$basketItem['ID']] = $basketItem;
	}

	return $sortedBasketItems;
}