Категории

PHP-условие в правилах работы с корзиной для реализации собственных условий скидок и наценок

Описание

Гибкие скидки без ограничений: что даёт PHP-условие в корзине Битрикс

Стандартные правила работы с корзиной в 1С-Битрикс хороши, но часто упираются в жёсткие рамки готовых условий. Вам нужна скидка только для клиентов из определённого города, при заказе с мобильного телефона или в зависимости от количества позиций в корзине? Обычные фильтры не всегда покрывают такие сценарии. PHP-условие решает эту проблему кардинально: вы просто пишете небольшой кусок кода на PHP, и правило срабатывает именно так, как нужно вашему бизнесу. Никаких компромиссов и подпорок — только чистая логика, которую вы контролируете.

Этот модуль встраивается прямо в стандартный механизм скидок и наценок. Вы не меняете ядро системы и не рискуете потерять обновления. Просто выбираете в настройках правила новое условие «PHP-условие» и описываете свою логику. Результат простой: если ваш код возвращает true — скидка или наценка применяется, если false — нет. Механизм прозрачный и надёжный.

Как это работает: от идеи до скидки за пару минут

В основе модуля лежит вызов функции eval(), которая исполняет ваш PHP-код внутри стандартного обработчика скидок модуля sale. Это не какой-то сторонний костыль, а штатная возможность, которую разработчики Битрикс предусмотрели для нестандартных задач. Вам не нужно писать сложные обработчики событий или переопределять классы — достаточно добавить условие в правило корзины и вписать код.

Самый популярный и удобный способ — передать в качестве условия имя вашей собственной PHP-функции. Вы создаёте функцию, которая принимает массив $arOrder, и внутри неё прописываете любые проверки. В $arOrder лежит временный заказ на конкретный товар, если скидка считается для позиции, или полный заказ со всей корзиной, когда расчёт идёт на общую сумму. Это даёт доступ ко всем данным: состав корзины, характеристики товаров, цены, количество, а также данные о пользователе, если они уже собраны.

Реальные сценарии: что можно настроить с помощью PHP-условия

Возможности ограничены только вашей фантазией и знанием PHP. Вот несколько примеров, которые часто встречаются в реальных проектах и которые невозможно или крайне сложно реализовать стандартными средствами. Первый сценарий — скидка или наценка в зависимости от источника перехода. Вы можете проверять UTM-метки, реферер или рекламную кампанию и давать специальные цены тем, кто пришёл с конкретного канала. Это идеально для трекинга эффективности рекламы и мотивации аудитории.

Второй популярный случай — разная цена для разных устройств или стран. Например, вы хотите показывать более низкую цену для мобильных пользователей или, наоборот, делать наценку для заказов из определённых регионов. PHP-условие позволяет проверить User-Agent, IP-адрес или геоданные и применить нужное правило. Третий пример — прогрессирующие скидки. Когда сумма корзины растёт, скидка увеличивается не ступенчато, а по сложной формуле: процент зависит от количества товаров, их категории или времени суток. Всё это пишется одной функцией.

Комбинируйте с другими условиями для точной настройки

PHP-условие не заменяет стандартные фильтры, а дополняет их. Вы можете построить сложную логику: например, сначала проверить, что пользователь входит в группу «Оптовики» (стандартное условие), а затем внутри PHP-кода уточнить, есть ли у него в корзине товары из определённой категории и превышает ли сумма заказа 10 000 рублей. Такое комбинирование даёт максимальную гибкость и позволяет не плодить десятки правил, а собрать одно, но умное.

Это особенно удобно для интернет-магазинов с нестандартными акциями. Например, «скидка 15% на второй товар в чеке, если покупатель зарегистрирован больше года и заказ оформляется с мобильного телефона». Без PHP-условия пришлось бы писать кастомный модуль или использовать несколько правил с риском конфликта. С этим модулем всё умещается в одну функцию, которая проверяет все условия и возвращает true или false.

Для кого этот модуль и почему он стоит вашего внимания

Это решение в первую очередь для разработчиков и владельцев магазинов, которые не хотят мириться с ограничениями типовых скидок. Если вы умеете писать на PHP хотя бы на базовом уровне, вы сможете настроить любую акцию без помощи фрилансеров и без правок ядра. Если вы владелец, но не программист — покажите этот модуль вашему техническому специалисту. Скорее всего, он скажет, что это именно то, чего не хватало для реализации сложных маркетинговых схем.

Модуль не перегружает систему, работает в штатном цикле расчёта скидок и не требует дополнительных настроек. Вы просто получаете новое условие в списке правил корзины — и всё. Никаких лишних сущностей, никаких конфликтов с другими модулями. Только чистая логика, которая открывает безграничные возможности для ценообразования и акций в вашем магазине на 1С-Битрикс.

Часто задаваемые вопросы

PHP-условие в правилах работы с корзиной для реализации собственных условий скидок и наценок
5 000 ₽

Характеристики

Версия 1.0.0
Добавлен 12.05.2022
Установок 100 - 499 раз
Код delight.phpdiscounts
Адаптивный Нет
Composite Нет