К содержимому
Интеграции

Управление через MCP

Обновлено

Что нужно для работы

Установите и включите приложение MCP в той же установке Webasyst, где работает Shop-Script с плагином. Подключите своего MCP-клиента к этому приложению и выдайте токену нужные права. Без приложения MCP магазин и плагин работают самостоятельно, инструменты агента не регистрируются.

Плагин добавляет группы прав easyregions.read («Чтение») и easyregions.write («Запись»). В scope токена сохраняются отдельные имена инструментов. Без соответствующего разрешения инструмент не появляется в tools/list, а вызов отклоняется приложением MCP.

Для записи привяжите токен через act_as к пользователю, который является администратором Shop-Script: плагин проверяет это независимо от scope. У привязанного пользователя для чтения проверяется доступ к бэкенду магазина.

Реальные инструменты

Инструмент Группа Назначение и параметры
easyregions_list_regions easyregions.read Все настроенные регионы со складами, витринами, кодами, переменными и ограничениями способов
easyregions_get_region easyregions.read Подробности одного региона по region_id
easyregions_list_params easyregions.read Справочник переменных: id, key, name, sort
easyregions_list_reference easyregions.read Справочник физических и виртуальных складов, витрин, доставок и оплат; для методов возвращается признак enabled
easyregions_get_prices easyregions.read Заданные региональные цены и compare_price всех артикулов товара по product_id либо списка sku_ids; Премиум
easyregions_save_region easyregions.write Создание или обновление региона, кодов, переменных, назначений складов и витрин; ограничения способов требуют Премиум
easyregions_delete_region easyregions.write Удаление по region_id вместе с ценами, кодами, значениями переменных и ограничениями способов
easyregions_save_params easyregions.write Пакетное создание, изменение и удаление определений переменных через массив params
easyregions_set_prices easyregions.write Пакетная запись цен артикулов по регионам через массив prices; Премиум

Список MCP содержит все настроенные регионы и не ограничивается городами одной открытой витрины.

Создание и изменение региона

Сначала получите идентификаторы через easyregions_list_reference. Для создания передайте в easyregions_save_region непустое name и строковый stock_id. Для обновления добавьте region_id, полученный из списка регионов.

Поле Формат и поведение
stock_id Строка ID существующего склада, в том числе виртуального
public_stocks Массив строковых ID; пусто — только основной склад
storefronts Массив адресов из справочника; пусто — все витрины
is_default Логическое значение; true снимает флаг с другого региона
sort Целое число для порядка
codes Массив объектов code, country_iso3; если страна не передана, используется rus
vars Объект строковых значений по существующим ключам из easyregions_list_params
shipping_ids, payment_ids Массивы ID методов; пусто — снять региональный фильтр; требуют Премиум

При обновлении пропущенные поля остаются прежними. Переданные списки и набор значений vars заменяют соответствующие наборы целиком. Пустая строка значения переменной удаляет его. Не передавайте vars только с одним ключом, если хотите сохранить другие значения: сначала прочитайте текущий набор и включите их в запрос.

Даже передача пустых shipping_ids или payment_ids без Премиум отклоняет весь запрос с premium_required.

Справочник переменных

В easyregions_save_params передавайте массив params:

  • новая переменная — объект с key и name;
  • изменение — объект с id и нужными полями key, name, sort;
  • удаление — объект с id и delete: true.

Элементы справочника, отсутствующие в пакете, сохраняются. Удаление определения убирает его значения во всех регионах. Безопасный формат ключа для использования везде: строчные латинские буквы, цифры и _, начиная с буквы, до 64 символов.

Цены

Для easyregions_get_prices укажите ровно один способ выбора: product_id либо sku_ids. Возвращаются только заданные региональные значения.

В easyregions_set_prices передайте prices с объектами region_id, sku_id, price и при необходимости compare_price. ID артикула берётся из каталога магазина, product_id определяется автоматически. Используйте числовую цену, 0 для нуля, null для удаления регионального значения. Пример состава элемента:

{"region_id": 1, "sku_id": 100, "price": 1200, "compare_price": 1500}

ID в примере условные: замените их реальными. Для сброса обоих значений передайте price: null и compare_price: null. Если compare_price не передана, она не меняется. Для запросов изменения зачёркнутой цены передавайте также актуальное price: текущий общий валидатор требует присутствия этого поля.

Пакеты prices и params ограничены схемой до 1000 элементов. Запись пакетов выполняется в транзакции: при ошибке изменения откатываются.

Ответы об ошибках

Проверяйте ok в ответе. При неудаче плагин возвращает ok: false, error_code и error_message. Среди кодов — invalid_arguments, access_denied, premium_required, db_error, app_error, internal_error.

Наличие инструмента чтения цен в списке не означает доступность цен без Премиум: проверка редакции выполняется при вызове.