Битрикс. Список всех заказов, при оформлении которых был использован тот или иной купон получения скидки
В 1С-Битрикс иногда требуется получить список заказов, в которых использовался определенный купон скидки.
Это может понадобиться:
- для аналитики;
- проверки маркетинговых акций;
- поиска злоупотреблений купонами;
- CRM-интеграций;
- отчетов по скидкам.
Получение заказов по купону
<?
if (CModule::IncludeModule("sale")):
$arFilter = Array(
"BASKET_DISCOUNT_COUPON" => "КОД_КУПОНА_ЗДЕСЬ",
);
$rsSales = CSaleOrder::GetList(
array("DATE_INSERT" => "ASC"),
$arFilter
);
while ($arSales = $rsSales->Fetch())
{
echo "<pre>";
print_r($arSales);
echo "</pre>";
}
endif;
?>
Что делает этот код
Код:
- подключает модуль sale;
- фильтрует заказы по купону;
- получает список заказов;
- выводит найденные данные.
Фильтр BASKET_DISCOUNT_COUPON
Основной фильтр:
"BASKET_DISCOUNT_COUPON"
позволяет искать заказы, в которых использовался конкретный купон.
Пример фильтра
$arFilter = Array(
"BASKET_DISCOUNT_COUPON" => "SALE10"
);
Сортировка заказов
В примере используется сортировка:
array("DATE_INSERT" => "ASC")
то есть:
- от старых заказов к новым.
Вывод результата
Метод:
$rsSales->Fetch()
возвращает:
- ID заказа;
- дату;
- сумму;
- статусы;
- данные пользователя;
- другие поля заказа.
Поиск по нескольким купонам
Можно искать сразу по нескольким купонам:
CSaleOrder::GetList(
array(),
array(
'BASKET_DISCOUNT_COUPON' => array(
'TEST1',
'TEST2'
)
)
);
Когда это удобно
- массовые акции;
- email-рассылки;
- проверка промокодов;
- отчеты маркетинга;
- партнерские программы;
- контроль скидок.
Пример вывода только ID заказов
<?
while ($arSales = $rsSales->Fetch())
{
echo $arSales["ID"] . "<br>";
}
?>
Проверка найденных заказов
Можно проверить:
<?
if ($rsSales->SelectedRowsCount() > 0)
{
echo "Заказы найдены";
}
?>
Важно про старый API
Код использует:
CSaleOrder::GetList()
— это старый API Битрикс.
В новых проектах рекомендуется использовать:
\Bitrix\Sale\Order
и ORM D7.
Где размещать такой код
- административные скрипты;
- отчеты;
- cron;
- интеграции;
- служебные страницы.
Итог
Чтобы получить заказы по купону скидки в 1С-Битрикс, можно использовать фильтр:
"BASKET_DISCOUNT_COUPON"
вместе с:
CSaleOrder::GetList()
Такой способ позволяет быстро найти все заказы, в которых использовался нужный промокод.
Комментарии