Інтеграція знижок і купонів інтернет-магазину з 1С

26 Березня 2018

наступна стаття
Сергій Побережний

Middle back end developer

Сергій Побережний
Інтеграція знижок і купонів інтернет-магазину з 1С

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

І тут ваш замовник каже, що планує ввести на своєму сайті знижки на товари або промокодом. Причому, управляти всією цією справою він хоче з 1С! Грубо кажучи, все товарне управління повинно вестися з однією вхідної точки. Проте є одне «але»: базовий функціонал Бітрікс не дозволяє працювати зі знижками в форматі 1С. У даній статті я приведу приклад кастомной інтеграції знижок і купонів для управління ними через 1С (створення / зміна / видалення).

Для початку поговоримо про знижки. Ідея полягає в тому, що менеджер в 1С створює запис, в якому вказує товари, або категорії товарів, величину знижки та період її дії. Після збереження, дані передаються на сайт і знижка в системі створюється автоматично. Аналогічні дії відбуваються, коли запис знижки в 1С редагується або видаляється. Логіка побудована наступним чином. При створенні знижки в 1С на сайт в Highload блок, наприклад «ASkidkiDlyaSayta», приходить запис знижки. Або якщо знижка оновилася, то оновлюється відповідний запис в блоці. На вході ми маємо такі дані: ID знижки (для поновлення / видалення), період дії, відсоток знижки, ID товарів і груп підпадають під дію знижки.



               Рис. 1 — Запис знижки в Highload блоці

Після цього спрацьовує одна з подій в залежності від типу дії (створення / оновлення / видалення).

https://lh4.googleusercontent.com/GADaucbK9jTIAvPoZiMeRcYFYui2Ow3_-EoHSVLqY_VZ1_gV1YuY4FqtAMs555hUFUQx9Gx8VMVk9VRiSgxIHD26Oes6f-0lXUn311kftBphAytnY2frh23UI5i9U2cCfz1KVzQeqWdCt_DLhA

Рис. 2 — Обробники подій

У обробнику збирається масив знижки, який, відповідно, передається в 1 з методів класу CCatalogDiscount (Add, Update, Delete) малюнки 3,4,5.


Рис. 3 — Додавання знижки

https://lh4.googleusercontent.com/NUACgD8xbDwaGRmVb3iLwzg4m0lptoJgO5fiFB0kzKHW7CASH9vj-5Pz1WaUQxznJ37rwI89_CjRlvy-5lFguCOOls6ikRvatFC-jaM5zsMbGLXpUy6PJp8k-se2kbYHQ5Rs8Xx7R4KM3M-UlQ
Рис. 4 — Оновлення знижки

https://lh4.googleusercontent.com/n_KqIc6MvrxuH_GA6ivAXQD3O_5rMxUqnM3TkMcbbOZPzyGLPNCJUMcw1D8DOvZYk4M9hpuowHn7vcolOL9Pgd6SUvUHNwAdjuKTfYdQbq4ol55glBgudcFwkuUMFvbmNJLrE5hKFau72CyRaw
Рис. 5 — Видалення знижки

Далі поговоримо про купони. Основа логіки динамічної генерації купонів побудована так само, як і логіка знижок. З 1С в Highload блок, наприклад «APromoKodyDlyaSayta», приходять записи з даними про те, на які товари і купони необхідно генерувати. На вході ми отримуємо наступний набір даних: ID записи з 1С, термін дії купона, відсоток знижки, ID товарів і груп, тип купона (одноразовий або багаторазовий), а також, кількість використань купона (якщо багаторазовий).


            Рис. 6 — Запис купона в Highload блоці

Генерація проходить в 2 етапи. Спочатку генерується правило роботи з кошиком. У ньому вказується відсоток знижки і товари (або група товарів), до яких її застосувати. Залежно від виду дії (додавання / зміна / видалення) викликається відповідний метод класу CSaleDiscount (Add / Update / Delete). Після створення правила необхідно створити сам купон, який буде до нього прив'язаний. Для додавання купона, використовуємо клас DiscountCouponTable. В параметрах ми вказуємо період дії, ID правила роботи з кошиком, яке застосовується при активації купона, тип купона (одноразовий / багаторазовий). Також, код самого купона і кількість його використань в разі, коли необхідно обмежити багаторазове застосування.

https://lh4.googleusercontent.com/fOtg_NVaVh8LHRgeAVflnbAI_x3zQGxWPM76CRnIxOQ9DDsxpws5u68BlL0rEMULWWsEnScxdjyN0HMwWXDKbAYDPS_VSBz9Non8UpaLPrx-K4mj-XpUyqHYXtqltCpMaVQK6h0xR7i9MKTFZw
Рис. 7 — Створення купона

Таким чином, ми автоматизували процес управління знижками і купонами на сайті, виключивши зайву вхідну точку. Спростили завдання для менеджерів, які будуть займатися товарним управлінням сайту. І найголовніше — виконали завдання клієнта і зберегли базу 1С. Тепер персонал замовника буде задоволений, адже ніхто не буде витрачати час на створення знижок і купонів вручну :)

banner_ukr.png


Схожі статті

Записатись на консультацію

Ми зв'яжемось з Вами протягом 10 хвилин