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

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

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

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

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

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

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

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

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

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

Все отлично, наша работа принесла результат. Если Вы не хотите ограничивать скидку в неких рамках. Например, нужно сделать так, чтобы скидка срабатывала от 15000 рублей и в бесконечность, просто не задаете второе условие, не нужно создавать еще одну скидку от 20000 и выше (конечно если она не отличается)

Цитата |
---|
Гарик пишет: День добрый. Правильно ли я понимаю что конкретному покупателю нельзя сделать скидку? Не группе пользователей, а именно конкретному покупателю |
2) Все таки создать отдельную группу и занести его в нее (заодно, быть может, пригодится если таких клиентов станет больше)
3) Сейчас точно не вспомню, посмотреть нет времени - но по моему купон можно присвоить конкретному пользователю.

Цитата |
---|
Анна пишет: Добрый день! У меня такой вопрос, если создать правило как описано здесь, а потом его удалить таким же образом, оно должно перестать действовать? Или оно удаляться должно другим способом? |
А еще можно указать даты действия, по окончанию сама деактивируется
И еще вопрос: подскажите, пжлста, как сделать так, чтобы в каталоге отображалась скидка на весь выбранный раздел и на все подразделы и товары этих подразделов автоматически?? Например, хочу сделать на весь раздел детской одежды из европы сделать скидку 30% - как на предыдущую коллекцию. В разделе три подраздела и в каждом подразделе (поделены по возрастам и полу) еще куча подразделов - поделено по категориям одежды. Как сделать так чтобы на ввсех этих товарах сверху писалась скидка 30% и снизу, где цена указывалась старая зачеркнутая и новая. На превьюшке в быстром просмотре и в самой карточке товара???? Спасибо! С уважением, Ксения

Цитата |
---|
Ксения пишет: Михаил, добрый день! Сделала все как у Вас описано, только почему-то цены не зачеркиваются в корзине, а изначально уменьшаются на процент скидки. Клиент не видит и визуально не видит преференции ему. Видит, что сумма уменьшилась, а за что и почему не понимает. Как бы сделать так, чтобы клиент видел, что старая цена зачеркнута и появилась новая - потому что ему сделали скидку..?? Спасибо!!!!! И еще вопрос: подскажите, пжлста, как сделать так, чтобы в каталоге отображалась скидка на весь выбранный раздел и на все подразделы и товары этих подразделов автоматически?? Например, хочу сделать на весь раздел детской одежды из европы сделать скидку 30% - как на предыдущую коллекцию. В разделе три подраздела и в каждом подразделе (поделены по возрастам и полу) еще куча подразделов - поделено по категориям одежды. Как сделать так чтобы на ввсех этих товарах сверху писалась скидка 30% и снизу, где цена указывалась старая зачеркнутая и новая. На превьюшке в быстром просмотре и в самой карточке товара???? Спасибо! С уважением, Ксения |
Код |
---|
<?if($arPrice["DISCOUNT_VALUE"] < $arPrice["VALUE"]):?> <s><?=$arPrice["PRINT_VALUE"]?></s> <?=$arPrice["PRINT_DISCOUNT_VALUE"]?> <?else:?><?=$arPrice["PRINT_VALUE"]?><?endif;?> <?endif;?> |
2) Нужно правильно составить условие. Все точно также как в описаном ной способе, только изменить условие. На словах трудно описать- возможно если будет время опишу со скринами
Заранее благодарен.
т .е в модуль рассылки нужно добавить свою переменную #Cupon#
init.php
Код |
---|
AddEventHandler("subscribe", "BeforePostingSendMail", Array("MyClass", "BeforePostingSendMailHandler")); class MyClass { // создаем обработчик события "BeforePostingSendMail" function BeforePostingSendMailHandler($arFields) { $sCoupon = CatalogGenerateCoupon(); $iCatalogDiscount = 4; for( $iInd = 0; $iInd < $iQuantity; $iInd++ ) { $sCoupon = CatalogGenerateCoupon(); $aCouponFields = array( 'DISCOUNT_ID' => $iCatalogDiscount, 'ACTIVE' => 'Y', 'ONE_TIME' => 'Y', 'COUPON' => $sCoupon, 'DATE_APPLY' => false, ); $iCouponId = CCatalogDiscountCoupon::Add( $aCouponFields ); } $sCoupon = str_replace("#COUPON#"); } } |
Создал правило работы с корзиной, применять скидку в 5%к товаром от 100 до 500 рублей, но
1)Сейчас суммируется скидка на бренд — с правилом на корзину как запретить это действие?
2)и если у товара уже есть скидка на бренд,артикул , не применять скидку на корзину

Цитата |
---|
Roman пишет: Добрый день Создал правило работы с корзиной, применять скидку в 5%к товаром от 100 до 500 рублей, но 1)Сейчас суммируется скидка на бренд — с правилом на корзину как запретить это действие? 2)и если у товара уже есть скидка на бренд,артикул , не применять скидку на корзину |
Толи это называется пунктом "Применимость"
В общем точно сейчас не вспомню. Как будет возможность постараюсь в эту статью дописать этот нюанс. Но так или иначе, ковыряйте в Применимости скидок- все это там.
Подскажите, пожалуйста, как вы сделали, чтобы в корзине отображалась цена без скидки и цена со скидкой?
Спасибо
Цитата |
---|
Михаил Базаров пишет: сочек в шаблоне |
Я понимаю, что с этим следует в ТП обращаться, но все же: в чем может быть причина такой "половинчатой" работы скидок?

Цитата |
---|
Иван Огородов написал: Михаил, подскажите, пожалуйста, в чем может быть проблема со скидками в следующей ситуации: штатная поставка интернет-магазина под малым бизнесом с версией 16.5.2. Скидки на корзину (с купонами в том числе) работают (цены меняются, старые зачеркиваются), но при переходе на следующий шаг - оформление заказа, цены возвращаются к базовым. Если продолжить оформление до конца, в админке у этого заказа, цены без скидок и также отсутствуют какие-либо упоминания про них или купоны. На купоны отметка об использовании не вешается. По настройкам вдумчиво прошелся - ничего криминального не заметил. Я понимаю, что с этим следует в ТП обращаться, но все же: в чем может быть причина такой "половинчатой" работы скидок? |
- пенсионерам скидка 5%
- студентам скидка 5%
Покупатель выбирает, и заказ пересчитывается. Такое можно сделать штатно? И если не штатно, то как примерно это должно выглядеть?

Цитата |
---|
ruslan2243 написал: Михаил, как сделать, чтобы в корзине стояли чекбоксы: - пенсионерам скидка 5% - студентам скидка 5% Покупатель выбирает, и заказ пересчитывается. Такое можно сделать штатно? И если не штатно, то как примерно это должно выглядеть? |
Например, стоят галочки:
- сезонная скидка
- скидка студенту
Человек отмечает галочки и Итоговая сумма в корзине пересчитывается.
Какой метод использовать? и Где хранить эти скидки, чтобы можно было их редактировать? в инфоблоке?
Не получится разделить на группы, т.к. скидки произволные, не привязаны ни к пользователям и товарам.
Просто чекбоксы. Это может быть всё что угодно, безо всякой логики:
- у меня хорошее настроение (5%)
- просто поставь галочку (10%)
..ну и т.д.
Может быть просто менять стоимость заказа. А скидки хранить в инфоблоке.
Есть такой метод CCatalogDiscount::Add, но мне кажется он относится к скидкам по условию, которые хранятся в разделе скидки.

Цитата |
---|
Михаил Базаров пишет: Быть может, срабатывает какое-то ограничение? Например: по службе оплаты или доставки- нужно изнутри разбираться |