Особливості та переваги модуля
- Панель запускається рухом миші за верхню межу сторінки (так званий exit intent) із налаштовуваною затримкою від 0 до 60 секунд, а на сенсорних пристроях — після заданого часу без дотику та прокручування.
- Купон — це правило кошика PrestaShop: не потрібно нічого налаштовувати двічі, а список у модулі показує лише ті правила, які можуть спрацювати для кожного клієнта — активні, з кодом, не прив’язані до одного клієнта, з доступними використаннями та не прострочені.
- Код купона видно в панелі в рамці з кнопкою «Копіювати код»; клієнт також може перейти до замовлення з купоном, уже доданим до кошика.
- Додавання купона при закритті панелі будь-яким способом (хрестик, клавіша Esc, клік поруч, «Продовжити покупки» або товар зі стрічки), а також опціональний перехід до кошика, щоб клієнт одразу побачив знижку.
- Клієнт із порожнім кошиком отримує код для подальшого використання, а клієнт, який уже використовує код знижки, може не отримати наступного — автоматичні знижки магазину без коду (наприклад, безкоштовна доставка від певної суми) при цьому не вважаються купоном клієнта.
- Панель враховує правила купона: вона не пропонується клієнтам, чий кошик не відповідає мінімальній сумі купона, клієнтам поза групами купона, а також тоді, коли купон вичерпав ліміт використань; після зміни кошика на сторінці без перезавантаження модуль повторно перевіряє умови.
- Стрічка «Останні переглянуті» з товарами, які клієнт переглядав під час візиту (до восьми, лише активні та видимі для його групи), без бібліотек каруселі.
- Вміст панелі проходить через білий список HTML — скрипти, події, фрейми та посилання javascript відхиляються, а заголовок модуля повідомляє, якщо вміст якоюсь мовою було відхилено або він порожній.
- Стиль панелі виводиться разом із нею: жодного додаткового запиту до сервера по CSS-файл, а фронтенд-скрипт — це звичайний JavaScript без jQuery, сумісний із темами Classic і Hummingbird.
- Запити панелі до магазину (додавання купона, підрахунок показу, повторна перевірка умов) вимагають методу POST і токена, прив’язаного до cookie відвідувача, тож ніхто не змінить чужий кошик.
- Статистика без персональних даних: показ рахується один раз на відвідувача на день, додавання купона — один раз на кошик, замовлення підраховуються із замовлень магазину для поточно вибраного купона.
- Заголовок модуля зі станом роботи: вибраний купон із датою дії та кількістю використань, що залишилися, результати за останні 30 днів і попередження, наприклад, коли купон закінчується протягом тижня, не вибрано сторінки, увімкнено тестовий режим або панель не показує код.
- Попередній перегляд панелі з адміністративної панелі: підписане посилання відкриває магазин із панеллю, показаною одразу згідно зі збереженими налаштуваннями, працює дві години, нічого не підраховує і не додає купон.
- Фонове зображення, завантажене з панелі (JPG, PNG, GIF або WebP до 2 МБ), потрапляє до каталогу img/pdvoucheronexit/ магазину, тож оновлення модуля його не видаляє; замість файлу можна вказати адресу https:// або шлях у магазині.
- Кожна вкладка зберігається окремо, форма запитує перед виходом із вкладки з незбереженими змінами, а помилки вказують на конкретне поле без втрати введених значень.
- Повна підтримка multistore: налаштування для всіх магазинів, групи магазинів або окремого магазину з успадкуванням значень, статистика та зображення для кожного магазину, список купонів з урахуванням магазину.
- Польська та англійська в комплекті; усі тексти панелі та конфігурації можна змінити в перекладах адміністративної панелі на кожній підтримуваній версії PrestaShop.
- Без Composer, без зовнішніх бібліотек і без підключень до сторонніх сервісів.
Як працює панель у магазині
- Клієнт переглядає сторінку зі списку, вибраного в налаштуваннях (наприклад, сторінку товару, категорії або кошика). Модуль перевіряє, чи належить йому панель: купон доступний, кампанія триває, кошик і відвідувач відповідають умовам, а панель ще не була показана в заданий період.
- Коли курсор виходить за верхню межу вікна (або на телефоні минає встановлений час бездіяльності), після затримки висувається панель із вмістом, кодом купона та кнопками «Перейти до замовлення» і «Продовжити покупки».
- Клієнт копіює код кнопкою або натискає «Перейти до замовлення»: модуль перевіряє купон за правилами PrestaShop, додає його до кошика і переводить клієнта до кошика. Якщо купон не можна використати з поточним кошиком, клієнт бачить зрозуміле повідомлення, а панель залишається відкритою.
- При увімкненій опції додавання купона після закриття панелі купон потрапляє до кошика також тоді, коли клієнт закриє панель хрестиком або клавішею Esc; за бажанням магазин тоді переводить його до кошика.
- Панель записує в cookie, що її було показано, і не повертається протягом установленої кількості днів. Показ, додавання купона та подальше замовлення з цим купоном потрапляють до статистики.
Найважливіші функціональності модуля
- Вкладка Купон: головний перемикач панелі, вибір купона зі списку правил кошика з посиланнями на створення нового купона та редагування збереженого, дати початку і завершення кампанії (дата без години діє до кінця дня), додавання купона при закритті панелі, перехід до кошика після закриття та перемикач статистики.
- Де — сторінки: список типів сторінок із вибором усіх або жодної: головна сторінка, товари, категорії, кошик і замовлення (також у модулях односторінкового оформлення замовлення), пошук, акції, новинки, бестселери, бренди, постачальники, сторінки CMS, контакти, вхід і реєстрація, обліковий запис клієнта, карта сайту та сторінка 404.
- Кому — кошик і відвідувач: лише при непорожньому кошику або також із порожнім (клієнт отримує код на потім), мінімальна вартість товарів у кошику в основній валюті магазину, приховування панелі, коли в кошику вже є купон із кодом, відвідувачі всі / лише незареєстровані / лише зареєстровані, а також обмеження до вибраних груп клієнтів — із попередженням, коли ці умови взаємно виключають одна одну.
- Як часто — тригер: затримка появи панелі в мілісекундах, кількість днів, після яких той самий клієнт знову побачить панель (1–365), тестовий режим, що показує панель при кожному виході зі сторінки, а також час бездіяльності на сенсорних пристроях у секундах (0 = ніколи на сенсорі).
- Вміст панелі: окремий HTML-редактор для кожної мови з мітками {voucher_code}, {voucher_name}, {voucher_discount}, {voucher_expiry} і {voucher_minimum}; знижка показується як відсоток, сума у валюті клієнта або «безкоштовна доставка»; кнопка завантаження стандартного вмісту.
- Вигляд: висування справа, зліва або вікно по центру екрана (на вузьких екранах — повна ширина), ширина 200–1200 px, розмір і колір тексту, колір посилань, колір фону, фонове зображення з повторенням і підгонкою (заповнити, вмістити, оригінальний розмір), рамка з кодом і кнопкою «Копіювати код», а також стрічка останніх переглянутих товарів — кожен елемент з окремим перемикачем.
- Статистика: періоди 7, 30, 90 і 365 днів; покази панелі, додавання купона з панелі, ефективність (додавання/покази), замовлення з купоном (оплачені або підтверджені) та їхня валова вартість в основній валюті магазину, таблиця день за днем і кнопка очищення лічильників без впливу на замовлення.
- Повідомлення для клієнта: окремі тексти, коли купон вимагає товару в кошику, коли він не поєднується з поточним кошиком, коли сесія закінчилася або з’єднання було перервано; усе можна змінити в перекладах.
- Доступність: панель є діалоговим вікном із захопленим фокусом клавіатури, яке закривається клавішею Esc і кліком поруч, з описами кнопок для зчитувачів екрана та обмеженням анімації при ввімкненій у системі опції зменшення руху.
- Права працівників: конфігурація модуля вимагає права «Налаштувати» для модуля на кожній версії PrestaShop, а кожне збереження захищене токеном форми.
Бізнес-застосування
- Порятунок покинутих кошиків: купон пропонується саме в той момент, коли клієнт із товарами в кошику збирається залишити магазин, із переходом прямо до замовлення.
- Залучення перших покупок від нових відвідувачів: код на перше замовлення для незареєстрованих, у тому числі з порожнім кошиком.
- Тимчасові кампанії: акція, обмежена датами, наприклад на вихідні або кінець сезону, без ручного вмикання та вимикання модуля.
- Пропозиції для вибраних груп клієнтів, наприклад купон лише для оптових клієнтів або лише для роздрібних клієнтів.
- Магазини з багатьма вітринами, у яких кожен магазин має інший купон, інші сторінки та інший вміст панелі.
Оновлення з версії 1.0.x
- Налаштування з версії 1.0.x зберігаються: вибраний купон, сторінки, кольори, ширина, фонове зображення та вміст панелі; нові опції отримують значення за замовчуванням.
- Вміст, збережений у 1.0.x, проходить через той самий білий список HTML, що й новий вміст; якщо він уже містить мітку {voucher_code}, рамка з кодом вимикається, щоб код не з’явився двічі.
- Фонове зображення з версії 1.0.x переноситься до каталогу img/pdvoucheronexit/ магазину, а файли попередньої версії (бібліотеки каруселі та тригера, окремий контролер стилів) видаляються.
- У PrestaShop 8 і 9 оновлення модуля запускається в менеджері модулів; оновлення можна безпечно повторити без скасування подальших рішень продавця.
Чого модуль не робить
- Не створює купони і не генерує одноразові коди — він використовує правила кошика, створені в PrestaShop, і пропонує один вибраний купон.
- Не збирає адреси e-mail і не надсилає повідомлення; панель не містить форми підписки на розсилку.
- Не зберігає персональні дані відвідувачів — лічильники статистики є щоденними сумами для кожного магазину.
- Не обходить правила купона: якщо PrestaShop відхиляє купон для даного кошика (мінімальна сума, обмеження за товарами, поєднання з іншими знижками, ліміт використань), модуль його не додасть.
- Не змінює тему або шаблони замовлення; панель виводиться через стандартні хуки футера PrestaShop.
Сумісність
- PrestaShop: 1.7 – 9.x
- PHP: 7.0 – 8.5
- Теми: Classic і Hummingbird (скрипт без jQuery), а також інші теми, що використовують стандартні хуки футера
- Без Composer і без зовнішніх бібліотек
- Multistore: так, налаштування для всіх магазинів, групи магазинів або окремого магазину
- Багатомовність: так, вміст панелі окремий для кожної мови; польська та англійська в комплекті, інші мови — для перекладу в адміністративній панелі