Імпорт прайсів постачальників для OpenCart 2.3, 3 і 4
Оновлення цін і залишків з прайсу постачальника: Excel, CSV, XML/YML з файлу або за посиланням, націнка рівнями, план «було → стане» і відкат будь-якого запуску.
Що всередині
- Прайс у 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 годин у робочий час.
Купівля модуля
—