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

	/** @var DiscountCouponsManager $couponClassName */
	$couponClassName = $this->getDiscountCouponClassName();

	if (!is_array($coupon))
	{
		$couponData = $couponClassName::getEnteredCoupon($coupon, true);
		if (empty($couponData))
		{
			$result->addError(new MainEntityEntityError(
				Loc::getMessage('BX_SALE_DISCOUNT_ERR_COUPON_NOT_FOUND'),
				self::ERROR_ID
			));
			return $result;
		}
		$coupon = array(
			'COUPON' => $couponData['COUPON'],
			'TYPE' => $couponData['TYPE'],
			'COUPON_ID' => $couponData['ID'],
			'DATA' => $couponData
		);
		unset($couponData);
	}
	$coupon['ORDER_DISCOUNT_ID'] = $discount;
	$coupon['ID'] = 0;

	$orderCouponId = $coupon['COUPON'];
	if (!isset($this->couponsCache[$orderCouponId]))
		$this->couponsCache[$orderCouponId] = $coupon;
	$result->setId($orderCouponId);
	$result->setData($coupon);
	unset($coupon, $orderCouponId);
	return $result;
}