Інтеграція знижок і купонів інтернет-магазину з 1С
26 Березня 2018
наступна стаття
Під час створення інтернет-магазину зустрічається ситуація, коли клієнт має готову базу товарів в 1С. І в новому проекті він хоче її зберегти, щоб не перенавчати свій контент-персонал заповнювати і вести облік у Бітрікс. У стандартному функціоналі передбачена інтеграція бази товарів і обміну замовленнями. У більшості випадків її установка не займає багато часу.
І тут ваш замовник каже, що планує ввести на своєму сайті знижки на товари або промокодом. Причому, управляти всією цією справою він хоче з 1С! Грубо кажучи, все товарне управління повинно вестися з однією вхідної точки. Проте є одне «але»: базовий функціонал Бітрікс не дозволяє працювати зі знижками в форматі 1С. У даній статті я приведу приклад кастомной інтеграції знижок і купонів для управління ними через 1С (створення / зміна / видалення).
Для початку поговоримо про знижки. Ідея полягає в тому, що менеджер в 1С створює запис, в якому вказує товари, або категорії товарів, величину знижки та період її дії. Після збереження, дані передаються на сайт і знижка в системі створюється автоматично. Аналогічні дії відбуваються, коли запис знижки в 1С редагується або видаляється. Логіка побудована наступним чином. При створенні знижки в 1С на сайт в Highload блок, наприклад «ASkidkiDlyaSayta», приходить запис знижки. Або якщо знижка оновилася, то оновлюється відповідний запис в блоці. На вході ми маємо такі дані: ID знижки (для поновлення / видалення), період дії, відсоток знижки, ID товарів і груп підпадають під дію знижки.
Рис. 1 — Запис знижки в Highload блоці
Після цього спрацьовує одна з подій в залежності від типу дії (створення / оновлення / видалення).
Рис. 2 — Обробники подій
У обробнику збирається масив знижки, який, відповідно, передається в 1 з методів класу CCatalogDiscount (Add, Update, Delete) малюнки 3,4,5.
Рис. 3 — Додавання знижки
Рис. 4 — Оновлення знижки
Рис. 5 — Видалення знижки
Далі поговоримо про купони. Основа логіки динамічної генерації купонів побудована так само, як і логіка знижок. З 1С в Highload блок, наприклад «APromoKodyDlyaSayta», приходять записи з даними про те, на які товари і купони необхідно генерувати. На вході ми отримуємо наступний набір даних: ID записи з 1С, термін дії купона, відсоток знижки, ID товарів і груп, тип купона (одноразовий або багаторазовий), а також, кількість використань купона (якщо багаторазовий).
Рис. 6 — Запис купона в Highload блоці
Генерація проходить в 2 етапи. Спочатку генерується правило роботи з кошиком. У ньому вказується відсоток знижки і товари (або група товарів), до яких її застосувати. Залежно від виду дії (додавання / зміна / видалення) викликається відповідний метод класу CSaleDiscount (Add / Update / Delete). Після створення правила необхідно створити сам купон, який буде до нього прив'язаний. Для додавання купона, використовуємо клас DiscountCouponTable. В параметрах ми вказуємо період дії, ID правила роботи з кошиком, яке застосовується при активації купона, тип купона (одноразовий / багаторазовий). Також, код самого купона і кількість його використань в разі, коли необхідно обмежити багаторазове застосування.
Рис. 7 — Створення купона
Таким чином, ми автоматизували процес управління знижками і купонами на сайті, виключивши зайву вхідну точку. Спростили завдання для менеджерів, які будуть займатися товарним управлінням сайту. І найголовніше — виконали завдання клієнта і зберегли базу 1С. Тепер персонал замовника буде задоволений, адже ніхто не буде витрачати час на створення знижок і купонів вручну :)
Ми зв'яжемось з Вами протягом 10 хвилин