Как сделать промокод в 1с битрикс
В 1С-Битрикс имеются как одноразовые купоны, так и многоразовые.
Как быть, если многоразовый купон необходимо сделать одноразовым? Как это понимать?
Очень просто, бывает стоит задача создать какой то один купон с кодом, например СКИДКА и ограничить его использование одним и тем же пользователем много раз. Т.е. если покупатель уже воспользовался купоном и создал заказ, то чтобы более не мог его использовать. Деактивировать купон или сделать его одноразовым нельзя, т.к. этим же купоном должны иметь возможность воспользоваться другие покупатели.
Внимание: В статье приведены фрагменты кода, описывающие принцип реализации. Для внедрения рекомендуется обратиться к разработчикам.
В зависимости от задач функция может быть более сложной. В данном материале описан принцип реализации.
Конечно, задачу можно решить не одним способом. Но мы предлагаем воспользоваться модулем Произвольное PHP условие правил работы с корзиной.
Принцип реализации не сложен. Также необходимо создать правило для работы с корзиной, создать нужный многоразовый купон. На дополнительных условиях правила прописать произвольную PHP-функцию, которая будет проверять совершал ли покупатель с данным купоном заказ или нет, и возвращать ИСТИНУ (true) или ЛОЖЬ (false). Например функция __sc_check_multi_coupon() (это всего лишь пример, как может выглядеть функция, для внедрения рекомендуется обратиться к разработчикам.):
function __sc_check_multi_coupon() < $btrue = true; $ar_orders = array(); $arFilter = Array( "USER_ID" =>$GLOBALS["USER"]->GetID(), "!CANCELED" => "Y", ); $db_sales = CSaleOrder::GetList( array("DATE_INSERT" => "desc"), $arFilter, false, false, array("ID") ); while ($ar_sales = $db_sales->Fetch()) < $ar_orders[] = $ar_sales["ID"]; >if (count($ar_orders)>0) < $str_coupons = "КУПОН1,КУПОН2. КУПОНN"; //TODO заменить на свои купоны $ar = explode(",",$str_coupons); if (is_array($ar) && count($ar)>0) < $ar_coupons = array(); foreach ($ar as $key =>$coupon) < if (strlen(trim($coupon))>0) $ar_coupons[] = trim($coupon); > > if (is_array($ar_coupons)) < $couponList = \Bitrix\Sale\Internals\OrderCouponsTable::getList(array( 'select' =>array('COUPON'), 'filter' => array( '=ORDER_ID' => $ar_orders, 'COUPON' => $ar_coupons ) )); if ($coupon = $couponList->fetch()) < $btrue = false; >> > return $btrue; >
Как сделать промокод в 1с битрикс
Нашли ошибку? Выделите мышкой и нажмите Ctrl+Enter
Настройка купонов и промокодов
Купон — разновидность скидки. Его отличие от скидки заключается в том, что он может быть сгенерирован в любой момент и представляет собой уникальную последовательность символов. Правом на получение скидки по купону обладает покупатель, которому каким-либо образом был сообщен этот уникальный купон (промокод) и который ввел его при оформлении заказа..
Чтобы ввести код купона, клиенту необходимо выбрать товар и перейти в корзину.
Для создания нового купона перейдите в блок «Купоны скидок на товар»:
Маркетинг → Товарный маркетинг → Скидки на товар → Купоны скидок на товар
Нажмите на кнопку «добавить купон».
Для примера выберем многоразовый купон (2). Он действителен при покупке товаров, на которые действуют скидки, акции, либо они являются новинкой, хитом продаж магазина (1). Сгенерируем код (3) и оставим дату применения купона пустой, чтобы его применение было возможно в любой момент.
Примечание: купоны могут быть следующих видов:
- Купон на одну позицию заказа — купон можно применить только к одному товару и только один раз. Если в заказе несколько товаров, то купон применяется к самому дорогому товару;
- Купон на один заказ — купон можно применить один раз на один любой заказ;
- Многоразовый купон — купон может применяться к заказам неограниченное количество раз.
После сохранения купон будет добавлен в общий список на странице «Купоны на скидки».
В результате при вводе сгенерированного купона в публичном разделе на странице корзины система автоматически выполнит пересчет и выведет новую цену только для тех товаров, для которых подходит скидка:
Важно! Для каждого товара может применяться неограниченное количество купонов скидок, но не более одного купона каждой скидки.
Как создать одинаковый промокод в битриксе для 2-х сайтов?
Есть две языковые версии сайта. Создаю 2 правила (для s1 и s2) и привязанные купоны. Но при этом битрикс не дает создать два одинаковых промокода для каждой версии сайта. Сообщение: «Ошибки при сохранении
Такой купон уже существует «.
Я так понимаю, чтобы обойти это, можно подкорректировать промокод в бд напрямую. Какие последствия могут быть ? Ведь у каждого купона своя привязка к правилу, а правило к сайту.
- Вопрос задан более трёх лет назад
- 225 просмотров
1 комментарий
Простой 1 комментарий

написать свой свой модуль аналог маркетинга и сделать там свою логику работы промокодов.
Маловероятно обойти, тут либо смотреть в сторону АПИ и событий при вводе промокода, проверять введенный промокод и делать подмену.
Создание скидки на общую сумму покупки в Битрикс корзине
Функционал интернет-магазина, работающего под управлением 1С Битрикс, позволяет задавать множество условий скидок в корзине покупателя. Эти условия можно гибко настраивать и адаптировать под конкретный вид бизнеса. Расскажу про настройку скидок на общую сумму заказа в корзине в зависимости от суммы.
Основные виды манипуляций которые приходится настраивать достаточно часто:
- Скидка на доставку при большом количестве набранных товаров
- Скидка на количество конкретного товара в корзине. При этом, другие товары, положенные вместе со «скидочным» не имеют скидки
- Скидка на конкретный товар, который идет по акции (правда не особо применимо в разрезе этого функционала, проще сделать через «Скидки на товар»)
- Скидка на товары при оформлении доставки, конкретной службой доставки
- Скидка при самовывозе.
- Скидка при использовании конкретной платежной системы
- Скидка на общую сумму заказа.
Функционал достаточно обширен и позволяет реализовать любые фантазии и условия. Я расскажу на примере «Скидка 15% если товаров в корзине на сумму от 15001 до 20000 рублей«
Скидка на общую сумму покупки
Идем в админпанель, раздел «Магазин», подраздел «Скидки», пункт «Правила работы с корзиной»:

Нажимаем «Добавить правило»:

Откроется мастер настройки правила. Здесь минимально необходимо указать понятое название, так как, если таких условий будет много, Вы легко запутаетесь. Я назвал скидку как есть и не выставлял период активности, то есть данное правило навсегда с текущего момента:

Переходим на вкладку «Действия условия» и задаем действие которое должно произойти, в моем случае должно произойти «Изменение стоимости товаров в корзине»

И заполняем действие как на скриншоте. То есть мы пошагово составили «применить скидку 15% ко всем товарам соответствующим условиям»

А теперь необходимо создать условие при котором это действие будет срабатывать. Для этого переходим в поле ниже «Дополнительные условия». И выбираем из заготовок «Общая стоимость товаров»:

Создаем два таких условия как на скриншоте. То есть мы ограничили суммы в рамки 15001 рубль и 20000 рублей. Если говорить человеческим языком, то получается следующее «Если в корзине набрано товаров от 15001 рубля до 20000 рублей, должна сработать скидка 15% на все товары«:

Переходим на вкладку «Ограничения» и указываем пользователей, для которых будет доступно это условие. То есть можно применять только для авторизованных или для партнеров, а для всех остальных скидок не будет. В моем случае я выбрал все категории пользователей. Администратора выбирайте обязательно, так как Вам нужно будет проверить свою работу.

Все готово. Но держите за правило: всегда все проверять. Для этого переходим на сайт и кидаем в корзину товаров на сумму в рамках 15000/20000 рублей. Переходим в корзину и видим, что наша скидка применилась.

На всякий случай докладываем в корзину товаров на сумму превышающее наше условие, и видим, что скидка не сработала.

Все отлично, наша работа принесла результат. Если Вы не хотите ограничивать скидку в неких рамках. Например, нужно сделать так, чтобы скидка срабатывала от 15000 рублей и в бесконечность, просто не задаете второе условие, не нужно создавать еще одну скидку от 20000 и выше (конечно если она не отличается)
Михаил Базаров 08.10.2017
| Цитата |
|---|
| ruslan2243 написал: Михаил, как сделать, чтобы в корзине стояли чекбоксы: — пенсионерам скидка 5% — студентам скидка 5% Покупатель выбирает, и заказ пересчитывается. Такое можно сделать штатно? И если не штатно, то как примерно это должно выглядеть? |
Нужно этих пользователей определить в группу «пенсионеры и студенты» — и назначить их эту скидку. Примерно в эту сторону думать
ruslan2243 12.10.2017
Михаил, скажите, а как сделать скидку к товарам в корзине, на основе чекбоксов в корзине?
Например, стоят галочки:
— сезонная скидка
— скидка студенту
Человек отмечает галочки и Итоговая сумма в корзине пересчитывается.
Какой метод использовать? и Где хранить эти скидки, чтобы можно было их редактировать? в инфоблоке?
ruslan2243 12.10.2017
Ой, простите, второй раз задал вопрос.
Не получится разделить на группы, т.к. скидки произволные, не привязаны ни к пользователям и товарам.
Просто чекбоксы. Это может быть всё что угодно, безо всякой логики:
— у меня хорошее настроение (5%)
— просто поставь галочку (10%)
..ну и т.д.
Может быть просто менять стоимость заказа. А скидки хранить в инфоблоке.
Есть такой метод CCatalogDiscount::Add, но мне кажется он относится к скидкам по условию, которые хранятся в разделе скидки.
Павел Ерофеев 21.02.2019
Михаил, добрый день! Очень нужен совет по работе с корзиной. Создал правило, создал купон, перехожу в корзину и применяю купон, скидка действует, нажимаю кнопку «Оформить заказ» и скидка сбрасывается. В чем может быть проблема? Если поможет, вот короткое виде о проблеме 50сек. https://monosnap.com/file/D1BCLE8z7mxWbA2MVJJoLF1kZQNaNB
Михаил Базаров 21.02.2019
Быть может, срабатывает какое-то ограничение? Например: по службе оплаты или доставки- нужно изнутри разбираться
Павел Ерофеев 21.02.2019
| Цитата |
|---|
| Михаил Базаров пишет: Быть может, срабатывает какое-то ограничение? Например: по службе оплаты или доставки- нужно изнутри разбираться |
отключил все службы оплаты и доставки, проблема осталась. Может подскажете в какую сторону еще копать?
Роман 14.07.2022
Добрый день, можно ли увидеть сумму всех товаров со скидкой промокода в корзине, а не на этапе оформления, где видны все способы оплаты, это к тому, что у промокода есть правила исключения по поводу способов оплаты. То есть, корзина еще не видит способов оплаты и поэтому не пересчитывает товары.
Михаил Базаров 14.07.2022
| Цитата |
|---|
| Роман написал: Добрый день, можно ли увидеть сумму всех товаров со скидкой промокода в корзине, а не на этапе оформления, где видны все способы оплаты, это к тому, что у промокода есть правила исключения по поводу способов оплаты. То есть, корзина еще не видит способов оплаты и поэтому не пересчитывает товары. |
Думаю нет. Но это и логично: корзина еще «не знает», что выберет пользователь в оформлении.
Гость 24.04.2023
Михаил, подскажите пожалуйста, как сделать так, чтобы суммировалась скидка по купону и другие скидки?
Михаил Базаров 25.04.2023
| Цитата |
|---|
| Гость написал: Михаил, подскажите пожалуйста, как сделать так, чтобы суммировалась скидка по купону и другие скидки? |
Если память не изменяет, сейчас негде посмотреть, нужно в обоих скидках не ставить галку «Прекратить дальнейшее применение скидок» — может быть не очень точно написал название галки, но смысл примерно такой.
Мои видео на Boosty:
Поделиться страницей:
© 2011—2023 ИП Базаров М.М. | Разработка сайтов и приложений.
Копирование материалов только с обратной ссылкой на сайт.

За сегодня: 10 гостей
Сейчас на сайте: 3 гостя
Этот сайт использует файлы «cookie» с целью персонализации сервисов и повышения удобства пользования веб-сайтом.
Если Вы не хотите, чтобы Ваши пользовательские данные обрабатывались, пожалуйста, ограничьте их использование в своём браузере
Информация на сайте bazarow.ru носит исключительно ознакомительный характер и ни при каких условиях не является публичной офертой, определяемой положениями Статьи 437 Гражданского кодекса РФ.
