• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/archive/process/orderarchivecollection.php
  • Класс: BitrixSaleArchiveProcessOrderArchiveCollection
  • Вызов: OrderArchiveCollection::fillItemsData
private function fillItemsData()
{
	$idList = $this->getItemIds();
	if (empty($idList))
		return;

	$idListChunks = array_chunk($idList, 999);
	foreach ($idListChunks as $idOrdersList)
	{
		$sortedOrderProperties = $this->collectOrderProperties($idOrdersList);
		$sortedPayments = $this->collectPayments($idOrdersList);
		$sortedShipments = $this->collectShipments($idOrdersList);
		$sortedBasketItems = $this->collectBaskets($idOrdersList);
		$sortedDataDiscount = $this->collectDiscountData($idOrdersList);

		foreach ($idOrdersList as $orderId)
		{
			/** @var OrderArchiveItem $item */
			$item = $this->getItemById($orderId);
			if (empty($item))
			{
				continue;
			}

			$properties = $sortedOrderProperties[$orderId] ? $sortedOrderProperties[$orderId] : [];
			$item->addOrderDataField('PROPERTIES', $properties);
			$payment = $sortedPayments[$orderId] ? $sortedPayments[$orderId] : [];
			$item->addOrderDataField('PAYMENT', $payment);
			$shipment = $sortedShipments[$orderId] ? $sortedShipments[$orderId] : [];
			$item->addOrderDataField('SHIPMENT', $shipment);
			$discount = $sortedDataDiscount[$orderId] ? $sortedDataDiscount[$orderId] : [];
			$item->addOrderDataField('DISCOUNT', $discount);
			$basketItems = $sortedBasketItems[$orderId] ? $sortedBasketItems[$orderId] : [];
			$item->addBasketDataFields($basketItems);
		}
	}
}