Как подключить AI к WordPress и WooCommerce через MCP
Как подключить AI к WordPress и WooCommerce через MCP
AI в магазине полезен не тогда, когда ему дают доступ ко всему сайту, а когда он получает одну понятную задачу с проверяемым результатом. WordPress 6.9 добавил Abilities API, а WooCommerce развивает MCP-интеграцию для товаров и заказов. На этой базе можно собрать помощника, который проверит каталог или подготовит черновик, не превращая AI в администратора магазина.
Краткий ответ
Подключение состоит из трёх частей. В плагине описывают отдельную операцию через Abilities API: что она принимает, что возвращает и кто вправе её выполнить. MCP Adapter делает эту операцию доступной AI-клиенту. Если самому сайту нужно обратиться к модели, WordPress AI Client передаёт запрос выбранному провайдеру.
Начинать стоит с операции только для чтения: например, найти опубликованные товары без веса или габаритов. PHP получает факты из WooCommerce, а AI группирует их и объясняет, что проверить. Цены, остатки, статусы заказов и расчёт доставки должны оставаться в обычном программном коде.
Интеграция MCP в WooCommerce имеет статус developer preview. Проверяйте версию WordPress, WooCommerce и адаптера на тестовом стенде перед включением на рабочем магазине.
Где AI в магазине приносит пользу
Для владельца магазина AI не заменяет учётную систему, доставку или оплату. Его сильная сторона — работа с подготовленными данными, когда нужно быстро увидеть проблему, разложить большой список по группам или подготовить черновой текст для человека.
- Проверка каталога. Плагин находит карточки без изображения, описания, веса, атрибутов или настроек вариаций. Модель получает короткий список и делает понятный отчёт для контент-менеджера.
- Черновики описаний. Из подтверждённых характеристик товара можно подготовить текст карточки. Публикация остаётся отдельным действием редактора: модель не должна молча менять витрину.
- Сводки для команды. Код агрегирует обезличенные показатели заказов, возвратов или обращений, а AI формулирует вопросы для проверки. В запрос не нужно передавать имена, телефоны, адреса и реквизиты покупателей.
У WooDev уже есть практический контекст для такого подхода. Интеграции доставки и оплаты зависят от точных полей товара и статусов заказа. Если вес у физического товара не заполнен, это ещё не доказывает ошибку расчёта: правила конкретного перевозчика могут отличаться. Но такой сигнал помогает проверить карточку до того, как покупатель увидит пустой тариф или неверную сумму.
Общую картину появления этих возможностей на уровне CMS даёт статья о WordPress 7.0 и AI в WooCommerce. Здесь важнее понять, как превратить идею в контролируемую операцию для проекта.

Abilities API: сначала контракт, потом модель
Ability — это зарегистрированное описание операции сайта. В нём есть имя с пространством имён, схема входных и выходных данных, функция исполнения и проверка прав. Операция доступна из PHP, JavaScript и REST API; MCP Adapter использует тот же контракт, не создавая отдельную логику для каждого AI-клиента.
Ниже — упрощённый фрагмент учебного плагина. Он регистрирует ability, которая возвращает опубликованные товары, где отсутствует вес или хотя бы один из габаритов. В реальном проекте нужно отдельно решить, к каким типам товара относится правило и какой размер страницы допустим.
add_action( 'wp_abilities_api_categories_init', function (): void {
wp_register_ability_category(
'catalog-audit',
array(
'label' => 'Catalog audit',
'description' => 'Read-only catalog checks.',
)
);
} );
add_action( 'wp_abilities_api_init', function (): void {
wp_register_ability(
'catalog-audit/find-incomplete-shipping-data',
array(
'label' => 'Find incomplete shipping data',
'description' => 'Lists products missing weight or dimensions.',
'category' => 'catalog-audit',
'input_schema' => array(
'type' => 'object',
'properties' => array(
'page' => array( 'type' => 'integer', 'minimum' => 1 ),
),
),
'output_schema' => array( 'type' => 'array' ),
'permission_callback' => fn () => current_user_can( 'manage_woocommerce' ),
'execute_callback' => 'catalog_audit_find_incomplete_shipping_data',
'meta' => array(
'mcp' => array( 'public' => true, 'type' => 'tool' ),
'annotations' => array( 'readonly' => true ),
),
)
);
} );
Категория регистрируется раньше самой ability. Если перепутать хуки или сослаться на несуществующую категорию, операция может тихо не появиться на сайте, особенно когда на production отключён WP_DEBUG. У MCP Adapter есть собственная команда обнаружения операций, однако она не заменяет проверку прав: публичная ability может быть видна аутентифицированному клиенту, а выполнить её сможет только пользователь, который пройдёт permission_callback.
Аннотация readonly помогает клиенту понять намерение операции, но сама по себе не блокирует запись. Запрет строится на правах, схеме входных данных и коде callback. Для ошибок callback должен вернуть WP_Error, а не частично обработанный результат.
MCP соединяет ассистента с разрешёнными действиями
MCP, или Model Context Protocol, — это общий способ дать AI-приложению инструменты и контекст. В архитектуре WordPress он не предоставляет модели «доступ к WooCommerce». Он даёт ей список конкретных операций и вызывает их от имени пользователя WordPress. Для новой интеграции WooCommerce рекомендует общий endpoint MCP Adapter, а прежний endpoint /wp-json/woocommerce/mcp отмечен как устаревший.
Для локальной копии сайта MCP-сервер можно запускать через WP-CLI. В конфигурации клиента достаточно указать путь к установленному WordPress и отдельного пользователя для тестов:
{
"mcpServers": {
"woocommerce_local": {
"command": "wp",
"args": [
"--path=/srv/www/store",
"mcp-adapter",
"serve",
"--server=mcp-adapter-default-server",
"--user=ai-audit"
]
}
}
}
Удалённому сайту нужны HTTPS, отдельный пользователь с минимальными правами и Application Password WordPress, которую можно отозвать отдельно от пароля учётной записи. До первого запроса проверьте отрицательные сценарии: обычный редактор не получает данные заказов, значение вне схемы не попадает в callback, а страница за пределами каталога возвращает пустой список без ошибки.
WooCommerce уже регистрирует purpose-built operations для товаров и заказов: поиск, создание, обновление и удаление товаров; поиск заказов, смена статуса и заметки. Это не повод сразу включать операции записи. Для первого запуска достаточно собственной проверки каталога или отчёта, который не раскрывает персональные данные. Статус MCP в WooCommerce и рекомендации по обновлению разобраны в материале о WooCommerce 11.0.
Провайдер и маршрут запроса проверяют до разработки
Вторая половина архитектуры работает в обратном направлении: сайт отправляет подготовленный запрос в AI-провайдер и получает ответ. Для серверов с российскими IP это нужно проверить из той же сети, где работает WordPress. Доступность OpenAI или Anthropic может зависеть от региона, типа аккаунта, способа оплаты, сетевого маршрута и правил самого провайдера. Предположение по геолокации сервера здесь ничего не доказывает.
Минимальная проверка выглядит так: создать тестовый ключ, выполнить короткий запрос с сервера или staging-окружения, зафиксировать код ответа и время, затем повторить его после планового обновления инфраструктуры. Не отправляйте в эту проверку заказ, адрес или письмо покупателя. Текст вроде «проверка связи» достаточно показывает, может ли сайт обратиться к API.
Если прямой маршрут недоступен, варианты выбирают до запуска функции: разрешённый по правилам провайдера прокси, сервер в другой локации или другой AI-провайдер. Для каждого варианта отдельно проверяют договорные условия, стоимость, обработку данных и задержку. Прокси не отменяет требований к защите ключей и персональных данных.
Один из вариантов — OpenRouter. Это посредник с единым API для разных моделей, а для WordPress есть плагин AI Provider for OpenRouter, который подключается к PHP AI Client. Для WordPress 7.0 и новее дополнительный пакет PHP AI Client не требуется; плагину нужен ключ OpenRouter. Доступность OpenRouter и выбранной за ним модели также проверяют с реального сервера: сам факт установки плагина не гарантирует маршрут из конкретной сети.
// wp-config.php: ключ хранится вне репозитория.
define( 'OPENROUTER_API_KEY', getenv( 'OPENROUTER_API_KEY' ) ?: '' );
use WordPress\AiClient\AiClient;
$text = AiClient::prompt( 'Сгруппируй причины неполных карточек по переданному списку.' )
->usingProvider( 'openrouter' )
->generateText();
Этот пример показывает вызов после подключения провайдера, а не заменяет настройку. Перед использованием проверьте актуальный идентификатор провайдера и доступные модели в его документации. OpenRouter маршрутизирует запрос к выбранному поставщику, поэтому для чувствительных данных нужно заранее выбрать допустимые модели и правила хранения. По документации OpenRouter, текст запросов и ответов не логируется по умолчанию, однако метаданные запроса сохраняются, а конкретная обработка зависит и от поставщика модели.
Первый запуск: один сценарий, измеримый результат
Пробный проект лучше ограничить одной задачей, которая повторяется в работе команды. Для магазина это может быть еженедельный отчёт «карточки без данных для доставки». Успех измеряется не качеством красивого ответа, а тем, что список товаров совпал с ручной выборкой, отчёт понятен менеджеру, а AI не получил ненужные поля.
- Соберите детерминированные данные. PHP получает максимум 20–50 товаров, нормализует поля и возвращает JSON по схеме. В этом шаге нет модели.
- Откройте ability только для чтения. Дайте доступ отдельному пользователю с нужной capability и убедитесь, что менее привилегированная учётная запись получает отказ.
- Добавьте модель после проверки данных. Передавайте ей уже сокращённый список без персональных данных. Результат сохраняйте как отчёт или черновик, не как автоматическое изменение товара.
- Проверьте отказ и откат. Сбой провайдера, лимит API и некорректный ответ не должны останавливать checkout, фоновые задачи или работу администрации.
Такой подход оставляет контроль у проекта. Если модель станет недоступна или выдаст неудачный текст, аудит каталога всё равно можно запустить без неё. Когда первый сценарий работает несколько недель и команда использует отчёт, есть смысл добавлять следующий — например, подготовку черновиков описаний из тех же подтверждённых характеристик.

Что делать дальше
Выберите повторяющуюся задачу, в которой уже есть чёткие входные данные и понятный результат. Сначала оформите её как read-only ability, прогоните на копии сайта и проверьте маршрут до провайдера с реального сервера. После этого можно обсуждать AI-функцию для конкретной интеграции WooCommerce без доступа модели к лишним данным.
Поделиться
Читайте также
Checkout Blocks или классический checkout WooCommerce: что выбрать магазину
Сравниваем Checkout Blocks и классический checkout WooCommerce: кастомизация, совместимость оплаты и доставки, риски перехода и практический выбор.
Почему WooCommerce не показывает способы доставки на checkout
Разбираем, почему WooCommerce не показывает способы доставки на checkout: зоны, порядок зон, shipping class, адрес покупателя, вес, габариты и API перевозчика.
Как обновить WooCommerce
Обновление WooCommerce нельзя сводить к нажатию одной кнопки в админке. Для магазина в РФ и СНГ оно почти всегда затрагивает оплату, доставку, email-письма, checkout, базу данных и кастомные плагины. Поэтому…