Перейти к основному содержимому

Каталог

Каталог — это единый справочник того, что компания продаёт. Все остальные модули (продажи, заказы, склад, календарь) ссылаются именно на него: продажа невозможна без позиции из каталога, склад хранит остатки тех же товаров, запись на услугу — это запись на конкретную услугу каталога.

Состав каталога

В каталоге живут три типа сущностей:

  • Товары — физические позиции, которые имеют остаток на складе (упаковка краски, шампунь, абонемент-карта).
  • Услуги — нематериальные позиции, не списываются со склада (стрижка, консультация, аренда часа).
  • Категории — иерархическая группировка для удобной навигации и фильтров в отчётах.

Ответственность

За ведение каталога обычно отвечает менеджер или администратор. Сотрудник за кассой видит каталог только в режиме чтения — выбирает позиции при пробитии чека, но не редактирует их.

Жизненный цикл позиции

  1. Создание. Менеджер заводит товар или услугу, указывает название, цену, категорию, единицу измерения. Для товара дополнительно задаётся начальный остаток на складе.
  2. Использование. Позиция доступна в кассе, заказах, календаре, отчётах.
  3. Скрытие. Позиция помечается как удалённая (soft-delete) — она исчезает из выбора, но остаётся в истории продаж и отчётах за прошлые периоды.

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

Цена и скидки

У позиции есть базовая цена. Скидки и наценки применяются на уровне продажи или заказа, а не на самой карточке товара — так одна позиция может одновременно продаваться по разной цене разным клиентам (по акции, постоянному клиенту, в составе абонемента).

Связь с другими модулями

  • Касса и продажи — выбор позиций для чека.
  • Склад — остаток ведётся по товарам каталога.
  • Заказы — позиции в составе заказа.
  • Календарь — запись клиента на услугу.

Типовые сценарии

  • Завести новую услугу перед запуском нового направления.
  • Скрыть товар, который больше не закупается, не теряя историю продаж.
  • Перегруппировать категории перед сезоном.