Простой цифровой товар и его цена
Товар связывает предложение магазина с конкретной ценой и способом получения. Название и красивая карточка сами по себе ещё не определяют, что покупатель получает после заказа. В «Полке» начнём с одного simple product — «Конспект CSS Grid». У него будет устойчивый SKU, короткое описание, условная цена и два независимых признака digital delivery.
После урока читатель сможет объяснить состояние первого товара и найти его снова по SKU, даже если название изменится. Данные и интерфейс не создавались при подготовке курса; описанные действия предназначены для будущего локального выполнения. Товар остаётся учебным: никакая сумма не принимается от реального покупателя.
Простая позиция и её идентичность
Откройте Products → Add New Product. Укажите название «Конспект CSS Grid», выберите тип Simple product и заполните SKU GRID-PDF. SKU — артикул нашей позиции. Он помогает связать импорт, отчёт и интеграцию, но не равен внутреннему числовому ID WordPress. В вашей базе ID будет назначен при создании, а SKU мы задаём осмысленно.
Названия меняются чаще идентификаторов. Например, «Конспект CSS Grid» можно уточнить до «Конспект CSS Grid: сетка карточек», сохранив GRID-PDF. При импорте по SKU магазин распознает прежний товар. Если изменить SKU случайно, файл обновления может перестать находить существующую позицию. Поэтому артикулы фиксируем в fixtures и сохраняем во всей серии.
Основное описание объясняет состав. Напишите: «Учебный текст: один конспект; язык русский; лицензия личная; обновления не обещаны». Short description: «Адаптивная сетка карточек». Оба текста относятся к одному предложению, но решают разные задачи. Краткое описание помогает быстро понять предмет, полное — увидеть границы содержимого.
Не обещайте PDF только потому, что SKU заканчивается PDF. В архиве курса продаваемый учебный файл имеет формат TXT: это маленькая fixture для знакомства с delivery. Для сохранения названия «Конспект» этого достаточно, но в карточке должно быть указано фактическое расширение выдаваемого файла. Позже можно создать настоящий PDF отдельно и обновить описание вместе со ссылкой.
Цена и условия арифметики
В Regular price задайте 12.00, sale price оставьте пустым. Валюта берётся из настроек магазина, поэтому не добавляйте знак USD прямо в поле числа. Если выбран интерфейс с десятичной запятой, значение может выглядеть иначе визуально, но смысл остаётся двенадцать единиц с двумя десятичными знаками.
В учебной модели tax status none и налоги выключены. Это позволяет ожидать 12.00 в корзине за одну позицию до скидок. Цена в интерфейсе может форматироваться как $12.00; формат показа и хранимое значение различаются. Не сравнивайте строки оформления как числа и не складывайте их вручную в JavaScript страницы: расчёт корзины должен оставаться у WooCommerce.
Цена является частью предложения, но заказ сохраняет собственные сведения о покупке. Если завтра regular price изменится на 13, уже существующий учебный заказ не должен рассматриваться как автоматически пересчитанный по текущему каталогу. Это различие пригодится при reports: продажа относится к цене заказа, а не обязательно к сегодняшнему значению Product.
Официальные поля и типы описаны в Adding and Managing Products. Конкретная цена и лицензионная фраза нашего примера — авторские условия лаборатории. Они не являются рекомендацией по коммерческому ценообразованию или универсальным договором продажи.
Virtual и downloadable
Отметьте Virtual: товар не требует доставки. Затем Downloadable: товар должен предоставить файл. При downloadable появляются настройки файла, download limit и expiry. На этом шаге запишите limit три и expiry тридцать дней, но не вставляйте случайный URL из Media Library. Защищённую выдачу и загрузку правильным способом настроим в одиннадцатом уроке.
Отсутствие привязанного файла означает, что позиция ещё не готова к учебной выдаче, даже если карточка отображается. Это существенная граница последовательности. Мы можем изучать каталог и корзину до настройки downloads, но не должны объявлять полный путь покупки завершённым. В каждом разделе результат формулируется по тому, что действительно добавлено.
Virtual не означает downloadable автоматически. Если отметить только Virtual, WooCommerce не обязан выдать файл. Если отметить только Downloadable, товар может всё ещё участвовать в доставке. Для конспекта нужны обе отметки. Такое небольшое сравнение помогает объяснить настройки без заучивания расположения checkbox в конкретном интерфейсе.
В Inventory оставьте товар in stock и включите Sold individually. Нам не нужно ограничивать физический склад: цифровой текст не расходует коробки. Sold individually показывает отдельное правило предложения — одну копию позиции в заказе. Оно уместно в лаборатории, где личная копия не предполагает покупку пяти одинаковых файлов.
Публичное состояние в локальной витрине
Сохраните и опубликуйте товар в локальном WordPress. Убедитесь, что catalog visibility visible, а не hidden. Статус публикации управляет доступностью записи, visibility — способом попадания в каталог. Hidden-товар может иметь доступную страницу, поэтому не используйте этот переключатель как обещание приватности.
Ожидаемый результат — Product list показывает GRID-PDF и цену 12.00, карточка доступна по локальному permalink, а корзина позже сможет принять одну позицию. Ни один этот эффект не наблюдался в подготовке курса. Если товар не добавляется в корзину, сначала проверьте цену, stock status, visibility и выбранный тип; изображение само по себе не делает позицию purchasable.
Перемещение товара в категорию в следующем уроке не изменит его артикул и цену. Импорт трёх позиций будет обновлять GRID-PDF по SKU, поэтому ручной первый товар не следует создавать повторно. Запишите это состояние до перехода: название, SKU, 12.00, virtual, downloadable, sold individually, файл ещё не привязан. Такая маленькая спецификация помогает отличить ожидаемую незавершённость delivery от случайной ошибки каталога.
Для самостоятельного разбора снимите только Virtual и посмотрите, какие shipping-настройки появляются у товара; затем верните отметку. Не оформляйте заказ с непредусмотренной моделью доставки. Смысл опыта — увидеть независимость свойств. Цена, состояние и способ получения должны соответствовать написанному обещанию, прежде чем цифровой материал станет частью завершённого учебного checkout.