WordPress · 7 мин чтения

Товары в WooCommerce: импорт, вариации и характеристики

Карточка товара в WooCommerce выглядит просто, пока в магазине десяток позиций без вариантов. Как только появляются размеры, цвета, разные поставщики и остатки на нескольких складах, структура каталога начинает трещать. За последние несколько лет я переносил в WooCommerce товары из десятков разных источников: от рукописных Excel-таблиц до выгрузок 1С и XML-фидов поставщиков, и почти каждый раз всплывали одни и те же вопросы - как сделать импорт без потери характеристик и как настроить вариации так, чтобы через полгода в них не путался сам владелец магазина.

Простые и вариативные товары в WooCommerce: с чего начинается каталог

В WooCommerce четыре типа товаров: простой, вариативный, групповой и внешний/партнёрский. В большинстве магазинов, с которыми я работал, используются только первые два, и путаница начинается именно на стыке между ними.

Простой товар - одна карточка, одна цена, один SKU. Подходит для всего, что не делится на варианты: книга, разовая услуга, товар без модификаций.

Вариативный товар - одна карточка с несколькими вариациями внутри: футболка в трёх размерах и четырёх цветах превращается в 12 вариаций, у каждой свои цена, SKU, остаток и картинка. Ошибка, которую я вижу чаще всего: вместо одной карточки с вариациями заводят отдельный простой товар на каждый цвет. Это ломает SEO, потому что несколько карточек начинают конкурировать друг с другом по одному и тому же запросу, и усложняет учёт остатков.

Групповой товар пригождается редко - обычно для наборов вида «несколько товаров по отдельности на одной странице». Внешний/партнёрский товар нужен, если карточка ведёт на маркетплейс или сайт поставщика, а сама покупка происходит не у вас.

Параметр Простой товар Вариативный товар
Цена одна на весь товар своя у каждой вариации
SKU один свой у каждой вариации
Остаток на товар целиком на вариацию, если включено управление запасами по вариациям
Фото один набор изображений у каждой вариации может быть своё

Импорт товаров в WooCommerce: CSV, Excel и готовые плагины

Встроенный импортёр WooCommerce (Товары -> Импорт) справляется с CSV на уровне «загрузил файл, сопоставил колонки, нажал импорт». Для магазина до пары тысяч позиций этого хватает, но есть нюансы.

Первый: колонки для вариаций нужно готовить заранее, а не после загрузки. Строка с типом variable описывает родительский товар, а следующие строки с типом variation и заполненным Parent SKU - конкретные вариации. Если перепутать порядок строк или забыть Parent SKU, импортёр создаст вариации без связи с родителем, и разбирать это руками по 300 карточкам совсем не весело.

Второй: картинки по прямой ссылке надёжнее, чем архив с файлами. WooCommerce сам скачивает изображение по URL при импорте, и не приходится отдельно синхронизировать медиабиблиотеку.

Третий: для магазинов с регулярным обновлением прайса от поставщика ручной CSV-импорт быстро надоедает. В таких проектах я обычно ставлю автоматизацию на n8n: сценарий раз в сутки забирает XML или Excel-фид поставщика, сверяет SKU и обновляет цены с остатками через WooCommerce REST API, не трогая описание и характеристики, которые контент-менеджер правит вручную.

Для сложных каталогов, где нужна конвертация валют, пересчёт наценки по формуле или сборка вариаций из нескольких источников поставщиков, стандартного импортёра не хватает - в таких случаях проще сделать разработку скрипта импорта под конкретный формат данных, чем подгонять исходный прайс под чужой шаблон CSV.

Колонка CSV Что туда идёт
Type simple, variable или variation
SKU артикул товара или конкретной вариации
Parent SKU родительского товара для строки-вариации
Attribute 1 name / value(s) название и значения характеристики
Images ссылки на изображения через запятую

Атрибуты и характеристики товаров: локальные и глобальные

WooCommerce различает два вида атрибутов. Локальный создаётся прямо в карточке товара и живёт только в ней - удобно для характеристики, которая нигде больше не повторяется, например «Год выпуска коллекции» для одной модели. Глобальный атрибут заводится в разделе Товары -> Атрибуты один раз, а потом переиспользуется на сотнях карточек: Размер, Цвет, Материал.

Разница ощутима в двух местах. Во-первых, только глобальные атрибуты можно вывести в виджет фильтра по товарам - если на странице категории нужны чекбоксы «Цвет: красный, синий, зелёный», атрибут сначала заводят глобально. Во-вторых, вариации собираются только из атрибутов с включённым флажком «Используется для вариаций», и это работает и для локальных, и для глобальных, но у глобальных проще следить, чтобы значения не разъезжались по написанию - «Красный» и «красный» WooCommerce считает разными значениями.

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

Бесплатный материал

🎁 Полезный скрипт в подарок

Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.

Без спама. Отписка в 1 клик.

Вариации товаров: как не запутаться в остатках и ценах

После того как атрибуты с флажком «для вариаций» выбраны, вкладка «Вариации» предлагает создать все комбинации сразу или добавлять их вручную. Для двух атрибутов с 3 и 4 значениями это 12 вариаций - WooCommerce создаст их одной кнопкой, но цены, SKU и остатки по умолчанию окажутся пустыми, и без массовых действий (кнопка «Массовые действия -> Задать цены/Задать SKU») настройка 12 карточек вручную занимает минут двадцать вместо двух.

Отдельно слежу за учётом остатков: если включить управление запасами на уровне вариации, а не только товара, каждая комбинация получает собственный остаток. Для магазина одежды или обуви это единственный рабочий вариант, иначе система продолжит продавать 46‑й размер, которого физически нет, пока не закончится 42‑й.

Ещё момент, который часто упускают: у вариации может быть собственное изображение, и если его не заполнить, в галерее покупателя для всех цветов сразу останется фото товара по умолчанию. При импорте больших каталогов это первое, что стоит проверить после загрузки - сверить количество вариаций с картинками и без.

Если вариаций становится действительно много, больше 50-60 на карточку, интерфейс админки начинает подтормаживать при сохранении. Это ограничение самого WooCommerce, а не хостинга, и в таких случаях лучше делить товар на несколько карточек по ключевому признаку, например отдельная карточка на каждый материал, а внутри неё уже размеры и цвета.

Категории, фильтры и SEO карточек товара

Категории в WooCommerce работают как обычная таксономия WordPress: можно строить вложенность (Одежда -> Верхняя одежда -> Куртки) и на каждую категорию писать отдельное SEO-описание, которое выводится над списком товаров. Это тот текст, который реально приносит трафик по запросам вида «женские куртки купить», а не карточки конкретных моделей.

Фильтры по товарам (виджет «Фильтр по атрибуту») собираются только из глобальных атрибутов - ещё один аргумент заводить Размер и Цвет именно там, а не в каждой карточке отдельно. Хорошая практика: не включать в фильтры атрибуты с большим количеством уникальных значений, например материал с полусотней формулировок - такой фильтр не помогает выбрать товар, а только перегружает страницу категории.

WooCommerce сам добавляет разметку schema.org Product в карточку: цену, наличие, рейтинг, если включены отзывы. Это стоит проверить в Google Rich Results Test после переноса товаров, особенно после массового импорта - если в CSV не заполнено поле цены или остатка, в разметке появится пустое значение, и карточка выпадет из расширенных сниппетов в выдаче.

Типичные ошибки при наполнении каталога WooCommerce

На практике большая часть проблем с каталогом повторяется от проекта к проекту:

  • Дублирование карточек вместо вариаций - убивает SEO и путает статистику продаж по товару.
  • Одинаковые или пустые SKU у вариаций - WooCommerce разрешит сохранить, но это аукнется при интеграции со складом или 1С.
  • Импорт без резервной копии базы - если что-то пошло не так на 800‑й строке CSV, откатывать вручную дольше, чем сделать бэкап заранее.
  • Отсутствие alt-текста у изображений вариаций - теряется трафик из картиночного поиска, особенно в одежде и мебели.
  • Смешение валют без пересчёта при импорте прайса от зарубежного поставщика - цены остаются в долларах, пока кто-то не заметит это через месяц.

Когда каталог разрастается до нескольких сотен позиций, вопросы за пределами карточек товаров всплывают почти сразу: эквайринг (в моих проектах на WooCommerce чаще всего это T‑Bank), доставка через СДЭК с расчётом стоимости по регионам, синхронизация остатков с 1С. Это уже не про импорт и вариации, а про интеграции, и настраивать их стоит отдельным этапом, после того как каталог собран и проверен.

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

Сколько товаров можно импортировать в WooCommerce за один раз?

Ограничение обычно упирается не в WooCommerce, а в хостинг: время выполнения PHP-скрипта и лимит памяти. На обычном shared-хостинге безопасно грузить файлы по 500‑1000 строк за раз, крупные каталоги на 5-10 тысяч позиций лучше делить на несколько CSV и импортировать партиями, проверяя результат после каждой.

Как перенести товары с Tilda на WooCommerce?

Тильда выгружает товары в CSV или Excel, но структура колонок отличается от формата WooCommerce, особенно для вариаций, которых у Тильды устроены иначе. Экспорт нужно перепаковать под нужные заголовки (Type, SKU, Parent, Attribute) вручную или скриптом, иначе вариации при импорте просто не соберутся в одну карточку.

Можно ли создать вариации без глобальных атрибутов?

Можно, локальный атрибут с флажком «Используется для вариаций» работает точно так же, как глобальный. Разница в том, что локальный атрибут нельзя вывести в виджет фильтра на странице категории - для небольшого каталога с парой вариаций на товар это обычно не критично.

Как обновлять остатки и цены в WooCommerce без ручного импорта каждый раз?

Через WooCommerce REST API: можно написать сценарий, который забирает данные из 1С, Excel-фида поставщика или Google Таблиц и обновляет только цену и остаток по SKU, не трогая описание и характеристики. Я обычно собираю такие сценарии на n8n, если обновление нужно раз в сутки, или отдельным скриптом, если данные приходят чаще и нужна более гибкая логика сверки.

Есть задача?

Обсудим в мессенджере

Расскажите, что нужно сделать — отвечу в течение 4 часов в рабочее время. Первая консультация бесплатно.

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов куки) с использованием Yandex.Metrika.
Понятно