UA EN
Telegram

Статті · 08.11.2026

Імпорт товарів з XML в OpenCart без збоїв

Постачальник дає XML-фід, і хочеться, щоб товари, ціни й залишки на сайті оновлювались самі. Готові модулі імпорту часто працюють на маленькому каталозі, але на кількох тисячах товарів обриваються, дублюють товари або кладуть сайт. Ось як я налаштовую імпорт, щоб він працював роками.

Типові проблеми

  • імпорт запускається з браузера і обривається через ліміт часу PHP;
  • кожне оновлення створює нові товари замість оновлення наявних;
  • фото завантажуються наново щоразу, диск заповнюється копіями;
  • товари, яких немає у фіді, лишаються в продажу з нульовим залишком або, навпаки, видаляються разом з відгуками й позиціями в Google;
  • під час імпорту сайт гальмує для покупців.

Як має бути влаштовано

  • запуск через cron з командного рядка, а не через браузер — без лімітів часу веб-сервера;
  • стабільний ключ товару: ID постачальника або артикул, збережений окремо; товар шукається лише за ним;
  • оновлюються лише змінені поля: ціна й залишок — щоразу, опис і фото — тільки якщо змінились;
  • товари, що зникли з фіду, вимикаються, а не видаляються — адреса і відгуки лишаються;
  • відповідність категорій постачальника і сайту налаштовується один раз у таблиці;
  • блокування паралельного запуску, щоб два імпорти не писали в базу одночасно;
  • журнал: скільки створено, оновлено, вимкнено, які помилки.

Великі фіди

Фід на десятки мегабайт не варто завантажувати в пам’ять цілком — його читають потоково, товар за товаром. А запис у базу роблять пакетами, щоб імпорт тривав хвилини, а не години, і не заважав покупцям.

Кілька постачальників

Якщо постачальників кілька, кожен фід має свій формат. Найнадійніше — привести їх до одного внутрішнього формату, а потім імпортувати однією логікою. Тоді новий постачальник — це лише новий «перекладач», а не новий модуль.

Такий імпорт з XML у OpenCart (разом з фото й галереями) я налаштовував для кількох магазинів. Якщо вам потрібна автоматична синхронізація каталогу — це частина інтеграцій сайту; для обміну з облікової системи дивіться статтю про обмін з 1С.

Часті питання

Як часто запускати імпорт?

Ціни й залишки — від кількох разів на день до щогодини, залежно від того, як часто їх оновлює постачальник. Повне оновлення описів і фото — раз на добу чи рідше.

Чи підходить це для CSV чи XLSX?

Так, логіка та сама. Змінюється лише те, як читається файл.

Не хочете розбиратися самі?

Опишіть, що відбувається з сайтом, — скажу причину й вартість виправлення протягом дня.

Послуга: Інтеграції: CRM, оплата, доставка →

Telegram
Telegram Дзвінок