Сборщик
Обходит каталог поставщика, открывает карточки и забирает цены, остатки, характеристики, описания и фото. Результат складывается в промежуточную базу.
Интернет-магазин климатической техники на OpenCart получил систему, которая забирает данные поставщика, проверяет их по вашим правилам и обновляет витрину по расписанию. Цены, остатки, фото и описания актуальны без ручной работы.
Поставщик ведёт свой каталог на сайте. Цены и наличие меняются каждый день, появляются новые модели, часть товаров снимают с продажи. Магазину нужна не вся витрина, а определённые категории и бренды.
Нужна была система, которая сама собирает данные поставщика, оставляет только нужное и обновляет магазин, а о проблемах сообщает до того, как их заметит покупатель.
Три части, которые работают по расписанию на обычном хостинге и связаны промежуточной базой.
Обходит каталог поставщика, открывает карточки и забирает цены, остатки, характеристики, описания и фото. Результат складывается в промежуточную базу.
Раз в 15 минут переносит из промежуточной базы в магазин только то, что изменилось: создаёт новые товары, обновляет существующие, раскладывает по категориям.
Показывает очередь, историю запусков и товары. В ней же лежат все настройки, поэтому правки не требуют программиста.
Почему промежуточная база. Она стоит между поставщиком и магазином. Сборщик пишет в неё данные как есть и ничего не меняет в магазине, импортёр читает уже собранное и применяет ваши правила. Поэтому сбой на стороне поставщика остановит сбор, а витрина продолжит работать на последних корректных данных.
Каждая карточка проходит один и тот же маршрут.
Сборщик забирает со страницы поставщика цену, остаток, название, характеристики, описание, фото и категорию. Всё записывается без правок, в исходном виде.
Импортёр отсекает лишнее: категории и бренды, которых нет в вашем списке, товары с «уценкой» в названии, при желании товары без цены или без наличия. Для отдельной категории можно задать свой набор брендов.
Категории поставщика привязываются к вашим: существующие сопоставляются, недостающие создаются, а правила по названию товара переносят его в нужный раздел. Так же находятся или создаются производители, характеристики и опции.
Заголовки, описания и адреса страниц строятся по вашим шаблонам или берутся у поставщика. Правила замены убирают из текстов упоминания поставщика и лишние фразы.
К цене поставщика применяется ваша формула. Дальше выбирается режим скидки: цена со скидкой, без неё или «псевдо-скидка» с зачёркнутой старой ценой. Акция, поставленная менеджером вручную, остаётся главной.
Новый товар создаётся, существующий обновляется только в изменившихся полях. Фото копируются вместе с карточкой.
Правила применяются отдельным шагом после сбора. Сайт поставщика при этом не нагружается повторно, а каждое правило настраивается в админке отдельно от остальных.
Опишите источник данных и платформу. Скажу, как это можно собрать, какие нужны правила и сколько времени займёт.
Восемь проблем ручного каталога, которые закрыла система.
Каждая карточка перепроверяется через заданный срок. Изменение у поставщика попадает в магазин в течение часов, а не недель.
Вы выбираете категории и бренды. Товары с «уценкой» или «б/у» в названии отсекаются по списку слов.
Если файл не загрузился или оборвался, система находит такие товары и собирает их заново. Лишние фото удаляются сами.
Формула наценки, цена со скидкой или без, «псевдо-скидка». Ручная акция менеджера главнее автоматики.
Мета-теги и ЧПУ строятся по вашим шаблонам. Правила замены убирают название поставщика и лишние фразы.
Дерево категорий, характеристики, производители и опции система заводит сама, правила перекладывают товар в нужный раздел.
С сайта поставщика забираются услуги монтажа и привязываются к 3 400 товарам. Покупатель отмечает монтаж галочкой, в корзине он отдельной строкой.
Остаток снятого товара обнуляется сразу, а если он не появляется заданное число дней, система удаляет его вместе с фото.
Что меняется в повседневной работе магазина.
| Что нужно | Вручную | С автоматизацией |
|---|---|---|
| Обновить цены и остатки | Выгрузка, правка, загрузка в магазин | Происходит по расписанию |
| Добавить новую модель | Создать карточку, загрузить фото, заполнить характеристики | Карточка появляется сама |
| Убрать снятый товар | Заметить, найти, удалить | Остаток обнуляется сразу, карточка удаляется по сроку |
| Поменять наценку | Пересчитать все цены | Меняете формулу в настройках |
| Поправить текст у всех товаров | Править по одному | Одно правило замены |
| Заметить сбой | Узнать от покупателя | Письмо на почту |
Для магазина с ассортиментом в тысячи позиций ручной вариант просто нереален, а автоматизация делает его управляемым.
Система сама сообщает о проблемах, а в админке видно, что произошло при каждом запуске.
Так владелец магазина узнаёт о проблеме раньше покупателя и может решить её, не разбираясь в коде. На скриншоте ниже очередь сбора: видно статус каждой карточки, число попыток и причину последней ошибки, например «страница товара пуста (удалён у поставщика)».
Любой парсер рано или поздно сталкивается с изменениями на сайте-источнике и с ошибками в настройках. Эти случаи мы учли.
За последние недели сайт поставщика сменил технологию разметки, перенёс картинки на другой адрес и ограничил число страниц в разделах. Парсеры, написанные «под страницу», в такие дни ломаются и молчат. Здесь проблема видна сразу: история запусков и письма показывают, что именно перестало собираться, а сбор дорабатывается точечно. Витрина в это время работает на последних корректных данных.
На раннем этапе одна из настроек сроков привела к удалению нескольких тысяч товаров. Витрину восстановили из промежуточной базы, а в систему добавили три предохранителя:
Обычный виртуальный хостинг, без выделенного сервера и сложной инфраструктуры.
Для разных платформ и поставщиков стек подбирается под задачу: например, для WooCommerce вместо импортёра OpenCart используется другой модуль записи.
Что изменилось в повседневной работе магазина.
9 000 товаров обновляются автоматически, ручной работы с прайсами и карточками нет.
Витрина совпадает с данными поставщика с запаздыванием в часы.
Ассортимент, наценка и тексты меняются в админке без программиста.
Владелец узнаёт о сбое раньше покупателя.
Три предохранителя не дадут удалить лишнее при сбое или ошибке настроек.
Можно добавить новые категории, бренды и правила без переделки системы.
Подключаем каталоги поставщиков к OpenCart и другим платформам. Разберём ваш источник и оценим сроки.
Данные поставщика собираются парсером или берутся из выгрузки и сохраняются в промежуточную базу. Затем импортёр по расписанию проверяет их по вашим правилам (категории, бренды, цены, мета-теги) и переносит в магазин только изменения. Так витрина обновляется без ручной работы.
Нет. В этом проекте всё работает на обычном виртуальном хостинге: сборщик и импортёр запускаются по cron, админка открывается в браузере.
Сбор может перестать работать для изменившихся страниц, но это видно сразу: письмо об ошибках и история запусков показывают, что именно сломалось. Витрина в это время продолжает работать на последних корректных данных, а сбор дорабатывается точечно.
Да. Вы выбираете категории и бренды, для отдельной категории можно задать свой набор. Товары с «уценкой» и подобными словами в названии отсекаются, а товары без цены или наличия можно не выгружать.
В админке задаётся формула наценки и режим скидки: цена со скидкой, без неё или «псевдо-скидка» с зачёркнутой старой ценой. Акция, поставленная менеджером вручную, остаётся главной.
Есть три предохранителя: удаление отменяется, если под него попадает слишком большая доля каталога или сбор обошёл мало категорий поставщика, а товар не считается пропавшим, пока его не пересобрали. Данные хранятся в промежуточной базе, откуда их можно восстановить.
Принцип тот же: промежуточная база и отдельный модуль записи в магазин. Для WooCommerce и других платформ делается свой импортёр. Подробнее об импорте — на странице импорт и автообновление цен.
Да, если данные открыты на сайте, их можно собрать парсером. Но если у поставщика есть выгрузка или API, это надёжнее, и я рекомендую начать с них.
Да, работаю удалённо с компаниями из любого региона России.