Skip to content

Instantly share code, notes, and snippets.

@Isa3v
Created July 28, 2020 06:23
Show Gist options
  • Save Isa3v/fe6be6632800e2c2b7d070ae2ff559dc to your computer and use it in GitHub Desktop.
Save Isa3v/fe6be6632800e2c2b7d070ae2ff559dc to your computer and use it in GitHub Desktop.
Получаем купоны доступные пользователю

Получаем купоны доступные пользователю Bitrix

<?
\Bitrix\Main\Loader::includeModule("sale");
global $USER;
$userID = $USER->GetID();
$userGroup = $USER->GetUserGroupArray();
$resCoupons = \Bitrix\Sale\Internals\DiscountCouponTable::getList([
'order' => ['DATE_CREATE' => 'desc'],
'filter' => [
// Выводим только с описанием и пользователь в группе доступных
// Или купон конкретно данного пользователя
'LOGIC' => 'OR',
[
'USER_ID' => $userID,
'CouponGroup.GROUP_ID' => $userGroup,
'!DESCRIPTION' => false,
'ACTIVE' => 'Y'
],
// или общие многоразовые купоны для всех
[
'USER_ID' => false,
'MAX_USE' => 0,
'CouponGroup.GROUP_ID' => $userGroup,
'!DESCRIPTION' => false,
'ACTIVE' => 'Y'
]
],
'select' => [
'ID',
'COUPON',
'DESCRIPTION',
'MAX_USE',
'DISCOUNT_ID'
],
// Проверяем может ли пользователь в данной группе пользоваться данным купоном
'runtime' => [
(new \Bitrix\Main\ORM\Fields\Relations\Reference(
'CouponGroup',
\Bitrix\Sale\Internals\DiscountGroupTable::class,
\Bitrix\Main\ORM\Query\Join::on('this.DISCOUNT_ID', 'ref.DISCOUNT_ID')))
->configureJoinType('inner')
]
]);
$arCoupons = [];
while($coupon = $resCoupons->fetch()){
$arCoupons[$coupon['ID']] = $coupon;
}
@behappyfree
Copy link

Спасибо!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment