Товары и категории

Создание товара, цена в копейках, галерея, варианты, остатки, теги, slug, видимость по сайтам и агентам.

Товары и категории

Каталог товаров живёт в текущем активном workspace. Один товар может показываться сразу на нескольких сайтах и быть доступен нескольким агентам — это управляется правилами видимости.

Где создавать

/account/commerce → вкладка «Товары» → кнопка «Создать товар».

Поля карточки

ПолеОписание
НазваниеВидно покупателю и попадает в search_products LLM-tool.
SlugКороткое имя для URL /p/<slug>. Уникален в пределах workspace. Заполняется автоматически из названия, можно править.
ОписаниеПодробный текст, который видит покупатель и который LLM использует при поиске и пересказе.
ЦенаВ рублях, хранится в копейках. Можно задать зачёркнутую цену (comparePrice) для отображения скидки.
ВалютаПо умолчанию RUB.
SKUОпциональный артикул для учёта.
ГалереяМассив картинок (url, alt). Первая используется как preview и og:image.
ВариантыРазмер / цвет / любой атрибут. Каждый вариант — со своим priceDelta к базе и собственным stock. Если массив пуст — товар без вариантов.
Остатки (stock)Целое число. Работает только при trackInventory=true. Декрементируется при paid, возвращается при cancel.
Учитывать остатки (trackInventory)Чек: если выключен — товар можно продавать неограниченно (актуально для цифровых товаров / услуг).
ТегиМассив строк для AI-поиска и быстрых фильтров. Например ["сезон-весна", "хит"].
Требует доставки (requiresShipping)Если включено — в чекауте появляется блок адреса и способа доставки. Также включает доступность cash-on-delivery.
АктивенЕсли выключен — товар не виден в публичном каталоге и не находится search_products.
54-ФЗ: paymentSubjectcommodity (товар) / service / job. Попадает в фискальный чек YooKassa.
54-ФЗ: vatCode1 без НДС (default, типично для УСН/самозанятых), 4 НДС 20%, и т.д. Должен совпадать с вашим налоговым режимом.

Категории

/account/commerce → вкладка «Категории».

  • Иерархия через self-FK (parentId) — категория может иметь подкатегории.
  • Slug уникален в пределах workspace, попадает в URL'ы.
  • Один товар через M2M (product_to_category) может быть в нескольких категориях сразу. Например, «футболка» — в «Одежда» и в «Лето».
  • Категории общие для товаров и услуг: M2M service_to_category использует ту же таблицу. Полезно, когда у бизнеса смешанный каталог (косметология, йога — товары + занятия в одной рубрике).

Видимость

По умолчанию товар виден везде в workspace — на всех сайтах и у всех агентов. Если нужны исключения — заполните таблицы видимости:

  • Видимость по сайтам (product_site_visibility) — товар показывается только на выбранных сайтах. Полезно: один товар на основном магазине, скрыт на блоге.
  • Видимость по агентам (product_agent_visibility) — товар продаётся только указанными агентами. Полезно: специализированные ассортименты у разных ботов.

Логика «пусто = виден всем» одинаковая для обеих таблиц.

В UI это управляется чекбоксами в карточке товара.

Поиск

Каталог индексируется через pg_trgm (GIN-индексы на name + description) — даже на каталоге 5000+ SKU ILIKE-поиск с любыми wildcards отвечает быстро. Сортировки:

  • relevance — pg_trgm similarity (name ×2 + description);
  • price_asc / price_desc;
  • newest.

LLM-tool search_products, который доступен агенту, бьёт по тому же индексу — поэтому скорость и качество результатов одинаковые, что в чате, что в UI.

Импорт и массовые операции

Сейчас массового импорта/экспорта CSV в UI нет — товары создаются по одному. Если нужно перенести каталог из другой системы, готовьте JSON и грузите через API.

Что хранится в БД

ТаблицаЧто
commerce_productКарточка товара
product_categoryКатегории (hierarchical через parentId)
product_to_categoryM2M товар ↔ категория
product_site_visibilityВидимость по сайтам (пусто = везде)
product_agent_visibilityВидимость по агентам (пусто = всем)

На этой странице