Вместо одной футболки с выбором размеров в магазине появились три отдельных товара. Сначала проверьте структуру CSV: строки должны описывать родительский variable-товар и его variation-варианты. Похожие названия сами по себе не связывают записи.
Здесь разобран встроенный импорт WooCommerce. Расширение Product CSV Import Suite использует собственные колонки и отдельную документацию; смешивать две схемы нельзя. Запишите версию WooCommerce и название импортера до подготовки файла.
Как устроены родитель и варианты
Родительская карточка объединяет свойства товара и доступный выбор. Вариация задаёт конкретное сочетание: размер M, цвет синий, собственная цена и остаток. В документации WooCommerce для вариаций они представлены как объекты, относящиеся к определённому товару. Это отличается от нескольких независимых простых карточек.
Во встроенном CSV родитель получает Type со значением variable, вариант — variation. Колонка Parent указывает существующий артикул родителя либо ID в формате id:123. Значение SKU у каждой вариации должно позволять отличить её от соседних при последующих обновлениях.
Не считайте отсутствие связи неизбежной причиной создания простой карточки. Некоторые неправильные строки будут пропущены или завершатся ошибкой импорта. Отдельно созданный simple-товар, пропущенная variation и вариант с неверными атрибутами — разные результаты. Их нужно подтвердить в отчёте и редакторе.
Учебный пример с двумя размерами
Представим магазин футболок. Это вымышленный пример: родитель имеет SKU TSH-BASE, варианты — TSH-S и TSH-M. Нужен локальный атрибут Size со значениями S и M. Согласованную структуру удобно сначала записать таблицей:
| Строка | Type | SKU | Parent | Size |
|---|---|---|---|---|
| Футболка | variable | TSH-BASE | Пусто | S, M |
| Футболка S | variation | TSH-S | TSH-BASE | S |
| Футболка M | variation | TSH-M | TSH-BASE | M |
В CSV поля атрибута имеют точные имена Attribute 1 name, Attribute 1 value(s), Attribute 1 visible и Attribute 1 global. Для локального Size значение global равно 0. У родителя перечисляют доступные размеры, у варианта — выбранный размер. Правила колонок приведены в официальной схеме встроенного импортера.
Не переносите слово «Пусто» из таблицы в файл: оно объясняет отсутствие Parent у родителя. В CSV эту ячейку оставляют пустой. Поле со списком S, M должно быть корректно заключено в кавычки, если разделитель файла — запятая.
Как проверить атрибуты до загрузки
Сравните название и значения атрибута в родительской и дочерних строках. M, m и Medium не должны случайно обозначать один размер разными словами. Уберите лишние пробелы, затем откройте итоговый CSV текстовым редактором и проверьте сохранённые значения.
Решите, используется ли локальный атрибут или уже созданный глобальный атрибут магазина. Для глобального атрибута нужен согласованный существующий набор значений. Не переключайте global между строками только ради успешного запуска: это меняет структуру данных и может создать неожиданные варианты.
В тестовом файле задайте каждой вариации понятную цену и остаток. После импорта должно быть легко увидеть, какая строка выбрана на витрине. Если обе вариации имеют одинаковые данные, часть ошибки может остаться незаметной: выбор меняется визуально, но покупатель получает сведения другого размера.
Как выбрать процесс для своей версии WooCommerce
В актуальной документации отдельно описано поведение начиная с WooCommerce 11.1: при соблюдении условий импорт обновлений может создать новые вариации для существующего родителя. Для преобразования простого товара в variable важен порядок: родительская строка должна идти раньше дочерних. Не переносите этот вариант автоматически на более старый магазин.
Если версия раньше 11.1 или порядок строк обеспечить нельзя, используйте документированный процесс с двумя импортами. Сначала обновите родительский товар и его атрибуты. Затем загрузите отдельный файл новых вариаций, связав их с уже подготовленным родителем. Режим создания и режим обновления выбирают по содержанию каждого файла.
Существующие вариации обновляют по их стабильным ключам; новые сначала создают по выбранному процессу. Перед повторной загрузкой посмотрите результат предыдущего запуска. Чередование режимов без проверки способно превратить понятную задачу в смесь новых и пропущенных строк.
Если не знаете версию, откройте данные установленного WooCommerce и сохраните её. Не называйте импорт успешным только потому, что на экране нет большой красной ошибки. Проверьте, созданы ли именно нужные дочерние записи и существует ли связь с родителем.
Как разобрать уже появившиеся отдельные карточки
Откройте предполагаемого родителя и каждую независимую карточку. Запишите ID, SKU, тип продукта, атрибуты и URL. Сверьте их с исходными строками. Если дочерние строки получили Type simple, они описывали самостоятельные товары. Исправление начинается со схемы файла и согласованного переноса данных.
Не удаляйте записи сразу: у них могут быть заказы, ссылки и остатки. Передайте разработчику таблицу соответствий «существующая запись — ожидаемый родитель — размер — дальнейшее действие». Укажите, какую историю и данные сохранить. Простая смена Type без проверки связей не является готовым планом исправления.
Если вариации были пропущены, изучите причины в отчёте импортера: Parent, уникальность SKU и совпадение атрибутов. Исправьте маленький файл, а не загружайте полный каталог снова. Успешное создание одного родителя с двумя вариантами должно предшествовать массовому повторению.
Как проверить карточку на витрине
Откройте родительскую страницу без авторизации. Выберите S, затем M и сравните отображаемые данные с контрольной таблицей. Убедитесь, что недоступное сочетание не предлагается как покупаемое, а цена и остаток относятся к выбранному варианту.
Проверьте добавление в корзину на тестовой копии: выбранный размер должен сохраняться в строке корзины. Не нужно отправлять настоящий заказ для проверки схемы импорта. В задаче заранее определите безопасное место и достаточное действие для подтверждения правильной вариации.
Посмотрите каталог и поиск магазина. Они должны показывать согласованное представление родительской карточки. Отдельные индексируемые страницы для вариаций зависят от устройства сайта; одна колонка Parent их не создаёт.
Что передать разработчику и как принять работу
Укажите версию, инструмент импорта, исходный CSV, ID родителя и контрольные SKU. Условия приёмки учебного примера: одна variable-карточка, две нужные variation, правильные размеры, цена и остаток при выборе, корректное добавление на копии магазина, повторное обновление без новых дублей.
Если при загрузке потерялись ручные метаданные, отдельно разберите перезапись title и description импортом.
Для регулярного прайса используйте инструкцию обновления WooCommerce по SKU, а опубликованные ссылки можно проверить техническим аудитом. Работа закончена, когда структура данных и выбор на витрине совпадают. Поисковая индексация и позиции проверяются отдельно и не доказываются сообщением о завершении загрузки CSV.