Импорт товаров в OpenCart: что проверить до загрузки
Перед импортом товаров в OpenCart нужно проверить версию движка, формат файла, кодировку, изображения и резервную копию. Иначе одна загрузка может создать дубли, сломать цены или оставить каталог без фотографий.

Импорт каталога в OpenCart обычно занимает от 30 минут до нескольких часов, если заранее подготовить файл и тестовый магазин. Результат зависит не только от CSV: в OpenCart 3.x и 4.x используются разные расширения, а сам движок не гарантирует наличие универсального встроенного импорта товаров. До загрузки нужно выяснить, какой модуль установлен, какие поля он принимает и что произойдёт с уже существующими товарами.
Что нужно иметь до начала
- точную версию OpenCart и PHP на сервере;
- доступ администратора к каталогу и настройкам расширения импорта;
- резервную копию базы данных и файлов магазина;
- исходный файл товаров в формате, который поддерживает ваш модуль;
- папку или URL изображений, доступные магазину;
- тестовую копию сайта либо отдельный тестовый магазин;
- описание соответствия колонок файла полям OpenCart.
Не начинайте с загрузки полного каталога. Сначала возьмите пять-десять товаров разных типов: с одной фотографией, несколькими фотографиями, акцией, опциями, длинным описанием и пустыми необязательными полями.
Импорт — это не «загрузить Excel». Это операция записи в базу данных. Главный вопрос перед ней — не как загрузить файл, а как откатить результат, если модуль создаст дубли или перезапишет цены.
Шаг 1. Определите версию OpenCart и импортера
Версию можно посмотреть в административной панели или в файлах установленной системы. Для OpenCart 3.0.3.x и OpenCart 4.x нельзя автоматически считать расширение совместимым: у них отличаются структура модулей, требования к PHP и способы установки дополнений.
Проверьте страницу расширения и найдите четыре пункта: поддерживаемые версии OpenCart, версию PHP, формат файла и способ обновления существующих товаров. Особенно важно последнее. Один модуль ищет товар по model, другой — по внутреннему идентификатору, третий при совпадении названия создаёт новую запись.
Проверка: у вас записаны версия OpenCart, версия PHP и точное название импортера, а в его документации найдено правило сопоставления существующих товаров.
Шаг 2. Сделайте резервную копию и подготовьте откат
Перед импортом сохраните базу данных, файлы сайта и каталог изображений. Одной копии базы недостаточно: после неудачной загрузки в базе могут появиться новые товары, а в файловой системе — загруженные изображения и временные файлы.
Проверьте, что копию можно восстановить. Скачанный архив, который никто не открывал и не проверял, не считается рабочим бэкапом. Если хостинг предлагает восстановление в один клик, выясните, восстанавливает ли оно базу вместе с файлами.
Проверка: в отдельной папке или на тестовом домене открывается копия магазина, а дата и состав резервной копии записаны до начала импорта.
Шаг 3. Составьте карту полей
Не переименовывайте колонки наугад. Импортер может требовать английские названия, внутренние имена полей или собственный шаблон, который выгружается из административной панели. Сначала скачайте шаблон модуля, если он предусмотрен, и заполните его на основе этого образца.
| Поле | Что проверить заранее | Частая проблема |
|---|---|---|
| model или артикул | Уникальность и отсутствие пробелов в начале и конце | Товар обновляется не тот или создаётся дубль |
| name | Язык магазина и непустое значение | Название появляется только в одном языке |
| price | Десятичный разделитель и валюта | Цена импортируется в десять или сто раз больше |
| quantity | Целое число и допустимое пустое значение | Остаток становится нулевым |
| category | Точное имя или путь категории | Создаётся новая категория с похожим названием |
| image | Путь или URL, доступный серверу | Карточка есть, но фотографии нет |
| status | Формат значения, который принимает модуль | Товар загружен, но выключен |
Если магазин многоязычный, подготовьте отдельные значения для каждого языка и проверьте, как расширение обозначает языковые колонки. Не подставляйте коды языков вроде ru или en, пока это не подтверждено шаблоном импортера.
Проверка: для каждой колонки понятно, в какое поле OpenCart она записывается, что означает пустое значение и по какому признаку модуль найдёт существующий товар.
Шаг 4. Приведите файл к безопасному формату
CSV, сохранённый из Excel или Google Таблиц, может использовать запятую либо точку с запятой как разделитель, разные кодировки и разные правила кавычек. Для русского каталога чаще всего безопаснее использовать UTF-8, но окончательный выбор зависит от импортера.
- Проверьте кодировку файла и отображение кириллицы в простом редакторе.
- Убедитесь, что переносы строк внутри описаний не ломают строки CSV.
- Заключите в кавычки значения, где есть разделитель, кавычки или перенос строки.
- Удалите пробелы в начале и конце артикулов, названий и путей к изображениям.
- Не смешивайте в одном столбце числа и текстовые значения вроде «нет» или «по запросу».
- Проверьте, что цена записана в формате, который ожидает модуль: например, с точкой или запятой.
Особенно опасны ведущие нули в артикулах. Табличный редактор может превратить значение 00125 в 125. Такие поля храните как текстовые, а не числовые.
Проверка: после повторного открытия файла в редакторе количество колонок не меняется, кириллица читается нормально, а артикулы и цены сохранили исходный вид.
Шаг 5. Проверьте изображения и категории
Ссылка на изображение и файл изображения — не одно и то же. Одни расширения принимают URL, другие ищут файл в каталоге магазина, третьи умеют загружать картинки только при определённых правах сервера. Уточните это в документации конкретного модуля.
Проверьте несколько адресов изображений отдельно: открывается ли файл без авторизации, не блокирует ли его сервер источник и совпадает ли расширение файла с его содержимым. Большие фотографии могут упереться в ограничения PHP или хостинга по размеру запроса и времени выполнения.
Для категорий заранее выберите один способ идентификации: уникальный ID, полный путь или точное название. Смешивание вариантов часто приводит к появлению похожих категорий вроде «Телефоны», «телефоны» и «Телефоны / Смартфоны».
Проверка: тестовое изображение доступно серверу, а каждая категория из файла однозначно сопоставляется с существующей категорией магазина.
Шаг 6. Выполните тестовую загрузку
- Создайте копию магазина. Работайте на тестовом домене или в отдельной установке. Проверка: тестовый магазин открывается, а его база не используется рабочим сайтом.
- Загрузите пять-десять товаров. Включите в выборку разные категории, цены, изображения и опции. Проверка: импортер завершил операцию без ошибки и показал число обработанных строк.
- Откройте карточки товаров. Проверьте название, цену, остаток, категории, описание, SEO-поля, опции и статус. Проверка: значения совпадают с исходным файлом, а изображения видны в каталоге и на витрине.
- Запустите повторный импорт того же файла. Это проверяет правило обновления. Проверка: количество товаров не увеличилось, если модуль должен обновлять записи, а не создавать новые.
- Сделайте пробную покупку. Проверьте корзину, оформление заказа и уменьшение остатка. Проверка: товар можно купить, а заказ содержит правильную цену и опции.
Если импорт не получился
Файл не загружается
Причины обычно связаны с размером файла, ограничением времени выполнения PHP, неверным расширением или форматом CSV. Разделите каталог на небольшие части и сравните их с шаблоном модуля. Если в панели появляется ошибка о превышении размера запроса или времени выполнения, настройку нужно менять на сервере, а не в самом CSV.
Кириллица отображается кракозябрами
Файл сохранён не в той кодировке, которую ожидает импортер. Пересохраните копию в UTF-8 и проверьте результат на десяти товарах. Не исправляйте уже загруженные названия вручную, пока не устранена причина: следующий импорт снова испортит текст.
Создаются дубли товаров
Модуль не распознал ключ обновления либо файл не содержит нужного идентификатора. Остановите полный импорт, найдите правило сопоставления в документации и проверьте его на копии. Не удаляйте дубли вручную до резервного копирования: вместе с ними могут быть связаны изображения, опции и записи в других таблицах.
Товары есть, но нет изображений
Проверьте, принимает ли модуль URL или только путь к файлу, доступен ли адрес без авторизации и хватает ли прав веб-серверу. Откройте журнал ошибок расширения и сервера, если он доступен. Название файла изображения с пробелами и национальными символами тоже может обрабатываться по-разному.
Импорт завершился частично
Сохраните исходный файл и журнал операции, затем посчитайте строки, которые действительно появились в каталоге. Не запускайте весь файл вслепую повторно: это может создать дубли. Сначала определите, по какому полю расширение обновляет товар, и продолжите с отдельного диапазона после последней подтверждённой строки.
Сноска. Ключ обновления — поле, по которому импортер понимает, что строка относится к уже существующему товару. Обычно это артикул, модель или внутренний идентификатор, но точное правило задаёт конкретное расширение.
Что делать дальше
После теста сравните не только карточки, но и рабочие процессы: поиск по каталогу, фильтры, остатки, оформление заказа, выгрузку в поисковые системы и отображение на мобильном экране. Для большого каталога зафиксируйте журнал импорта и расписание обновлений, а повторную загрузку сначала запускайте на копии базы.
На продакшене смотрите на три показателя: число новых товаров, число обновлённых товаров и число строк с ошибками. Если расширение не показывает эти значения, импорт сложнее контролировать, поэтому стоит выбрать инструмент с журналом операций и понятным откатом. Инвалидация кеша и синхронизация с учётной системой — отдельные темы; здесь важна только безопасная подготовка файла и первая проверка результата.
Редактор изображений: Убрать лишнее, заменить фон, добавить объект, расширить кадр — на вашем изображении.
Спросить за 20 ₽Источники: Официальная документация OpenCart, Официальный репозиторий OpenCart
Частые вопросы
Есть ли в OpenCart встроенный импорт товаров из CSV?
Можно ли импортировать товары прямо в рабочий магазин?
Какой формат файла выбрать: CSV или XLSX?
Почему после импорта товары появились без фотографий?
Что будет, если я не успею или остановлю импорт?
Как обновить цены и остатки, не создавая новые товары?
Материал носит информационный характер и подготовлен редакцией «Агентуры». Он не является офертой, рекламой или индивидуальной консультацией. Упомянутые продукты, компании и торговые знаки принадлежат их правообладателям. Перед принятием решений, влекущих юридические или финансовые последствия, обратитесь к профильному специалисту.