Как выставить в Битриксе минимальную сумму заказа

Сегодня я столкнулся с довольно тривиальной проблемой: в базовом функционале движка 1С Битрикс не оказалось галочки для выставления минимальной суммы заказа в интернет-магазине. Пришлось немного допилить шаблон и, т.к. сложного там ничего нет, но задача может возникнуть повторно и не только у меня,  ее стоит описать детально, дабы в дальнейшем знать, что и как делать.

Что потребуется для работы

Итак, вводная: есть интернет-магазин, полные админские права с FTP и задача — выставить минималку для оформления заказа. Зачем — это уже другой вопрос. Ведь, если рассуждать логически, то этим мы теряем часть заказов, которые можно было бы сконвертить как-то еще. В нынешнем положении дел, а именно, после внедрения ограничения на минимальную сумму чека для оформления мы просто потеряем этих людей и они уйдут к конкурентам.

Для быстрого поиска кода по файлам движка можно использовать программу Total Commander.

Править будем корзину. Если у вас стандартная тема, то прежде всего стоит скопировать файлы темплейтов из папки битрикса в своё поле имен и затем уже вносить правки. Иначе всё потеряется после первого обновления движка.

В моем случае корзина стоит в шапке, в сайдбаре и есть еще блок в виде отдельной страницы. Всего 3 шаблона. Структура данных немного отличается, поэтому поступим следующим образом.

Правка виджетов корзины

Заходим на сайт под админом и переходим в режим редактирования. Виджеты можно исправить через стандартный функционал, нажав на шестеренку и открыв код.

задаем минимальную цену заказа в виджет корзины

Открываем виджет корзины на редактирование

Находим там кнопку «Оформить». Для удобства я использую Firebug в Мозилле, что позволяет быстро отыскать нужный код.

Предположим, изначально кнопка выглядит так:

<a href=»/personal/cart/»>Оформить</a>

Чтобы заказ можно было оформить лишь набрав товара на 5 000 рублей, дополним код следующим

<?if ($sum >= 5000):?>
<a href=»/personal/cart/»>Оформить</a>
<?endif;?>

Для удобства можно еще добавить else и вписать туда фразу «Минимальная сумма заказа 5000 рублей».

Сохранив изменения и обновив страничку, должно заработать. Однако, у меня очень сильно кастомизированная тема, собранная практически с нуля по ТЗ и часть переменных в коде отличаются от тех, которые заложены в коробку изначально. Поэтому, если вы все сделали как написано, но что-то не сработало, делаем следующее: идем снова в шаблон, где вносили изменения и над кнопкой «Оформить» смотрим, какая переменная выводит сумму заказа в форму виджета корзины. Если там $sum, то мой вариант сработает. Если что-то другое, заменяем $sum на ту переменную, которая отвечает за вывод стоимости заказа. Сохраняем. Оцениваем результат, закупившись у себя в каталоге.

Шаблон корзины

Помимо виджетов есть еще страничка корзины, откуда покупатель попадает непосредственно на страницу оформления заказа. Для правки нам потребуется FTP. Если вы используете другой метод, можете сделать иначе. Идем в свой макет, ищем там папку sale.basket.basket. Внутри находим файл basket_items.php. Лезем в код. Нам вновь нужна кнопка «Оформить заказ», которую мы обёртываем в следующее условие

<?if ($arResult[«allSum»] >= 5000):?><?endif;?>

Если нужна минимальная стоимость заказа не 5, а допустим 2 тысячи, то заменяем цифры в коде на свои. Всё просто.

После сохранения при покупке на сумму менее указанной в условии, кнопка оформления заказа не будет отображаться на странице и покупатель не сможет осуществить заказ.

Однако осталась проблема: допустим, покупатель хитрый и смог обойти как-то тот факт, что со страниц магазина не попасть в корзину до тех пор, пока не положишь туда товар на нужную сумму. И что в итоге: он в корзине, но кнопки заказа нет. Он расстроился. Не понял, в чем дело и ушел к конкурентам. Чтобы этому немного помешать, ставим вилку с else и пишем о минимальной стоимости заказа.

Таким образом, купив товар на 300 рублей, клиент видит, что ему надо либо еще набрать до 5 тысяч, либо здесь закупаться не вариант.

Понравилась статья? Расскажи о ней друзьям!

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

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