• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discountbase.php
  • Класс: BitrixSaleDiscountBase
  • Вызов: DiscountBase::loadBasketStoredData
protected function loadBasketStoredData()
{
	$result = new Result;

	$this->basketItemsData = [];

	if (!$this->isOrderExists())
		return $result;

	$order = $this->getOrder();
	if ($this->isOrderNew() || $this->getUseMode() == self::USE_MODE_FULL)
		return $result;

	/** @var OrderDiscount $storageClassName */
	$storageClassName = $this->getOrderDiscountClassName();
	$basketData = $storageClassName::loadStoredDataFromDb(
		$order->getId(),
		$storageClassName::STORAGE_TYPE_BASKET_ITEM
	);

	if (empty($basketData))
		return $result;

	$basketCodeList = $this->getBasketCodes(false);
	if (!empty($basketCodeList))
	{
		foreach ($basketCodeList as $basketCode)
		{
			if (!isset($this->forwardBasketTable[$basketCode]))
				continue;
			$basketId = $this->forwardBasketTable[$basketCode];
			if (!isset($basketData[$basketId]) || !is_array($basketData[$basketId]))
				continue;
			$this->addBasketItemValues($basketCode, $basketData[$basketId]);
		}
		unset($basketId, $basketCode);
	}
	unset($basketCodeList);
	unset($basketData, $storageClassName);
	unset($order);

	return $result;
}