Свои типы каналов продаж в Shop-Script 12 с помощью плагинов
В версии Shop-Script 12.0 мы добавили возможность настраивать несколько типов каналов продаж: точки продаж и мини-приложение с в витриной магазина в Telegram. А в обновлении до версии 12.1 реализовали также интеграцию магазина с мини-приложением в мессенджере MAX.
Плагины могут добавлять свои собственные типы каналов продаж к этому стандартному набору. Например, можно добавить возможность продажи товаров через другие мессенджеры или соцсети по аналогии с Telegram и MAX или реализовать функциональность, схожую с точками продаж. Тут можно дать волю фантазии и предложить владельцам интернет-магазинов новые нестандартные способы получения заказов и работы с ними (в том числе добавляя собственные действия для обработки заказов — см. для примера действие «Выдать» для заказов, полученных через точку продаж).
Пример-заготовка плагина на GutHub для реализации собственного канала продаж ›
Что представляет из себя канал продаж
Для пользователя это информация о том, откуда и каким способом был получен заказ. Это можно увидеть:
- на странице заказа в правой панели с блоком вспомогательной информации;
- с помощью фильтра заказов «Каналы продаж».
Конкретную логику получения заказов разработчик плагина может реализовать как угодно: создавать новые заказы на витрине в обход стандартного процесса оформления заказа или показывать покупателям собственную витрину в каком-то внешнем окружении: в мессенджере, на сторонних сайтах и т. п. — с использованием Headless API; либо получать информацию о заказах из других сервисов, например, маркетплейсов.
Как реализовать новый тип каналов продаж с помощью плагина
Для того чтобы в магазине появился новый тип каналов продаж, работающий на основе вашего плагина, нужно объявить этот новый тип с помощью хука sales_channel_types.
Название нового типа появится в меню добавления канала продаж — при его выборе откроется страница создания нового канала.
Набор настроек канала, который должен быть доступен пользователю на этой странице, нужно описать в PHP-классе, указанном в обработчике хука (подробнее в документации).
Настроенный пользователем канал продаж хранится в виде записей в таблицах базы данных:
shop_sales_channel: основная информация о канале;shop_sales_channel_params: сохранённые пользователем настройки канала.
Для того чтобы владелец магазина видел, что некий заказ относится к каналу продаж, работающему на основе вашего плагина, нужно при создании этого заказа сохранять для него в таблицу shop_order_params следующие значения:
sales_channel: обозначение вашего типа канала продаж и идентификатор канала (значениеidиз таблицы shop_sales_channel), разделённые двоеточием (например, my_channel_type:3);sales_channel_name: название канала продаж, которое пользователь сохранил в интерфейсе магазина при настройке канала (значениеnameиз таблицы shop_sales_channel).
Взаимодействие фронтенда плагина с Headless API
Код во фронтенде плагина может получать через Headless API информацию о конкретном канале продаж. Например, для того, чтобы показать покупателю специальную витрину плагина в соответствии с сохранёнными настройками канала.
Для этого нужно выполнить запрос к узлу /shop, указав идентификатор канала продаж в GET- или POST-параметре sales_channel_id.
Чтобы это сработало с вашим типом канала продаж, в PHP-классе плагина, унаследованном от shopSalesChannelType, должен быть переопределён метод getPublicStorefrontParams (подробнее в документации).










Чтобы было проще и быстрее создавать плагины, реализующие собственные каналы продаж, мы добавили пример-заготовку на GitHub.