Import/Export · OpenCart

Market Feeds — Rozetka / Prom для OpenCart 2.3, 3.x и 4.x

Версия
v1.1.0 (OpenCart 4)
v1.1.1 (OpenCart 3.x)
v1.0.1 (OpenCart 2.3)
Совместимость
OpenCart 2.3.0.0 – 2.3.0.2 · 3.0.2 – 3.0.5 · 4.0.2 – 4.1.x
Платформа
OpenCart
Market Feeds — Rozetka / Prom для OpenCart 2.3, 3.x и 4.x

Что внутри

  • XML-фид для Rozetka и YML-фид для Prom.ua
  • Два постоянных URL-фида, которые маркетплейсы забирают сами
  • Защита фидов секретным токеном в ссылке
  • Выбор категорий и товаров для выгрузки
  • Актуальные цены и остатки без ручного экспорта
  • Отдельные сборки для OpenCart 4.0.2–4.1.x, 3.0.2–3.0.5.0 и 2.3.0.0–2.3.0.2
  • Бесплатный

Market Feeds — модуль фидов для OpenCart 2.3, 3.x и 4.x, который выгружает каталог магазина в два самых популярных украинских маркетплейса: Rozetka (XML) и Prom.ua (YML). Вместо ручного экспорта или самописных скриптов вы получаете два постоянных URL-фида, защищённых секретным токеном — маркетплейсы сами забирают актуальные товары, цены и остатки по своему расписанию. Генерация потоковая, поэтому фид не «кладёт» сервер даже на больших каталогах.

Модуль полностью бесплатный. Код открыт: github.com/catcodestudio/opencart-market-feeds. Никаких платных версий, лимитов или лицензионных ключей — все функции доступны сразу после установки.

Как это выглядит в админке

Настройки модуля Market Feeds в админке OpenCart 4 с готовыми URL фидов
Обе ссылки на фиды видны сразу после установки — их остаётся вставить в кабинете Rozetka или Prom.ua. Токен в ссылке можно перегенерировать одним кликом, старая ссылка после этого перестаёт работать.
Вкладка «Фильтры и цены» модуля Market Feeds: множитель цены, акционная цена, выбор категорий
Множитель и округление цены, акционная цена как основная (price + price_old), порог остатка «в наличии» и выбор категорий — список показывает полный путь категории, поэтому одноимённые подкатегории не путаются.
Готовый XML-фид Market Feeds в браузере: дерево категорий и offer с ценой и фото
Готовый фид: дерево категорий с parentId, а дальше offer’ы с ценой, валютой, наличием, фотографиями и атрибутами. Генерация потоковая (XMLWriter), поэтому большой каталог не съедает память.

Как это работает — шаг за шагом

  1. Устанавливаете модуль и одним кликом генерируете секретный токен доступа — без него фид недоступен посторонним.
  2. Настраиваете выгрузку: валюта, язык, множитель цены, фильтры по категориям и производителям (пусто = весь каталог).
  3. Копируете готовые URL фидов со страницы настроек — отдельно для Rozetka (feed.rozetka) и Prom.ua (feed.prom).
  4. Вставляете ссылки в кабинетах маркетплейсов — Rozetka и Prom.ua сами периодически читают фид и обновляют товары, цены и остатки.
  5. Акции подхватываются автоматически: если на товар действует спеццена, она становится <price>, а обычная цена — <price_old> (маркетплейс показывает скидку).
  6. Для больших каталогов включаете файловый кеш: фид перестраивается кроном в фоне и отдаётся маркетплейсу мгновенно.

Сколько стоит

Бесплатно. Код открыт на GitHub — catcodestudio/opencart-market-feeds, расширение также опубликовано на официальном маркетплейсе OpenCart. Без Pro-версии, без подписок, без ограничений по количеству товаров.

Технические требования

  • OpenCart 4.0.2 – 4.1.x, 3.0.2 – 3.0.5.0 или 2.3.0.0 – 2.3.0.2 — для каждой ветки отдельная сборка
  • PHP 8.0+ для OpenCart 4, 7.x для OpenCart 3 и 5.6+ для 2.3 — во всех случаях с расширением XMLWriter, стандартным для большинства хостингов
  • Аккаунт продавца на Rozetka и/или Prom.ua — чтобы добавить URL фида в кабинете маркетплейса
  • Для файлового кеша (опционально) — возможность запускать cron на хостинге

Что под капотом

  • Потоковая генерация через XMLWriter — товары выбираются постранично, изображения, атрибуты и акции подгружаются батчами. Стабильное потребление памяти независимо от размера каталога.
  • Токен-защита URL — фид отдаётся только с секретным параметром token; сгенерировать новый можно одним кликом в админке.
  • Акционные цены через родную механику каждой веткиproduct_discount в OpenCart 4.1, отдельная product_special в 4.0, 3.x и 2.3; схема определяется автоматически.
  • Правильные теги остатков для каждой платформы: Rozetka получает stock_quantity, Prom — quantity_in_stock, плюс настраиваемый порог «в наличии».
  • Cron-кеш в файл — маршрут extension/cc_feeds/cron.rebuild перестраивает фид по расписанию; кнопка «Проверить» в админке показывает, сколько товаров попадёт в выгрузку.

Как установить

  1. Возьмите сборку под свою версию магазина: cc_feeds.ocmod.zip (OpenCart 4.0.2–4.1.x), cc_feeds-oc3.ocmod.zip (3.0.2–3.0.5.0) или cc_feeds-oc2.ocmod.zip (2.3.0.0–2.3.0.2).
  2. В OpenCart 3 и 4 архив ставится через Расширения → Инсталлятор. В 2.3 штатный инсталлятор работает только по FTP, поэтому надёжнее распаковать архив и залить содержимое папки upload/ в корень магазина.
  3. Расширения → Модули → найдите Market Feeds (Rozetka / Prom) → Установить → Настроить.
  4. Сгенерируйте токен, выберите валюту, язык и фильтры → Сохранить.
  5. Скопируйте URL фидов из секции «Ссылки на фиды».
  6. Добавьте ссылки в кабинетах Rozetka и Prom.ua как источник импорта товаров.
  7. Опционально: включите «Кешировать в файл» и добавьте cron-задачу на перестройку кеша — готовая строка показана на странице настроек (в OpenCart 2.3 это единственный способ обновлять кеш, потому что планировщика в ядре нет).

История версий

1.0.1 (OpenCart 2.3)
Токен фидов со спецсимволом (&, кавычки) больше не отбрасывается: в 2.3 Request::clean() прогоняет htmlspecialchars и по $_GET, поэтому Rozetka/Prom получали 403 на правильном токене. Теперь значение декодируется один раз, как и при сохранении в админке.
1.1.1 — 9 августа 2026 (OpenCart 3)
В подсказках админки теги <price>, <price_old> и <param> были написаны без экранирования, поэтому браузер их проглатывал и предложение «Если у товара действует акция — она становится , а обычная цена — .» выглядело оборванным. Тот же дефект исправили в сборке для OpenCart 4 ещё в версии 1.0.2, но в порт под OpenCart 3 он не доехал. Заодно подсказка о кеше больше не называет маршрут планировщика, которого в 3.x нет — на странице и так показан готовый cron-URL.
1.0.0 — 9 августа 2026 (OpenCart 2.3)
Сборка под OpenCart 2.3.0.x — порт напрямую из 4.x, промежуточную 3.x-версию этот модуль не проходил. Тот же набор настроек и тот же формат фидов; кеш обновляет системный crontab, потому что планировщика в 2.3 нет. Три исправления, найденные во время порта — цена с налогом и валютой ровно как на витрине, кеш-файл больше не скачивается мимо токена, «Проверить» считает по фильтру наличия — сразу вошли и в сборки для OpenCart 3 и 4 версии 1.1.0.
1.1.0 — 9 августа 2026 (OpenCart 3 и 4)
🔴 Цена в фиде не совпадала с ценой на сайте — по двум причинам сразу. Во-первых, налог не добавлялся вообще: товар, который витрина показывает за 122 грн, в прайс шёл как 100. Во-вторых, поле «Валюта» было просто подписью тега — магазин с базовой валютой USD отдавал долларовые числа с надписью UAH. Теперь цена проходит ровно тот же путь, что и на странице товара: налог по правилам магазина, потом курс валюты, и только потом ваш множитель. Валюта по умолчанию выставлена на «валюта магазина».
🔴 Кешированный файл фида можно было скачать мимо токена. Папка кеша не всегда лежит вне корня сайта, а nginx отдаёт статические файлы не заглядывая в .htaccess — то есть прямой запрос к файлу отдавал весь каталог без всякой проверки. Теперь имя файла содержит дайджест токена, а смена токена, выключение фида и удаление модуля убирают старые копии.
Кнопка «Проверить» больше не завышает количество: раньше она игнорировала фильтр наличия и обещала больше товаров, чем реально попадало в фид.
1.0.2 — 5 августа 2026
🔴 Акции не попадали в фид на OpenCart 4.0.x. В 4.1 акции лежат в product_discount с флагом special, а в 4.0 — в отдельной таблице product_special; запрос писался под 4.1, поэтому на 4.0 падал на несуществующей колонке. Теперь схема определяется автоматически.
🔴 Страница настроек не открывалась на OpenCart 4.0.x — обход дерева категорий через filter_parent_id, который 4.0 игнорирует, возвращал весь каталог на каждом уровне и исчерпывал память. Категории теперь тянутся одним плоским запросом с полным путём в названии.
Мелкое: в подсказках админки теги <price>, <price_old> и <param> были написаны без экранирования, поэтому браузер их проглатывал и предложение выглядело оборванным.
Заодно акционная цена берётся только из строк quantity = 1 — точно как на витрине, чтобы цена в фиде не расходилась с ценой на сайте.
1.0.1 — июль 2026
Исправлен админ-AJAX: Twig экранировал & в URL запросов, из-за чего кнопки «Проверить» и «Перестроить кеш» не работали в части сборок OpenCart.
1.0.0 — июль 2026
Первый публичный релиз: фиды Rozetka XML и Prom.ua YML, токен-защищённые URL, потоковая генерация XMLWriter, фильтры категорий и производителей, множитель цены, акционные цены (price + price_old), атрибуты как <param>, настройки описания и количества фото, файловый кеш с cron.

Частые вопросы

Нужны ли API-ключи Rozetka или Prom?

Нет. Фид — это URL, который маркетплейс читает сам. Единственный «ключ» — секретный токен, который модуль генерирует для защиты фида от посторонних.

У меня большой каталог — фид не положит сервер?

Нет. Генерация потоковая (XMLWriter, постраничная выборка, батч-подгрузка изображений и атрибутов), а для самых больших каталогов есть файловый кеш с перестройкой кроном — маркетплейс получает готовый файл мгновенно.

Можно ли выгрузить только часть каталога?

Да: фильтры по категориям и производителям, порог остатка «в наличии» и отдельная настройка — выгружать или нет товары, которых нет в наличии.

Что с акционными ценами?

Если на товар действует акция, в фид идёт акционная цена как <price> плюс старая цена как <price_old> — маркетплейс покажет скидку. Это включается одним переключателем.

Меняет ли модуль тему или checkout?

Нет. Модуль добавляет только страницу настроек в админке и служебные маршруты фидов — витрина и оформление заказа не затрагиваются.

Одна сборка на все версии OpenCart?

Нет, это три отдельных порта в одном комплекте: cc_feeds.ocmod.zip для 4.0.2–4.1.x, cc_feeds-oc3.ocmod.zip для 3.0.2–3.0.5.0 и cc_feeds-oc2.ocmod.zip для 2.3.0.0–2.3.0.2. Набор настроек и формат фидов одинаковые.

Это точно бесплатно? Где подвох?

Подвоха нет: все функции открыты, код опубликован на GitHub. Нет Pro-версии, скрытых лимитов или платных «разблокировок».

Вопросы по модулю?

Пишите в Telegram — ответим в течение рабочего дня. Поможем с настройкой, совместимостью и активацией ключа.

@catcode_support

Не тот вариант, что искали?

Мы делаем кастомные модули под WordPress, WooCommerce, OpenCart и Shopify. Расскажите о задаче — подготовим оценку.

Заказать кастомный модуль