AACsearch
Коннекторы и виджет

WordPress и WooCommerce

Коннектор WordPress для AACsearch — текущая поддержка, установка, маппинг полей и статус WooCommerce.

Интеграция WordPress с AACsearch имеет два варианта:

  • WordPress (без WooCommerce) — поиск по записям, страницам и custom post types. Early previewmodules/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 и tags AACsearch

Поддерживаемые версии

КомпонентПротестировано
WordPress6.2 – 6.5
PHP7.4 – 8.3
Polylang3.4+
WPML4.6+

Установка

  1. В панели AACsearch создайте поисковый индекс и токен коннектора (Connectors → New Connector Token). Сразу скопируйте plaintext-значение.
  2. Соберите zip плагина из исходников modules/wordpress/aacsearch-search/:
cd modules/wordpress/aacsearch-search
zip -r aacsearch-search.zip . -x '.distignore' '.wordpress-org/*'
  1. В админке WordPress: Plugins → Add New → Upload Plugin. Загрузите zip.
  2. Активируйте AACsearch Search.
  3. Откройте AACsearch → Settings и заполните:
    • API URL: базовый URL AACsearch (например, https://api.aacsearch.com)
    • Connector token: токен ss_connector_* из шага 1
    • Index slug: возвращается handshake'ом (также виден в панели)
  4. Нажмите Test connection. Ответ 200 подтверждает корректный handshake.
  5. Нажмите Run full sync — запустит экспорт всех опубликованных записей / страниц / custom post types.

Маппинг полей

Типичная сущность post-type → документ AACsearch:

Поле WordPressПоле AACsearchПримечание
post_idexternal_idСтабильный первичный ключ записи
post_titletitleШорткоды раскрыты
post_contentdescriptionHTML вычищен, шорткоды раскрыты
post_typeattributes.typepost, page, slug custom post type
Категории (таксономия)categoriesПолная иерархия терминов
ТегиtagsПлоский список
Featured imageimage_urlПервый выбранный размер
Локаль Polylang / WPMLlocaleПо документу на язык; external_id суффиксирован локалью
Permalinkproduct_urlИспользуется виджетом для перехода
ACF / custom metaattributes.*Настраивается в 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.

Связанные страницы

On this page