Файл із пристрою
Підтримуються дозволені адміністратором формати, стандартно JPG, JPEG, PNG та WEBP.
Локальний пошук товарів за фотографією, URL, drag-and-drop або зображенням із буфера з індексацією каталогу у vector DB.
SiteZilla Image Searcher додає в OpenCart 2.3 пошук товарів за зображенням. Покупець може завантажити фотографію, перетягнути файл у модальне вікно, вставити картинку з буфера обміну або передати прямий URL. Модуль надсилає зображення на локальний AI-сервер, отримує список схожих product_id та показує повноцінні картки товарів засобами самого OpenCart.
Біля звичайного пошуку з’являється окрема кнопка пошуку за фото. Вона відкриває адаптивне модальне вікно, ізольоване від стандартного Journal/OpenCart typeahead. Користувач додає зображення одним із доступних способів, бачить попередній перегляд і запускає пошук.
Підтримуються дозволені адміністратором формати, стандартно JPG, JPEG, PNG та WEBP.
Фотографію можна перетягнути безпосередньо в область завантаження.
Користувач може вставити скопійоване зображення без попереднього збереження у файл.
Окреме поле дозволяє передати посилання на доступне зображення.
AI-сервер повертає масив результатів у форматі {product_id, score} або список product_ids. Модуль нормалізує відповідь, групує дублікати за товаром, сортує позиції за оцінкою схожості та відсіює результати нижче встановленого min_score. Після цього OpenCart сам завантажує назву, ціну, акційну ціну, опис, посилання і мініатюру через стандартну модель каталогу.
| Елемент картки | Джерело | Керування |
|---|---|---|
| Фото, назва, опис | Каталог OpenCart | Автоматично |
| Звичайна та акційна ціна | Модель товару OpenCart | Автоматично |
| Відсоток схожості | Score AI-сервера | Можна приховати |
| Кнопка «До кошика» | Стандартний cart.add() | Увімкнення в адмінці |
| Перегляд товару | SEO-посилання товару | Увімкнення в адмінці |
| Обране та порівняння | Стандартні функції OpenCart | Окремі перемикачі |
OpenCart-модуль не генерує embeddings самостійно. Він підключається до окремого HTTP-сервісу, який приймає фотографії, будує вектори ознак і працює з векторною базою. Адреса сервера, API-ключ і timeout задаються в адміністративній частині.
Формується payload із product_id, головним і додатковими зображеннями, їхніми hash, назвою, model, SKU, категоріями, виробником, статусом, кількістю, мовою та магазином.
Сервіс отримує POST /index/product, обчислює embeddings і записує точки у Qdrant або іншу vector DB.
Модуль викликає POST /search/image та передає limit, min_score, language_id, store_id, status, категорію й ознаку наявності.
Сервер повертає ідентифікатори та score, а магазин добирає актуальні дані товарів із власної бази.
| Метод | Endpoint | Призначення |
|---|---|---|
| GET | /health | Перевірка доступності AI-сервера |
| GET | /stats | Статистика серверного індексу |
| POST | /index/product | Додавання або оновлення товару та його зображень |
| POST | /search/image | Пошук найближчих товарів за завантаженим зображенням |
| POST | /delete/product | Видалення точок товару з векторного індексу |
Адміністратор може відправити один конкретний товар, попередньо переглянути сформований JSON payload або запустити пакетну обробку каталогу. Стан кожного зображення зберігається локально, тому можна відрізнити нові, проіндексовані, змінені, пропущені, видалені та помилкові записи.
Окремі AJAX-дії дозволяють порахувати майбутню вибірку та показати список товарів до фактичного надсилання на AI-сервер. Це корисно для перевірки категорій, виробників, залишків і текстового фільтра перед великою індексацією.
Модуль створює локальні таблиці індексу, журналу та API-викликів. Адміністратор бачить дату, endpoint, HTTP-статус, product_id, відповідь backend і текст помилки. Також доступні перевірка /health, запит /stats, очищення журналу та тестовий пошук.
| Локальна таблиця | Що зберігається |
|---|---|
oc_sitezilla_image_searcher_index | product_id, image_path, hash, point ID, модель вектора, версія, статус, тестовий score та остання помилка |
oc_sitezilla_image_searcher_log | тип події, повідомлення та дата |
oc_sitezilla_image_searcher_api_call | endpoint, HTTP-статус, product_id, відповідь і помилка |
Для фронтенду можна визначити кількість результатів, мінімальний score, максимальний розмір файлу, дозволені типи зображень, категорію пошуку та правило «тільки в наявності». URL-пошук, вставка з буфера й drag-and-drop вмикаються незалежно один від одного.
У комплекті передбачено шістнадцять готових кольорових тем: green, pink, rose, coral, peach, apricot, mint, sage, olive, sky, azure, lavender, lilac, berry, graphite та cocoa. Окремо можна задати основний колір, hover, м’який фон і колір тексту кнопки. Підписи кнопки та заголовок модального вікна підтримують мовні значення.
Широке модальне вікно, зона завантаження, preview та картки результатів у сітці.
Блоки перебудовуються в одну колонку, а картки зберігають читабельність.
Кнопки розтягуються на ширину, результати переходять в одну колонку, елементи мають збільшені touch-зони.
У модулі є мовні файли для української, російської та англійської. Кастомний текст кнопки й заголовок вікна зберігаються окремо для кожної мови OpenCart.
modify для адміністративних AJAX-дій;getimagesize();Для реальної роботи необхідний окремий AI backend, який завантажує модель комп’ютерного зору, генерує embeddings і взаємодіє з Qdrant або іншою vector DB. Його можна розгорнути на окремій Ubuntu VM, у Docker або на виділеному сервері. Ресурси залежать від моделі, розміру каталогу, кількості зображень і потрібної швидкості.
Оцінити кількість товарів і фотографій, формати, дублікати, якість зображень та структуру категорій.
Підняти API, модель embeddings і vector DB, додати healthcheck та API key.
Відправити 10–50 товарів, перевірити payload, відповіді й якість найближчих сусідів.
Налаштувати min_score та limit на реальних фотографіях користувачів.
Запустити пакетну обробку з безпечним batch size і паузами.
Увімкнути кнопку, перевірити мобільний вигляд, аналітику та журнал помилок.
Пошук схожої моделі за фотографією, навіть коли користувач не знає артикул чи колір.
Пошук деталі за формою, роз’ємами або зовнішнім виглядом.
Підбір виробів із близьким стилем, кольором і силуетом.
Швидкий перехід від фотографії покупця до набору найближчих пропозицій.
Так. Ця версія спеціально відокремлена від старої Google Vision-реалізації та очікує локальний AI API.
Так. README прямо передбачає Qdrant або іншу векторну базу, а конкретна реалізація залишається на стороні AI-сервера.
Так. Кількість додаткових зображень задається в налаштуваннях.
Так. Для фронтенду доступний category_id, а для індексації — вибір кількох категорій і включення підкатегорій.
Так, але badge можна вимкнути в адміністративній частині.
OCMOD передбачає вставку кнопки біля стандартного header search і Journal search. Після встановлення потрібно оновити модифікації та перевірити конкретну тему.
Надішліть версію OpenCart, тему, кількість товарів і фотографій, а також інформацію про сервер. Після цього можна оцінити AI backend, індексацію та адаптацію фронтенду.
Обговорити впровадженняSiteZilla Image Searcher дає покупцю альтернативний шлях до товару: не через назву чи артикул, а через фотографію. OpenCart залишається джерелом актуальних цін, наявності, назв і посилань, а AI-сервер відповідає тільки за векторний пошук.
Користувач додає фотографію та отримує список схожих товарів. Відсоток схожості, кнопка кошика, перегляд, wishlist і compare налаштовуються окремо.
Вигода: менше тупикових запитів у каталозі.
Назва, фото, ціна та посилання завжди беруться з актуального каталогу.
Завантаження JPG, JPEG, PNG або WEBP із пристрою.
Пошук за прямим HTTP/HTTPS посиланням на картинку.
Вставка скопійованого зображення без збереження.
Перетягування фотографії в активну область модального вікна.
OpenCart керує товарами, AI-сервер знаходить схожість, а покупець бачить звичайні актуальні картки магазину.
Base URL, API key, timeout, /health і /stats.
Limit, min_score, MIME, розмір файлу, категорія та залишок.
16 пресетів, кастомні кольори й локалізовані підписи.
Головне фото, додаткові фото, batch і фільтри.
Події модуля, статуси товарів і помилки індексації.
Endpoint, HTTP status, product_id, response та error.
Спочатку адміністратор переглядає кількість і список товарів, потім запускає пакети розміром до 100 позицій із паузою між запитами.
Фільтри зберігаються у налаштуваннях модуля.
Виробники, категорії, підкатегорії, status, stock, image state і локальний index state.
| Статус | Значення |
|---|---|
| not_indexed | товар ще не відправлявся |
| indexed | backend прийняв товар |
| changed | hash фотографії змінився |
| skipped | немає придатних зображень |
| error | помилка OpenCart або AI API |
| deleted | товар позначено видаленим у vector DB |
Швидка перевірка доступності backend.
Статистика серверного індексу.
Індексація товару та масиву його зображень.
Пошук найближчих product_id за файлом або URL.
Видалення векторних точок конкретного товару.
Авторизація запитів між магазином і backend.
Векторний пошук складається з кількох систем. Журнал повинен показувати, на якому етапі виникла помилка: підготовка товару, HTTP-запит, модель embeddings чи vector DB.
Пошук моделі за фото, силуетом і кольором.
Підбір схожої пари без точного артикула.
Пошук деталі за формою та візуальними ознаками.
Пошук схожих товарів за стилем і фактурою.
Надішліть версію OpenCart, тему, кількість товарів і фотографій та доступні серверні ресурси. Ми підготуємо тестову індексацію і перевіримо якість пошуку.
Локальний пошук товарів за фотографією, URL, drag-and-drop або зображенням із буфера з індексацією каталогу у vector DB.
Обговорити модуль
Опишіть задачу — ми розглянемо варіанти та запропонуємо наступний крок.