Управление через 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.
Наличие инструмента чтения цен в списке не означает доступность цен без Премиум: проверка редакции выполняется при вызове.