WordPress и WooCommerce
Коннектор WordPress для AACsearch — текущая поддержка, установка, маппинг полей и статус WooCommerce.
Интеграция WordPress с AACsearch имеет два варианта:
- WordPress (без WooCommerce) — поиск по записям, страницам и custom post types. Early preview —
modules/wordpress/aacsearch-search/. - WooCommerce — поиск по товарам с WooCommerce-специфичной ценой, остатками и вариациями. Planned — отдельный mapper поверх WordPress-модуля.
На этой странице — оба варианта и обходное решение для WooCommerce-магазинов, пока выделенный коннектор не вышел.
Коннектор WordPress (Early preview)
Коннектор WordPress поставляется как обычный WordPress-плагин в modules/wordpress/aacsearch-search/. Поддерживает:
- Записи, страницы и любые custom post types, объявленные через фильтры
- Мультилокальные каталоги через Polylang или WPML — отдельный документ на каждую локаль
- Извлечение featured image
- Маппинг тегов и категорий в
categoriesиtagsAACsearch
Поддерживаемые версии
| Компонент | Протестировано |
|---|---|
| WordPress | 6.2 – 6.5 |
| PHP | 7.4 – 8.3 |
| Polylang | 3.4+ |
| WPML | 4.6+ |
Установка
- В панели AACsearch создайте поисковый индекс и токен коннектора (Connectors → New Connector Token). Сразу скопируйте plaintext-значение.
- Соберите zip плагина из исходников
modules/wordpress/aacsearch-search/:
cd modules/wordpress/aacsearch-search
zip -r aacsearch-search.zip . -x '.distignore' '.wordpress-org/*'- В админке WordPress: Plugins → Add New → Upload Plugin. Загрузите zip.
- Активируйте AACsearch Search.
- Откройте AACsearch → Settings и заполните:
- API URL: базовый URL AACsearch (например,
https://api.aacsearch.com) - Connector token: токен
ss_connector_*из шага 1 - Index slug: возвращается handshake'ом (также виден в панели)
- API URL: базовый URL AACsearch (например,
- Нажмите Test connection. Ответ 200 подтверждает корректный handshake.
- Нажмите Run full sync — запустит экспорт всех опубликованных записей / страниц / custom post types.
Маппинг полей
Типичная сущность post-type → документ AACsearch:
| Поле WordPress | Поле AACsearch | Примечание |
|---|---|---|
post_id | external_id | Стабильный первичный ключ записи |
post_title | title | Шорткоды раскрыты |
post_content | description | HTML вычищен, шорткоды раскрыты |
post_type | attributes.type | post, page, slug custom post type |
| Категории (таксономия) | categories | Полная иерархия терминов |
| Теги | tags | Плоский список |
| Featured image | image_url | Первый выбранный размер |
| Локаль Polylang / WPML | locale | По документу на язык; external_id суффиксирован локалью |
| Permalink | product_url | Используется виджетом для перехода |
| ACF / custom meta | attributes.* | Настраивается в AACsearch → Settings → Indexed meta |
Записи в статусах draft, scheduled, password-protected или trashed не индексируются.
Обновления в реальном времени
Плагин подписан на:
save_post— дельта-синхронизация при публикации / обновленииwp_trash_postиbefore_delete_post— удаление из индексаtransition_post_status— добавление и удаление документов при публикации / снятии с публикации
Плановая переиндексация работает через WordPress cron. Если у вас внешний cron (DISABLE_WP_CRON), запускайте полную синхронизацию из системного cron:
*/30 * * * * wp aacsearch sync:full --quietПлагин даёт набор WP-CLI команд: wp aacsearch sync:full, wp aacsearch sync:delta, wp aacsearch diagnose.
Поиск проблем
| Симптом | Причина | Решение |
|---|---|---|
| Test connection 401 | Токен пустой или неверный | Создать новый токен в панели AACsearch |
| Полная синхронизация падает по таймауту | Низкий max_execution_time | Поднять до 120 с или запускать через WP-CLI (без HTTP-таймаута) |
| Память кончается на полной синхронизации | Низкий memory_limit | Поднять до 512M или снизить размер батча в настройках |
| Custom-поля не попадают в поиск | ACF / meta ключи не добавлены в Indexed meta | Явно добавить ключи; плагин не индексирует все meta автоматически |
| Cron пропускает синхронизации | DISABLE_WP_CRON без замены | Запускать wp aacsearch sync:full из системного cron |
| Локали Polylang схлопываются | Polylang не определился | Проверить порядок плагинов — Polylang должен быть выше AACsearch |
WooCommerce (Planned)
WordPress-плагин видит post type product от WooCommerce, но маппит его как обычный пост — без вариаций, ценовых тарифов, остатков и таксономии атрибутов. Для магазинов, которым WooCommerce-поиск нужен уже сейчас, есть три варианта:
Вариант 1 — общий WordPress-коннектор (ограниченный)
Установите текущий WordPress-плагин по инструкции выше. Товары попадут в поиск с заголовком, описанием, категориями и тегами. Цены, остатки и вариации будут отсутствовать. Подходит контент-ориентированным WooCommerce-магазинам, где поиск в основном информационный.
Вариант 2 — custom connector
Соберите WooCommerce-специфичный экспортёр по Custom Connector. Тяните данные из wc_get_products(), обходите вариации через WC_Product_Variable::get_available_variations(), мапьте в SyncProductInput. Референсы: modules/wordpress/aacsearch-search/ и PrestaShop-маппер modules/prestashop/aacsearch/src/Exporter/.
Вариант 3 — дождаться выделенного WooCommerce-коннектора
Выделенный WooCommerce-mapper в roadmap (wiki/tasks/cms-platform-expansion.md § A2). Запланировано:
- Simple, variable и grouped products
- Документы на уровне вариаций с общими родительскими метаданными
- Обычные и распродажные цены, плюс динамическое ценообразование (Subscriptions, Bookings)
- Остатки по складам (Multi-Inventory) и пред-заказы
- Атрибуты товаров как фасетные поля
- Polylang / WPML и WooCommerce Multilingual для локалей
Подпишитесь на changelog AACsearch или следите за issue.
Связанные страницы
Коннектор Shopify
Коннектор Shopify для AACsearch — OAuth-установка, дельта-синхронизация через вебхуки и маппинг товаров. Early preview.
Интеграции с Headless CMS
Как AACsearch подключается к headless CMS — Strapi, Sanity, Contentful, Directus и Payload — и когда выбирать плагин против integration guide.