Атрибуты и цифровые варианты товара
Вариация представляет конкретный покупаемый вариант одного предложения. Родительский товар объясняет общую идею, а выбранный комплект имеет собственную цену, артикул и файл. В «Полке» добавим «Практикум HTML» с Basic за 15 и Extended за 24. Это позволит отличить характеристику для описания от характеристики, которая действительно влияет на заказ.
Существующие три simple products сохраняются. Новый parent имеет SKU HTML-LAB, его variations — HTML-BASIC и HTML-EXT. После урока покупатель в будущей локальной витрине сможет выбрать комплект и добавить соответствующую позицию. Ни импорт, ни интерфейс не запускались при подготовке курса, поэтому результат остаётся ожидаемым.
Атрибут описывает выбор
В Products можно создать global attribute для многих товаров или атрибут, принадлежащий только одному Product. Для первого «Практикума HTML» выберем локальный «Комплект» со значениями Basic и Extended. Если позднее десятки практикумов используют ту же систему, global attribute упростит общее управление и фильтрацию. Сейчас локальный выбор делает модель маленькой и понятной.
Откройте новый Product, выберите Variable product и добавьте Attribute «Комплект». Его values разделяются по правилам текущего editor. В ручной форме обычно используется вертикальная черта между вариантами; CSV будет иметь свой формат значений. Отметьте использование атрибута для variations и сохраните его, прежде чем создавать варианты.
Важно различать Visible on product page и Used for variations. Видимая характеристика может быть обычным описанием, например «Язык: русский», без отдельной цены. Used for variations создаёт dimension выбора. Если отметить только видимость, выпадающий выбор покупаемого комплекта не обязан появиться.
Родительский Product не является ещё одной третьей копией файла, которую покупатель приобретает вместе с Basic. Он объединяет варианты и задаёт общую страницу. Заказ должен содержать выбранную variation с её идентификатором и price. Эту связь увидим в корзине и API, где сведения parent и конкретного line item различаются.
Каждая вариация имеет свою цену
В Variations добавьте Basic и Extended. Для Basic задайте 15.00 и SKU HTML-BASIC, для Extended — 24.00 и HTML-EXT. У обоих включите virtual/downloadable и Sold individually, если ваша форма предоставляет соответствующее управление на нужном уровне. Файлы пока не прикреплены; сделаем это вместе с остальными downloads в одиннадцатом уроке.
Вариация без regular price может не быть показана как доступная для покупки. Наличие названия Basic в атрибуте ещё не делает её готовым предложением. Похожая проблема возникает при disabled variation или неподходящем stock status. Поэтому проверяют выбранный вариант, а не только красивую общую карточку родителя.
Не оставляйте Any комплект как универсальный fallback, если два значения имеют разное содержимое. Явные Basic и Extended позволяют увидеть, какой конкретно материал выбран. «Любое значение» полезно в некоторых моделях, но здесь скроет связь выбора с файлом и ценой. Объясняемое предложение лучше случайного совпадения настроек.
Официальный процесс и свойства variation описаны в Variable Product. Например, virtual удаляет необходимость доставки у конкретного варианта, а downloadable добавляет его файлы. Родительская надпись «цифровой практикум» не заменяет эти flags: заказ опирается на данные variation, которую выбрал покупатель.
Импорт сохраняет связь parent
Для воспроизведения курса предусмотрен полный fixtures/variations.csv. Если создали «Практикум» вручную, используйте режим обновления по SKU. Не импортируйте второй parent под другим артикулом. CSV включает родителя и две строки variation.
Type,SKU,Name,Published,Visibility in catalog,Regular price,Tax status,In stock?,Sold individually?,Parent,Attribute 1 name,Attribute 1 value(s),Attribute 1 visible,Attribute 1 global
variable,HTML-LAB,Практикум HTML,1,visible,,none,1,1,,Комплект,"Basic, Extended",1,0
"variation, virtual, downloadable",HTML-BASIC,Практикум HTML — Basic,1,visible,15.00,none,1,1,HTML-LAB,Комплект,Basic,1,0
"variation, virtual, downloadable",HTML-EXT,Практикум HTML — Extended,1,visible,24.00,none,1,1,HTML-LAB,Комплект,Extended,1,0
Parent у variations равен HTML-LAB. Это ссылка по SKU на родительский товар. Type у родителя variable, у детей variation с цифровыми признаками. Attribute 1 name совпадает во всех трёх строках. Родитель перечисляет обе values, а каждая variation — своё конкретное значение.
Если Parent ошибочно указывает GRID-PDF, новая variation относится к неподходящему Product или импорт завершается ошибкой. Нельзя исправлять ситуацию только изменением видимого названия ребёнка. Нужно восстановить саму связь и тип родителя. Поэтому после импорта открываем Variable Product и проверяем список variations, не ограничиваясь общей таблицей Products.
Download files отсутствуют в CSV намеренно: адрес создаётся вашей установкой при загрузке. Basic позже получает html-basic.txt, Extended — html-extended.txt. Если один и тот же файл прикрепить к обоим, технический выбор работает, но обещание состава отличается от фактической выдачи. Содержательный контроль варианта так же нужен, как проверка цены.
Витрина помогает обнаружить несогласованность
На странице Product до выбора может отображаться диапазон от 15 до 24. После выбора Extended ожидается цена 24.00 и возможность добавить конкретную variation. Установленный default Basic может заранее заполнить dropdown, но покупатель должен видеть, что выбрано. Скрытое значение по умолчанию не должно заставлять человека случайно купить другой комплект.
Дополните описание словами: Basic содержит три задания, Extended — те же задания и две дополнительные задачи. Не используйте одно абстрактное «расширенный пакет» без объяснения различия. Цена variation становится понятной, когда покупатель может сопоставить состав, формат и ограничения. Здесь оба комплекта остаются учебными текстами, проверка преподавателем не входит.
Изменение Attribute после создания variations требует проверки всех combinations. Если Basic переименован в Start только на родителе, старые variants могут перестать соответствовать доступным options. Такая правка затрагивает выбор и существующие данные; её нельзя считать одной косметической подписью. Во время курса сохраняем Basic/Extended неизменными.
Проведите различие между вариантом и отдельным товаром на нашем примере. HTML-BASIC и HTML-EXT имеют разные цены и содержимое загрузки, но относятся к одному практикуму и выбираются в одной карточке. GRID-PDF решает другую задачу и не является третьим вариантом HTML-LAB. Если смешать эти уровни, покупатель увидит непонятный выбор формата вместо выбора комплекта. Поэтому сначала сформулируйте общий предмет предложения, затем различия вариантов; только после этого добавляйте атрибут и связывайте с ним конкретные variations.
Для самостоятельной проверки выберите сначала Basic, затем Extended и сравните цену, SKU в административной части и будущую строку корзины. Ожидаются два конкретных предложения с одним общим parent. Если цена не меняется, проверьте values и regular price; если вариант не добавляется, проверьте availability. В следующем уроке каталог научится показывать родительскую карточку, а выбор конкретного комплекта останется на странице товара, где есть достаточно места для пояснения.