📑 У цій статті
- Симптоми: магазин має товар, але пошук його не знаходить
- 5 причин, чому стандартний пошук OpenCart провалюється
- LIKE vs Full-Text vs AI embeddings — технічне порівняння
- Як виміряти проблему (zero-results у вашому магазині)
- Рішення: AI Search v1.0.5 за 5 хвилин
- Кейс isklad.com.ua: релевантність з 31% до 92.7%, bounce -26 п.п.
- FAQ
Покупець набрав «білий чайнік» у пошуку. Магазин показав «Нічого не знайдено». А в каталозі — 14 товарів з ключовим словом «чайник» і фільтром «колір: білий». Цей сценарій трапляється на кожному другому магазині OpenCart, який ми переглядали при сетапі AI Search. І це втрачені продажі — людина пішла на маркетплейс.
Симптоми: магазин має товар, але пошук його не знаходить
Типові ознаки, що ваш OpenCart-пошук «зливає» трафік:
- Високий bounce rate з результатів пошуку. У GA4 переходи з
?search=...мають bounce 70%+, тоді як з категорій — 35-45%. - Аномально багато «Нічого не знайдено» сторінок. Подивіться у GSC: якщо у топі сторінок з 0 кліків стоять
/index.php?route=product/search&search=...— пошук провалюється. - Покупець скаржиться на кшталт «у вас немає такого, я перевіряв» — а ви відкриваєте каталог і знаходите товар за 2 секунди.
- Менеджери чату/телефону щодня шукають товари за покупців. Якщо хтось у вашій команді став «живим пошуком» — стандартний LIKE-пошук вже не справляється.
За результатами аудитів магазинів-клієнтів та різними дослідженнями e-commerce пошуку: до 15% пошукових запитів повертають 0 результатів, хоча релевантний товар у каталозі є. Це не баг налаштувань. Це фундаментальне обмеження стандартного пошуку OpenCart.
5 причин, чому стандартний пошук OpenCart провалюється
1. Морфологія: «чайники» ≠ «чайник»
OpenCart по дефолту шукає через WHERE name LIKE '%query%'. Це значить: запит «чайники» не знайде товар з назвою «Чайник електричний 1.7л», бо рядок чайники у назві відсутній. Українська/російська/польська/німецька — всі сильно flective мови, де одне слово має 6-12 форм. Стандартний LIKE сліпий до цього.
Workaround «додамо %чайник%» допомагає в одному напрямку, але ламається на інших словах: «дитячі» vs «дитячий», «кросівки» vs «кросовок».
2. Опечатки: «iPhne» = 0 результатів
За різними дослідженнями e-commerce пошуку, до 15% мобільних запитів містять опечатки. LIKE-пошук не має fuzzy-matching: одна літера переплутана — і товар не знаходиться. У OpenCart немає вбудованого SOUNDEX або Levenshtein-логіки.
3. Синоніми: «холодильник» ≠ «фрідж»
Покупець може шукати «ноут», а товар у вас названий «ноутбук Lenovo». Або «утюг» (рос.) vs «праска» (укр.). LIKE не розуміє синонімів — потрібен синонімічний словник, якого OpenCart не має. Maintain цього словника вручну на 3000 SKU = 80+ годин.
4. Мовний бар'єр: магазин трьома мовами, пошук — одна мова
У вас каталог в трьох локалях: укр/рос/англ. Покупець з російським UI вводить запит латиницею («steklokeramika»), а у БД назва «Склокераміка» — пошук падає. OpenCart не має transliteration або cross-language matching.
5. Релевантність: «чорний шкіряний диван» — 247 результатів
Навіть коли LIKE щось знаходить, він не сортує за релевантністю. Запит «чорний шкіряний диван» матчить 247 товарів, серед яких на першій сторінці — диванні подушки, накидки, пуфи. Сам диван — на сторінці 14. Покупець не дійде.
OpenCart за замовчуванням сортує за p.sort_order ASC, а не за тим, як добре товар підходить запиту. Це коренева проблема.
LIKE vs Full-Text vs AI embeddings — технічне порівняння
| Можливість | Стандартний LIKE | MySQL Full-Text | AI embeddings |
|---|---|---|---|
| Морфологія | ❌ | ≈ для англ. | ✅ 100+ мов |
| Опечатки | ❌ | ❌ | ✅ |
| Синоніми | ❌ | ручний словник | ✅ автоматично |
| Cross-language | ❌ | ❌ | ✅ |
| Relevance ranking | ❌ | базовий BM25 | ✅ semantic |
| Швидкість на 10k SKU | ~500ms | ~50ms | ~50ms |
| Налаштування | з коробки | індекс + стоп-слова | модуль + reindex |
Чому Full-Text не рятує. MySQL FT-індекси — це покращення над LIKE, але вони все ще працюють на рівні токенів. Морфологія підтримується тільки для англійської (через стемер). Для української/російської потрібні зовнішні аналізатори (Sphinx, Elastic) — і вони не вирішують опечатки/синоніми/cross-language.
Чому AI embeddings справляються. Embedding-модель (наприклад, multilingual-e5-large) перетворює текст на 1024-вимірний вектор, де семантично близькі поняття знаходяться поруч у просторі. Для ілюстрації семантичної близькості: «чайник» і «чайники» дають косинус приблизно 0.97. «iPhne» і «iPhone» — близько 0.93. «ноут» і «ноутбук» — близько 0.91. Пошук стає нечутливим до форми слова, мови та опечаток.
Як виміряти проблему у вашому магазині
Перш ніж щось ставити, виміряйте поточний стан. Три способи:
Спосіб 1: Google Search Console (5 хвилин)
- Відкрийте GSC → Performance → Pages
- У фільтрі URL впишіть
route=product/search - Подивіться топ-50 пошукових сторінок із кліками. Скільки з них реально мають релевантний товар у вашому каталозі?
Спосіб 2: GA4 Search Term Report (10 хвилин)
- GA4 → Reports → Engagement → Pages and screens
- Фільтр: page path contains
search= - Сортуйте за Sessions DESC. Перевірте топ-20 запитів вручну в магазині.
Спосіб 3: SQL-запит до OpenCart (3 хвилини, найточніше)
OpenCart за замовчуванням не логує пошукові запити. Додайте логування або використайте лог Apache:
grep -oE "search=[^&\" ]+" /var/log/apache2/access.log | sort | uniq -c | sort -rn | head -50
Виведе топ-50 пошукових запитів за період. Тепер переберіть кожен і зайдіть у магазин — скільки повертає 0?
Рішення: AI Search v1.0.5 за 5 хвилин
Замість того щоб писати власний морфологічний аналізатор для української/російської (3-4 місяці роботи) або платити Klevu від $99/місяць — встановіть AI Search v1.0.5. Безкоштовно для магазинів до 200 SKU, $12/міс на 2 000 SKU (Starter). Робить усе з таблиці вище з коробки.
Швидка установка
- Зареєструйтесь на ai-search.cc — 30 секунд через Google login.
- Завантажте
aisearch.ocmod.zipз кабінету. - В адмінці OpenCart: Extensions → Installer → Upload → виберіть zip → Continue.
- Extensions → Modifications → Refresh.
- Extensions → Extensions → Modules → знайти AI Search → Install → Edit → вставити license key з кабінету → Save.
- Натисніть Reindex now. Зазвичай завершується за 30-90 секунд на каталог 1-3k SKU.
Все. Перейдіть на frontend і спробуйте свій найгірший пошуковий запит. Має знайти.
Детальніше у документації
Покрокова інструкція з можливими проблемами і їх рішеннями — у розділі Installation та FAQ.
Кейс isklad.com.ua: релевантність з 31% до 92.7%, bounce -26 п.п.
isklad.com.ua — український магазин посуду та аксесуарів, ~30 000 SKU, OpenCart 3, трилокальний (укр/рос/англ).
До AI Search:
- 30% пошукових запитів повертали 0 результатів за фактичної наявності товару.
- Bounce з пошукових сторінок — 78%.
Після установки AI Search v1.0.5:
- Релевантність topk-3: 92.7% (виміряно вручну на 100 запитах).
- Морфологія/опечатки/синоніми/3 мови — працює без додаткових налаштувань.
- Bounce з пошукових сторінок: 52% (-26 п.п.).
Сетап зайняв 1 годину разом з reindex 30 000 SKU.
FAQ
Чи потрібен зовнішній сервер для AI?
Ні. AI Search надає GPU-сервери включно з тарифом. Embedding-модель крутиться на нашій інфраструктурі — ваш OpenCart робить лише API-виклик через HTTPS і отримує ID товарів. Жодних ML-знань не потрібно.
Як це впливає на швидкість сайту?
Позитивно. AI Search кешує embeddings запиту, тому повторні запити повертаються за 5-10ms. Пошукова сторінка стає швидшою за стандартний OpenCart-search.
Що з SEO? Не зашкодить?
Ні. AI Search не змінює URL-структуру і не впливає на canonical/hreflang. Просто покращує релевантність результатів — а це позитивний сигнал для Google.
Працює з OpenCart 3 та 4?
Так, dual-build один zip-архів. Установник автоматично визначає версію OpenCart. Підтримуємо всі версії OC 3.0.x та 4.0.x.
Що робити, якщо у мене більше 200 SKU?
Тарифи: Starter $12/міс — 2 000 SKU, Business $29/міс — 10 000 SKU, Pro $79/міс — 50 000 SKU, Enterprise $199/міс — необмежено. Без додаткових платежів за GPU чи трафік.