UNCLESAMOC2.3 / OC3 / OC4
05
uncle_parserCompetitor Parser
Автоматичний імпорт товарів з будь-яких сайтів до вашого інтернет-магазину. Налаштували один раз — модуль сам парсить за розкладом, завантажує фото, створює категорії та оновлює ціни.
ОГЛЯД
Competitor Parser — дозволяє автоматично імпортувати товари та категорії з будь-яких сторонніх сайтів прямо до вашого інтернет-магазину. Налаштовуєте один раз — далі все працює за розкладом без вашої участі.
СКРИНШОТИ




МОЖЛИВОСТІ
▸ Що парсить
Основні поля — назва, опис (HTML зберігається), модель, артикул (SKU), ціна, акційна ціна, кількість на складі.
Зображення — головне фото та вся галерея; зображення всередині HTML-опису теж завантажуються та замінюються на локальні посилання; стиснення та ресайз при завантаженні; підтримка WebP з автоконвертацією в JPG.
Атрибути — парсить пари назва/значення з таблиць характеристик; підтримка групування за розділами («Пам'ять», «Камера», «Живлення») як окремих груп атрибутів.
Опції — варіанти типу Розмір, Колір та будь-які інші; кілька слотів опцій для сайтів з різним верстанням; до кожного значення можна прив'язати ціну та кількість.
Категорії — парсить хлібні крихти; два режими: всі товари в одну категорію або автоматичне відтворення ієрархії. Категорії створюються в OpenCart автоматично.
Зображення — головне фото та вся галерея; зображення всередині HTML-опису теж завантажуються та замінюються на локальні посилання; стиснення та ресайз при завантаженні; підтримка WebP з автоконвертацією в JPG.
Атрибути — парсить пари назва/значення з таблиць характеристик; підтримка групування за розділами («Пам'ять», «Камера», «Живлення») як окремих груп атрибутів.
Опції — варіанти типу Розмір, Колір та будь-які інші; кілька слотів опцій для сайтів з різним верстанням; до кожного значення можна прив'язати ціну та кількість.
Категорії — парсить хлібні крихти; два режими: всі товари в одну категорію або автоматичне відтворення ієрархії. Категорії створюються в OpenCart автоматично.
▸ Джерела даних
Link — сторінка каталогу з пагінацією, парсер сам переходить сторінками.
Sitemap — XML карта сайту, бере список URL товарів безпосередньо.
Feed / RSS / Atom — будь-який XML-фід з товарами.
Пагінація підтримується двома способами: CSS/XPath-селектор кнопки «Наступна сторінка» або шаблон URL (?page={n}).
Sitemap — XML карта сайту, бере список URL товарів безпосередньо.
Feed / RSS / Atom — будь-який XML-фід з товарами.
Пагінація підтримується двома способами: CSS/XPath-селектор кнопки «Наступна сторінка» або шаблон URL (?page={n}).
▸ Режими імпорту
Тільки нові — існуючі товари не чіпаються
Тільки оновлення — оновлює існуючі, нові не створює
Нові + оновлення — створює нові та оновлює існуючі
Повна синхронізація — додатково видаляє з магазину товари, яких більше немає в джерелі
Тільки оновлення — оновлює існуючі, нові не створює
Нові + оновлення — створює нові та оновлює існуючі
Повна синхронізація — додатково видаляє з магазину товари, яких більше немає в джерелі
▸ Фонова обробка та розклад
Парсинг виконується через cron-запит — без обмежень часу виконання, без тайм-аутів. Кожен профіль має свою cron-посилання, просто додайте її до планувальника завдань сервера. Розклад налаштовується у профілі (cron expression).
Між запитами до сайту-джерела пауза 0.5 секунди, браузерні заголовки та підтримка cookie — для обходу базового захисту від ботів.
Між запитами до сайту-джерела пауза 0.5 секунди, браузерні заголовки та підтримка cookie — для обходу базового захисту від ботів.
▸ Реєстр та тестування
Розумний матчинг — модуль веде реєстр усіх спарсених товарів та категорій. При повторному запуску не створює дублі: шукає існуючий товар за URL, потім за артикулом, потім за назвою. Якщо URL змінився — реєстр оновлюється автоматично.
Тестування без ризику:
Тест сторінки категорії — показує скільки товарів знайдено та приклади посилань
Тест товару — парсить одну сторінку і показує всі знайдені поля; нічого не зберігається у БД
Діагностика — по кожному полю видно: «знайдено» / «не знайдено» / «порожній» / «селектор не вказано»
Тестування без ризику:
Тест сторінки категорії — показує скільки товарів знайдено та приклади посилань
Тест товару — парсить одну сторінку і показує всі знайдені поля; нічого не зберігається у БД
Діагностика — по кожному полю видно: «знайдено» / «не знайдено» / «порожній» / «селектор не вказано»
▸ Сервісні інструменти
Управління SEO URL — сканує ЧПУ-адреси магазину, знаходить товари та категорії без slug, заповнює відсутні, виправляє адреси, що дублюються.
Очищення зображень — знаходить файли, які більше не використовуються в жодному товарі, показує скільки місця звільниться і видаляє однією кнопкою.
Очищення реєстру — видаляє записи, у яких товар або категорія вже видалені через адмінку.
Відключення неповних товарів — знаходить та відключає товари без фото або з ціною 0.
Очищення зображень — знаходить файли, які більше не використовуються в жодному товарі, показує скільки місця звільниться і видаляє однією кнопкою.
Очищення реєстру — видаляє записи, у яких товар або категорія вже видалені через адмінку.
Відключення неповних товарів — знаходить та відключає товари без фото або з ціною 0.
▸ Інтерфейс та вимоги
Весь модуль управляється з однієї сторінки в адмінці OpenCart. Підтримка темного режиму. Лог у реальному часі — видно що відбувається прямо зараз. Кілька профілів — кожен зі своїми налаштуваннями, розкладом та джерелом. Реєстр категорій та товарів з пагінацією та швидкими посиланнями на редагування.
Вимоги: розширення cURL, Cron на сервері, PHP розширення: curl, gd, dom.
Вимоги: розширення cURL, Cron на сервері, PHP розширення: curl, gd, dom.
ЖУРНАЛ ЗМІН
Нові можливості:
Виправлено:
- Підтримка OpenCart 4 — модуль тепер працює і на актуальній OpenCart 4, з тією ж логікою парсингу, що і у версії для OpenCart 2.3/3.x та ocStore
- Швидкий обхід категорій — окремий режим: спочатку будується все дерево категорій донора без парсингу товарів, потім автоматично ставиться в чергу довантаження товарів по кожній кінцевій категорії
- Точковий перепарсинг категорії — можна перепарсити одну конкретну категорію з вже зібраного дерева, не перезапускаючи парсинг усього профілю заново
- Масове видалення та обслуговування каталогу — пакетне видалення товарів і категорій по всьому профілю або по конкретній категорії; окремий інструмент «Порожні категорії»; повторні кліки по кнопці видалення більше не створюють задач-дублів
- Вкладка «Черга завдань» — усі поточні фонові завдання по всіх профілях в одному місці: статус, прогрес, час створення та запуску; точкова зупинка будь-якого завдання та очищення історії завершених
- Експорт та імпорт профілів — налаштування профілю вивантажуються у файл і завантажуються на іншому магазині чи сервері
- Мультимовність із коробки — спарсений контент автоматично зберігається одразу в усі потрібні мови магазину, набір мов налаштовується для кожного профілю окремо
- Гнучка робота з брендами — бренд визначається автоматично за даними донора або призначається дефолтний для профілю; можна заборонити чіпати бренд, призначений вручну в OpenCart, при повторному оновленні товару
Виправлено:
- Обхід каталогу донора тепер коректно обробляє випадки, коли список товарів або список підкатегорій сам розбитий на кілька сторінок, і не зациклюється, якщо донор віддає «нескінченну» пагінацію
- З опису товару та додаткових HTML-блоків опису вичищаються посилання та службові атрибути (id), які раніше копіювалися з сайту-донора як є
- Обробка батчу обмежена за часом — захист від тайм-аутів хостингу на великих каталогах
Безпека:
Продуктивність:
Виправлено:
- Посилено захист від заміни мети запиту при зборі даних із сайту-донора (перевірка адреси перед запитом та на кожному переході по редиректу, блокування звернень до внутрішніх/локальних адрес).
- Додано авторизацію для автоматичного запуску завдань за розкладом (cron) — запуск стороннім запитом більше неможливий.
- Перевірка SSL-сертифіката сайту-донора включена за замовчуванням; для окремих профілів її можна вимкнути вручну, якщо це потрібно.
- Обмежений доступ до розділів та дій модуля для користувачів із недостатнім правом.
- Усунуто можливість виконання стороннього коду через перегляд опису товару.
Продуктивність:
- Прискорено завантаження зображень товарів при парсингу за рахунок паралельного завантаження замість послідовного.
Виправлено:
- Виправлено помилку, через яку обробка карти сайту (sitemap), що містить посилання на інші карти сайту (sitemap index), могла перериватися з помилкою.
- Виправлені та перекладені тексти інтерфейсу модуля всіма мовами, що підтримуються.
Безпека:
Виправлено:
Нові можливості:
- cron-endpoint захищений токеном - анонімний запуск парсингу заблокований
- захист від SSRF у завантажувачі зображень — блокування приватних IP-діапазонів та небезпечних протоколів
- перевірка прав доступу (modify) на всіх діях адмін-контролера, що мутують
Виправлено:
- дублювання товарів, створених поза модулем парсингу
Нові можливості:
- AJAX-пагінація реєстру, таблиці Категорії та Товари завантажуються через AJAX, по 50 записів, lazy-load при першому відкритті вкладки
- Управління SEO URL
- Управління SEO URL (сервісна вкладка), сканування, заповнення відсутніх, виправлення дублів; три режими суфікса: number / language / duplicate
- Очищення зображень (сервісна вкладка), сканування файлів, що не використовуються, по папках, видалення із захистом зображень з описів
- Очищення реєстру (сервісна вкладка), видалення записів у яких OC-об'єкт вже видалено
Нові можливості:
- режим повної синхронізації, видаляє з OC товари яких більше немає в джерелі
- Опції товару, парсинг варіантів (розмір, колір та ін.), кілька слотів опцій, ціна та кількість на варіант
- згруповані атрибути, підтримка розділів характеристик («Пам'ять», «Камера» і т.д.), назва групи за замовчуванням
- шаблонна пагінація, поле pagination_url_template з плейсхолдером {n}, авто-визначення поточного номера сторінки; підтримка повного URL, path та query-параметра
- Вирізання слів, strip_words видалення заданих фраз з назви, моделі, артикулу та опису; для HTML обходить лише текстові вузли
- Фоллбек хлібних крихт, якщо товар не має крихт, використовуються крихти сторінки-джерела (запрошуються одноразово перед обробкою батча)
- Завантаження зображень з опису,
теги в HTML описі завантажуються, зберігаються локально, src в описі замінюється на локальний шлях