Документация для разработчиков
Темная тема

setApply

boolean public static \Bitrix\Sale\DiscountCouponsManager::setApply(
	string $coupon,
	array $data
);

Метод сохраняет в памяти информацию о том, к чему применился купон на хите. Метод статический.

Параметры

ПараметрОписаниеВерсия
$couponКод купона.
$dataМассив с данными для применения купона.

Примеры

<?php
use Bitrix\Main\Loader;
use Bitrix\Sale\DiscountCouponsManager;

if (!Loader::includeModule('sale'))
{
	throw new RuntimeException('Модуль sale не установлен');
}

$coupon = 'SALE-COUPON-CODE'; // Код существующего купона
$product = [
	'MODULE_ID' => 'catalog',
	'PRODUCT_ID' => 100, // Идентификатор существующего товара
	'BASKET_ID' => 'basket_item_1', // Код позиции корзины
];

DiscountCouponsManager::init();
if (!DiscountCouponsManager::add($coupon))
{
	throw new RuntimeException('Не удалось добавить купон');
}

$applied = DiscountCouponsManager::setApply(
	$coupon,
	['BASKET' => [$product]]
);

echo $applied ? 'Купон применен к товару' : 'Купон не применен';


Была ли эта страница полезна?

Пользовательские комментарии

Помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Valentin Borisenko
Пример добавления купона в корзине:

Код
\Bitrix\Main\Loader::includeModule('sale');
$sCoupon = 'discount_5';
\Bitrix\Sale\DiscountCouponsManager::add($sCoupon);
$oBasket = \Bitrix\Sale\Basket::loadItemsForFUser(
    \Bitrix\Sale\Fuser::getId(),
    \Bitrix\Main\Context::getCurrent()->getSite()
);
$oDiscounts = \Bitrix\Sale\Discount::loadByBasket($oBasket);
$oBasket->refreshData([ 'PRICE' ,  'COUPONS']);
$oDiscounts->calculate();
$result = $oDiscounts->getApplyResult();
echo '<pre>', mydump($result), '</pre>';
© «Битрикс», 2001-2026, «1С-Битрикс», 2026
Наверх