Як встановити мінімальну суму замовлення в бітріксі для інтернет-магазину

Сьогодні я зіткнувся з досить тривіальною проблемою: у базовому функціоналі движка 1С Бітрікс не виявилось галочки для виставлення мінімальної суми замовлення в інтернет-магазині. Довелося трохи допиляти шаблон і т.к. складного там нічого немає, але завдання може виникнути повторно і не тільки в мене, його варто описати детально, щоб надалі знати, що і як робити.

Що потрібно для роботи

Отже, вступна: є інтернет-магазин, повні адмінські права з FTP і завдання виставити мінімалку для оформлення замовлення. Навіщо це вже інше питання. Адже якщо міркувати логічно, то цим ми втрачаємо частину замовлень, які можна було б сконвертувати якось ще. У нинішньому становищі справ, а саме, після впровадження обмеження на мінімальну суму чека для оформлення, ми просто втратимо цих людей і вони підуть до конкурентів.

Для швидкого пошуку коду файлів движка можна використовувати програму Total Commander.

Правитимемо кошик. Якщо у вас стандартна тема, то перш за все варто скопіювати файли темплейтів із папки бітриксу у своє поле імен і потім уже вносити правки. Інакше все загубиться після першого оновлення двигуна.

У моєму випадку кошик стоїть у шапці, у сайдбарі та є ще блок у вигляді окремої сторінки. Усього 3 шаблони. Структура даних трохи відрізняється, тому надійдемо таким чином.

Виправлення віджетів кошика

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

Знаходимо там кнопку "Оформити". Для зручності я використовую Firebug в Мозіллі, що дозволяє швидко знайти потрібний код.

Припустимо, спочатку кнопка виглядає так:

Щобзамовлення можна було оформити лише набравши товару на 5 000 рублів, доповнимо код наступним

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

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

Шаблон кошика

Крім віджетів, є ще сторінка кошика, звідки покупець потрапляє безпосередньо на сторінку оформлення замовлення. Для редагування нам знадобиться FTP. Якщо ви використовуєте інший спосіб, можете зробити інакше. Ідемо до свого макету, шукаємо там папку sale.basket.basket. Усередині знаходимо файл basket_items.php. Лезем у код. Нам знову потрібна кнопка «Оформити замовлення», яку ми обгортаємо в таку умову

Якщо потрібна мінімальна вартість замовлення не 5, а допустимо 2 тисячі, то замінюємо цифри у коді на свої. Все просто.

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

Однак залишилася проблема: припустимо, покупець хитрий і зміг якось обійти той факт, що зі сторінок магазину не потрапити в кошик доти, доки не покладеш туди товар на потрібну суму. І що зрештою: він у кошику, алекнопки замовлення немає. Він засмутився. Не зрозумів, у чому річ і пішов до конкурентів. Щоб цьому трохи завадити, ставимо вилку з else та пишемо про мінімальну вартість замовлення.

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