• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discount.php
  • Класс: BitrixSaleDiscount
  • Вызов: Discount::loadBasket
protected function loadBasket()
{
	$result = parent::loadBasket();
	if (!$result->isSuccess())
		return $result;

	if ($this->isBasketNotEmpty())
	{
		/** @var Basket $basket */
		$basket = $this->getBasket();
		/** @var BasketItem $basketItem */
		foreach ($basket as $basketItem)
		{
			if (
				!$basketItem->canBuy()
				|| !$basketItem->isBundleParent()
			)
				continue;

			$bundle = $basketItem->getBundleCollection();
			if ($bundle->count() == 0)
			{
				$result->addError(new MainEntityEntityError(
					Loc::getMessage('BX_SALE_DISCOUNT_ERR_BASKET_BUNDLE_EMPTY'),
					self::ERROR_ID
				));
				break;
			}
			/** @var BasketItem $bundleItem */
			foreach ($bundle as $bundleItem)
			{
				$item = $this->getBasketItemFields($bundleItem);
				$item['IN_SET'] = 'Y';
				$this->orderData['BASKET_ITEMS'][$bundleItem->getBasketCode()] = $item;
			}
			unset($item, $bundle, $bundleItem);
		}
		unset($basketItem);
	}

	return $result;
}