• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/discountbase.php
  • Класс: BitrixSaleDiscountBase
  • Вызов: DiscountBase::saveCoupons
protected function saveCoupons()
{
	$result = new Result;
	if (!$this->isOrderExists())
		return $result;
	if (!empty($this->couponsCache))
	{
		/** @var OrderDiscount $storageClassName */
		$storageClassName = $this->getOrderDiscountClassName();

		$orderId = $this->getOrder()->getId();
		foreach ($this->couponsCache as $orderCouponId => $couponData)
		{
			if ($couponData['ID'] > 0)
				continue;
			$fields = $couponData;
			$fields['ORDER_ID'] = $orderId;
			$couponResult = $storageClassName::saveCoupon($fields);
			if (!$couponResult->isSuccess())
			{
				$result->addErrors($couponResult->getErrors());
				unset($couponResult);
				continue;
			}
			$this->couponsCache[$orderCouponId]['ID'] = $couponResult->getId();
			unset($couponResult);
		}
		unset($orderId);
		unset($storageClassName);
	}
	return $result;
}