Товары в OpenCart: импорт из Excel/1С, атрибуты, опции и фильтры
Каталог — фундамент магазина. Если товары заведены небрежно, не работают фильтры, страдает SEO, а каждый импорт превращается в ручную чистку. В OpenCart есть несколько сущностей, которые часто путают: атрибуты, опции, фильтры, производители. Разберу, что для чего, как загрузить товары массово и как не испортить каталог.
Структура каталога
Категории
- Не делайте больше трёх уровней вложенности — покупатель теряется, а адреса становятся длинными.
- Каждая категория — под реальный поисковый спрос: «Ламинат 33 класса» лучше, чем «Разное».
- Один товар может быть в нескольких категориях, но основная должна быть одна — она используется в хлебных крошках и адресе в ocStore.
Производители
Поле «Производитель» в OpenCart — отдельная сущность со своей страницей. Используйте его для брендов: страницы брендов собирают запросы вида «ламинат Kronospan».
Атрибуты, опции и фильтры: в чём разница
| Сущность | Для чего | Пример |
|---|---|---|
| Атрибут | Характеристика товара для описания и сравнения | Толщина: 8 мм, Класс: 33 |
| Опция | Выбор покупателя при заказе, может менять цену и остаток | Размер: S, M, L |
| Фильтр (стандартный) | Метка для фильтрации в категории | Цвет: дуб, орех |
Атрибуты
Атрибуты объединяются в группы: «Основные характеристики», «Размеры». Значение атрибута у каждого товара — текст. Это важно: «8 мм» и «8мм» для системы — разные значения, и в фильтре они появятся отдельно. Договоритесь о едином формате до импорта.
Опции
Опция — это то, что выбирает покупатель: размер, цвет, комплектация. У каждого значения опции может быть свой остаток, своя наценка и свой вес. Если у вас «футболка в трёх размерах», это один товар с опцией, а не три товара.
Фильтры
Стандартные фильтры OpenCart — простые метки, которые нужно вручную назначать товарам и включать в категориях. Для серьёзного каталога обычно ставят модуль фильтра, который строит фильтры по атрибутам, опциям, производителям и цене автоматически. Тогда достаточно правильно заполнить атрибуты.
Импорт товаров из Excel
Стандартного импорта в OpenCart нет, поэтому используют модули импорта и экспорта. Порядок работы одинаковый для большинства:
- Экспортируйте несколько товаров, заведённых вручную. Так вы получите шаблон файла с правильными колонками.
- Заполните таблицу: артикул, название, категория, цена, количество, производитель, описание, атрибуты, изображения.
- Проверьте ключ сопоставления. Обычно это артикул (model или sku) — по нему модуль понимает, обновить существующий товар или создать новый.
- Загрузите сначала 10–20 товаров на копии магазина и проверьте результат в карточке и в категории.
- Загрузите весь файл.
Изображения
Модули импорта принимают либо путь к файлу на сервере (catalog/products/12345.jpg), либо ссылку на изображение, которое нужно скачать. Удобнее заранее загрузить фото по FTP в отдельную папку и назвать файлы по артикулу.
Типичные ошибки импорта
- Разные написания одной категории: «Ламинат» и «ламинат » с пробелом создают две категории.
- Цена с пробелами и знаком валюты — модуль запишет 0.
- Excel превращает артикулы вида 00123 в 123 и длинные числа в формат 1,23E+12. Задавайте колонке текстовый формат.
- Кодировка CSV не UTF-8 — вместо кириллицы появляются знаки вопроса.
- Описание с переносами строк ломает структуру CSV, если не взято в кавычки.
Импорт из 1С
Если товары ведутся в 1С, ручной импорт не нужен: каталог, цены и остатки выгружаются автоматически через модуль обмена по CommerceML. Общий принцип и подводные камни — в статье об интеграции сайта с 1С. Важное для OpenCart:
- характеристики из 1С становятся атрибутами — проверьте, в какую группу атрибутов модуль их складывает;
- характеристики номенклатуры (размер, цвет) могут превращаться в опции — настройте это в модуле;
- решите, обновляются ли из 1С названия и описания, иначе ручные SEO-тексты будут перезаписаны.
SEO-поля товаров и категорий
В ocStore и OpenCart с SEO-модулем у каждого товара и категории есть:
- SEO URL — адрес латиницей, без пробелов и спецсимволов: laminat-kronospan-8mm;
- meta title и meta description;
- H1 (в ocStore — отдельное поле).
Для тысяч товаров вручную это не заполнить. Используйте шаблоны: title = «Название — купить в Минске, цена | Магазин». Модули SEO-шаблонов или импорт с колонками SEO решают задачу массово. Важно, чтобы SEO URL генерировался один раз и не менялся при повторных импортах.
Остатки и наличие
- Задайте статусы «Нет в наличии», «Под заказ», «Ожидается» в Система — Локализация — Статусы на складе.
- Включите или отключите оформление заказа при нулевом остатке в настройках магазина.
- Не удаляйте закончившиеся товары: страница теряет позиции в поиске. Лучше показывать статус и похожие товары.
Как навести порядок в существующем каталоге
Если каталог уже заполнен хаотично:
- Выгрузите все товары с атрибутами в Excel.
- Отсортируйте по названию атрибута и значению — сразу видны дубли написаний.
- Приведите значения к единому формату.
- Загрузите обратно, обновляя по артикулу.
- Проверьте фильтры в нескольких категориях.
Такая чистка один раз занимает время, но потом фильтры работают, а новые импорты не плодят мусор.
Производительность большого каталога
- При 10 000 товаров и больше включайте кэш модуля фильтра.
- Отключите подсчёт количества товаров в категориях в настройках магазина — он делает тяжёлые запросы на каждой странице.
- Миниатюры генерируются при первом просмотре — после массового импорта первые открытия категорий будут медленными. Можно прогреть кэш изображений обходом сайта.
- Удалите неиспользуемые атрибуты и опции.
Пример структуры файла импорта
Минимальный набор колонок, с которым удобно работать большинству модулей:
| Колонка | Пример | Комментарий |
|---|---|---|
| model | KR-8-33-OAK | Артикул, ключ сопоставления |
| name | Ламинат Kronospan 8 мм дуб | Название без лишних слов |
| category | Ламинат > 33 класс | Путь категории через разделитель |
| manufacturer | Kronospan | Совпадает с существующим брендом |
| price | 32.50 | Число с точкой, без валюты |
| quantity | 120 | Целое число |
| image | catalog/laminat/KR-8-33-OAK.jpg | Путь к загруженному фото |
| attr:Толщина | 8 мм | Значение атрибута в едином формате |
Названия колонок у разных модулей отличаются, поэтому начинайте с экспорта шаблона, а не с таблицы, придуманной с нуля.
Когда нужен разработчик
Самостоятельно завести каталог на несколько сотен товаров вполне реально. Помощь нужна, когда:
- нужно регулярно загружать прайсы нескольких поставщиков с разной структурой;
- каталог уже испорчен дублями и мусорными атрибутами;
- требуется обмен с 1С с опциями и несколькими складами;
- импорт или фильтр тормозят на большом каталоге.
Совет по изображениям товаров
Снимайте или запрашивайте у поставщика фото на однотонном фоне в одинаковом соотношении сторон, например квадрат. Тогда карточки в категориях выглядят ровно, а миниатюры не обрезаются неожиданно. Перед загрузкой уменьшайте фото до 1500–2000 пикселей по большей стороне.
Чек-лист каталога OpenCart
- Категории до трёх уровней, под поисковый спрос.
- Производители заведены как бренды.
- Атрибуты в едином формате, сгруппированы.
- Опции — для выбора покупателя, с остатками.
- Модуль фильтра строится по атрибутам.
- Импорт по артикулу, проверен на копии.
- SEO URL и мета-теги по шаблону.
- Закончившиеся товары не удаляются.
Частые вопросы
Чем атрибут отличается от опции?
Атрибут — это характеристика для описания и фильтра, покупатель её не выбирает. Опция — то, что покупатель выбирает при заказе, она может менять цену и остаток.
Какой модуль импорта выбрать?
Тот, что поддерживает вашу версию OpenCart, работает с атрибутами и опциями и умеет обновлять товары по артикулу. Проверяйте на копии магазина на небольшом файле.
Можно ли загрузить товары с сайта поставщика?
Если поставщик даёт файл выгрузки в Excel, CSV или XML — да, с настройкой сопоставления полей. Копировать чужие описания без изменений нежелательно для SEO.
Почему после импорта фильтр показывает одинаковые значения дважды?
Значения атрибутов отличаются написанием: пробелами, регистром, единицами измерения. Приведите их к единому формату и загрузите заново.
Нужна помощь?
Если не хочется разбираться самому или не получилось — напишите мне. Посмотрю задачу и скажу, что нужно сделать, сколько это займёт и сколько будет стоить.
Связанные услуги
