Импорт прайсов поставщиков для OpenCart 2.3, 3 и 4
Что внутри
- Прайс в XLSX, CSV (UTF-8 и windows-1251), XML и YML
- Загрузка файлом или автоматически по ссылке
- Автоопределение колонок по заголовку прайса
- Поиск товара по артикулу, модели или штрих-коду
- Наценка уровнями от цены поставщика + фиксированная сумма
- Валюта прайса с курсом магазина или собственным
- Округление до гривны, десятки, …,99, …,95, …,50
- Текстовые остатки: «в наличии», «под заказ», «нет»
- Защита от подозрительных изменений цены (лимит в процентах)
- План «было → станет» перед записью в каталог
- Обработка пакетами — файлы на десятки тысяч строк
- Товары, которых нет в прайсе: обнулить или выключить в пределах производителя или категории
- Журнал всех изменений и откат любого запуска одним кликом
- Несколько поставщиков с отдельными правилами (Pro)
- Автоматическое обновление по расписанию через cron (Pro)
Импорт прайсов поставщиков обновляет цены и остатки в OpenCart из файла, который прислал поставщик — Excel, CSV или XML/YML, с компьютера или по ссылке. Есть три сборки: для OpenCart 4.0.2 – 4.1.x, 3.0.2 – 3.0.5.0 и 2.3.0.x; функциональность одинаковая, отличается только пакет.
Любой файл поставщика
Модуль читает XLSX (обычный Excel, без пересохранения в CSV), CSV в UTF-8 или windows-1251 с любым разделителем, а также XML и YML — тот формат, в котором прайсы отдают Rozetka, Prom и большинство украинских дистрибьюторов. Разделитель, кодировка и формат определяются автоматически; лист Excel, количество служебных строк сверху и тег товара в XML при необходимости указываются вручную.
Прайс можно загрузить файлом или дать ссылку — тогда модуль сам забирает его с сайта поставщика при каждом запуске.

Колонки определяются сами
Модуль читает заголовок файла и сам находит, где артикул, где цена, где остаток: понимает «Артикул», «Код товара», «Цена закупочная», «Наличие», «vendorCode», «stock_quantity» и десятки других вариантов написания. Любое соответствие можно переопределить вручную — рядом показаны первые строки файла, чтобы было видно, что именно попадёт в магазин.
Товар находится по артикулу (SKU, MPN или модель), отдельно по модели или по штрих-коду (EAN, UPC, JAN, ISBN) — тем полем, которое реально заполнено в вашем каталоге.
Цена считается по вашим правилам
Цена поставщика не попадает в магазин напрямую. Сначала она переводится из валюты прайса по курсу магазина или по курсу, который вы укажете. Дальше применяется наценка уровнями: до 500 грн — 40%, от 500 до 2000 — 25%, выше — 15% плюс фиксированная сумма, сколько уровней нужно. Затем — округление: до гривны, до десятки или до привычного «…,99», «…,95», «…,50». Есть и нижняя граница цены, ниже которой модуль не опускается.
Остатки понимают не только числа: «в наличии», «под заказ», «нет» превращаются в количество по вашей таблице соответствий. Можно умножать остаток на коэффициент, ограничивать потолком и автоматически выключать товар, когда остаток стал нулём.
Защита от испорченного прайса
Поставщик один раз выгрузил цены в копейках или сдвинул колонку — и весь каталог поехал. Чтобы такого не случилось, укажите лимит изменения в процентах: строки, где цена меняется сильнее, чем разрешено, не записываются, а показываются отдельным списком «Подозрительное изменение». Вы смотрите на них и решаете сами.
Сначала план, потом запись
Модуль никогда не пишет в каталог сразу. Сначала он читает файл, сопоставляет его с товарами и показывает полный план: сколько строк прочитано, сколько найдено в каталоге, какие цены и остатки изменятся — таблица «было → станет» по каждому товару. Отдельно видно строки с неизвестными кодами, подозрительные изменения, ошибки и те, где ничего не изменилось.
Только после вашего подтверждения план применяется — пакетами, поэтому 40 тысяч строк не зависят от того, выдержит ли один запрос таймаут сервера.

Товары, которых нет в прайсе
Если поставщик больше не возит позицию, её можно автоматически обнулить по остатку, выключить или сделать и то, и другое. Правило работает только в пределах выбранного производителя или категории — именно поэтому частичный прайс одного поставщика не выключает весь каталог.
Журнал и откат
Каждый запуск сохраняется: когда, из какого файла, сколько строк прочитано и сколько товаров обновлено. Все изменения записываются по полям — старая и новая цена, старый и новый остаток, — поэтому любой запуск откатывается одним кликом к значениям, которые были до него. Это не «восстановите бэкап базы», а точный возврат именно тех товаров, которых коснулся импорт.
Автоматическое обновление по расписанию
Профиль поставщика со ссылкой на прайс можно поставить на расписание — ежечасно, каждые 6 часов, ежедневно или еженедельно. Модуль сам забирает файл, считает цены по вашим правилам и обновляет каталог; результат каждого запуска остаётся в истории с тем же откатом. Запуск выполняется по адресу cron с секретным токеном, чтобы никто посторонний не мог запустить импорт.
Что входит в лицензию
Лицензия выдаётся на один домен и включает год обновлений и поддержки. Одна покупка покрывает все три ветки OpenCart — 2.3.0.x, 3.0.2 – 3.0.5.0 и 4.0.2 – 4.1.x, — поэтому переезд магазина на новую версию ничего не стоит. Код открытый, ionCube не нужен, файлы ядра не меняются.
Бесплатная версия полностью рабочая: читает те же форматы, показывает тот же план и тот же журнал, но обновляет до 50 строк за запуск и ведёт одного поставщика без расписания.
Технические требования
OpenCart 2.3.0.x, 3.0.2 – 3.0.5.0 или 4.0.2 – 4.1.x, PHP 7.0 – 8.3, включённые расширения zip и xml, cURL для загрузки прайса по ссылке. Установка штатная: Админ → Расширения → Инсталлятор → Загрузить, далее активация в списке модулей.
Частые вопросы
Надо ли перегонять Excel в CSV?
Нет. Модуль читает .xlsx напрямую, включая формулы (берётся посчитанное значение) и несколько листов.
Поставщик присылает прайс в windows-1251 — будет «кракозябра»?
Нет, кодировка определяется автоматически, а при необходимости указывается вручную.
Что будет, если в прайсе ошибка и цены в 100 раз меньше?
Включите лимит изменения в процентах — такие строки не запишутся, а попадут в список «Подозрительное изменение» на проверку.
Можно ли откатить импорт?
Да. Каждый запуск сохраняет старые и новые значения по каждому полю, откат возвращает ровно те товары, которых коснулся импорт.
Модуль создаёт новые товары?
Нет, он обновляет цены и остатки существующих. Это осознанное решение: создание карточек без описаний и изображений портит каталог и SEO.
Можно ли обновлять прайс автоматически ежедневно?
Да, в Pro: укажите ссылку на прайс и расписание, дальше модуль забирает файл и обновляет каталог сам.
Одна лицензия покрывает и 3.x, и 4.x?
Да, в лицензию входят сборки для 2.3, 3.x и 4.x — переезд магазина на другую версию ничего не стоит.
Вопросы по модулю?
Пишите в Telegram — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.
Пока ни одного отзыва. Будь первым — ниже.
Оставить отзыв
Отзыв модерируется перед публикацией — обычно это занимает до 24 часов.
Пока вопросов нет. Спроси — мы ответим в течение 24 часов.
Задать вопрос
Обычно отвечаем в течение 24 часов в рабочее время.
Покупка модуля
—