Битрикс — как узнать сколько раз использовался купон

Рано или поздно, в большом интернет-магазине возникает вопрос — а сколько раз использовали тот или иной купон? Акций ведь было много. Ниже в статье вы узнаете пару способов.

Битрикс — Сколько раз использовался промокод в заказе

В данный момент за систему скидок отвечает Правила работы с корзиной. Создаем простую форму, с input name=»code», и кнопку по которой можно будет отправлять результат на ту же страницу.

А теперь что получится в коде:

use \Bitrix\Main,
	\Bitrix\Sale\Internals;

if ($_REQUEST['code']) {

	if (CModule::IncludeModule("sale")):

		$code = trim($_REQUEST['code']);

		// Способ 1
		$arFilter 	= Array(
			"BASKET_DISCOUNT_COUPON" => $code,
		);
		$cntCode 	= CSaleOrder::GetList(array("DATE_INSERT" => "ASC"), $arFilter, []);

		$arResult['CNT'] = $cntCode;

		// Способ 2
		try {

			if (!Main\Loader::IncludeModule('sale')) {
				throw new \Exception("Module 'sale' not installed");
			}

			$arCoupon = Internals\DiscountCouponTable::getRow([
				'filter' => [
					'COUPON' => $code
				]
			]);

			if (!empty($arCoupon)){
				//print_r($arCoupon);
			} else {
				throw new \Exception("Coupon [CODE:{$code}] not found");
			}
		}
		catch(\Exception $e) {
			var_dump($e->getMessage() );
		}
	endif;

}

Способ 1. Довольно простой и использует стандартную фишку метода GetList — если передать пустой массив 3-им (а иногда 4ым параметром), то вернется просто число записей. Таким образом, вы узнаете сколько раз применялся данный купон. Напомню, из формы $_REQUEST[‘code’] — что и будет нашим промокодом.

Способ 2. Взят из просторов интернета, и имеет уже структуру посложнее для понимания. Опускаемся вниз к строке print_r($arCoupon);
Тут в массиве будет параметр USE_COUNT. То есть, чтобы узнать количество использований данного купона, нам нужно добавить:

$arResult['CNT'] = $arCoupon['USE_COUNT'];

Чем хорош способ 2, так это тем что в нем мы можем найти кучу дополнительных параметров. Например DISCOUNT_ID и SITE_ID — ID скидки и ID сайта соответственно.

автор: Dmitriy

Занимаюсь веб-разработкой с 2011 года. Посмотреть некоторые из моих работ, а также узнать чуть больше обо мне, вы можете на forwww.ru.

- Создание сайтов на 1С-Битрикс любой сложности
- Вёрстка макетов Figma, Photoshop, Zeplin
- Поддержка проектов на Битриксе
- Разработка нового функционала для сайта
- Парсинг данных
- Выгрузка из файлов в формате XML, YML, XLS, XLSX, CSV, JSON
- Интеграция по API со сторонними сервисами
и многое другое

E-mail: dmitriyribka@gmail.com

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *