Свои типы каналов продаж в 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 (подробнее в документации).

6 марта 2026


Чтобы добавить комментарий, зарегистрируйтесь или войдите