📑 В этой статье
- TL;DR — ключевые цифры до/после
- О магазине: 30 000 SKU посуды на OpenCart 3
- До AI Search: 30% zero-results и слабая релевантность
- Почему isklad выбрал AI Search вместо Klevu/Algolia
- Установка и reindex 30 000 SKU за 1 час
- После: 92.7% релевантность, bounce -26 п.п., +14% конверсии
- Технические детали индексации без падения
- Что мы вынесли из этого кейса
- FAQ
Осенью 2025 к нам обратился isklad.com.ua — украинский интернет-магазин посуды, дома и аксессуаров с каталогом ~30 000 SKU на OpenCart 3, в трёх локалях (украинская/русская/английская). Жалоба простая: «покупатели пишут в чат, что не могут найти товар, хотя он есть в каталоге». Разбираем как это выглядело в цифрах и как мы это исправили.
TL;DR — ключевые цифры до/после
| Метрика | До AI Search | После AI Search v1.0.5 | Изменение |
|---|---|---|---|
| Релевантность top-3 (manual review) | ~58% | 92.7% | +34.7 п.п. |
| Zero-result rate | ~30% | ~3% | -27 п.п. |
| Bounce с поисковых страниц | 78% | 52% | -26 п.п. |
| Поддержка опечаток | нет | есть | — |
| Cross-language matching | нет | есть (UA/RU/EN) | — |
| Сетап + reindex | — | ~1 час | — |
О магазине: 30 000 SKU посуды на OpenCart 3
isklad.com.ua — украинский интернет-магазин с собственной shop+склад моделью. Особенности:
- Очень широкий каталог: столовые наборы, чашки, тарелки, стаканы, кухонная техника, текстиль для кухни.
- Три языка: украинский + русский (UA-рынок) + английский (туристы/иностранные клиенты).
- Сложная терминология: стеклокерамика / ceramic / керамика — одни и те же материалы разными словами.
- OpenCart 3.0.4 + кастомизированная тема + 8 дополнительных модулей.
До AI Search: 30% zero-results и слабая релевантность
До нашего внедрения isklad использовал стандартный OpenCart-поиск + один из популярных "smart search" модулей из маркетплейса. Реальная картина в GA4 за месяц:
Самые болезненные типы запросов: морфология UA/RU, опечатки на mobile, cross-language, синонимы.
Почему isklad выбрал AI Search вместо Klevu/Algolia
| Решение | Месячная стоимость для 30k SKU | Сложность интеграции |
|---|---|---|
| Klevu | ~$299/мес (Pro) | JS-overlay, 2-7 дней onboarding |
| Algolia | ~$500/мес | API-интеграция, дорого для UA-рынка |
| AI Search v1.0.5 | $29/мес (Business) | 5-минутный zip-installer |
Экономия за год vs Klevu: $3 240. Vs Algolia: ~$5 600.
Установка и reindex 30 000 SKU за 1 час
- 0:00 — регистрация в кабинете, оплата плана Business
- 0:02 — установка zip через Extensions → Installer
- 0:04 — Refresh modifications, license key, активация
- 0:05 — Reindex now. Магазин остаётся доступен покупателям
- 0:08 — первые 1000 товаров в БД
- 0:32 — 50% (15 000 товаров)
- 0:54 — 100% (30 000 товаров проиндексировано в трёх языках = 90 000 embeddings)
- 0:55 — переключили search-handler на AI
- 1:00 — финальная проверка топ-50 запросов из GSC: все находят товары. Готово.
После: 92.7% релевантность, bounce -26 п.п., +14% конверсии
Релевантность
Владелец провёл manual review топ-100 запросов: 92.7% запросов имели релевантный товар в топ-3. До AI Search ~58%.
Zero-result rate
Упал с ~30% до ~3%.
Bounce rate
Bounce с поисковых страниц: 78% → 52% (-26 п.п.).
Технические детали индексации без падения
Архитектура запроса
- Покупатель вводит запрос (например "белая керамическая чашка")
- OpenCart-controller через event hook отправляет текст к AI Search API
- API прогоняет запрос через embedding-модель
multilingual-e5-large-instructна GPU. Получает 1024-мерный вектор - Вектор сравнивается с 90 000 product-векторов в packed binary формате
- Top-K (default K=40) ID товаров возвращается в OpenCart
- OpenCart-controller рендерит товары через стандартный pipeline
Шаг 3 (embedding): ~50ms. Шаг 4 (similarity search): ~30ms. Network: ~70ms. Render: ~50ms. Всего ~200ms.
Reindex 30 000 SKU без падения
oc_ai_embeddings). Нагрузка на shop ~5% CPU.Для isklad: 30 000 товаров × 3 языка = 90 000 embeddings. Батч 50 товаров на GPU за ~1 секунду. 1800 батчей = ~30 минут теоретически. Реальное время: 49 минут.
Хранение в packed binary формате
Каждый embedding — 1024 числа float32 = 4096 байт. На 90 000 embeddings — ~350 МБ.
Раньше хранили в JSON-формате (~8000 байт/embedding). В v1.0.5 перешли на packed float32 binary (через PHP pack('f*', ...)) с magic-header AIS1:
- ~2× меньше storage (350 МБ вместо ~700 МБ)
- ~3-5× быстрее read/parse
- Composite SQL index на
(store_id, language_id, type)— основной фактор ускорения
Что мы вынесли из этого кейса
- Сделайте baseline-измерения ДО запуска. Без цифр — "стало лучше" просто ощущение.
- Reindex на проде — нормально при правильной архитектуре. Embedding на нашем боку — shop не страдает.
- Multilingual-first модель критична для UA-рынка.
- Manual review релевантности > automated benchmarks.
- Cancel anytime — продающая фича.
Для агентств и OpenCart-разработчиков
Если вы внедряете OpenCart-магазины для клиентов, AI Search закрывает одну из самых частых жалоб — поиск, который не находит товары. Кейс isklad — наш ориентир: 92.7% релевантность top-3, bounce -26 п.п., +14% конверсии за 4 недели.
Что вы получаете
- 20% recurring комиссия с каждой подписки клиента (Starter/Business/Pro/Enterprise)
- Free Business-план на 30 дней для дев-копии — тестируете на реальном каталоге клиента
- Техподдержка Telegram/email во время внедрения
- White-label опция по запросу для агентств с 5+ клиентами
Кому подходит
Магазины 1k–50k SKU, 2+ языка, жалобы на качество поиска. Особенно эффективно для UA/RU/PL/DE-каталогов. Мебель, посуда, бытовая техника, одежда, авто-запчасти, книги.
Контакт для сотрудничества: partners@ai-search.cc — напишите сколько клиентов ведете, обсудим условия.
FAQ
Сколько займёт reindex для 50 000 SKU?
~80-90 минут на Business/Pro. ~30-40 минут на Enterprise.
А если 100 000 SKU?
Нужен Enterprise ($199/мес unlimited). Reindex 100k — 2-3 часа.
Нужен ли reindex после добавления товаров?
Нет. Auto-индексация в фоне через cron каждые 15 минут.
Что с переходным состоянием при reindex?
Fallback на стандартный LIKE. После завершения индексации — auto-switch на AI.
Можно ли сделать такой же кейс для моего магазина?
Да. Зарегистрируйтесь, установите Free (до 200 SKU). Для 1k+ — выберите тариф под ваш объём.