Конфигуратор продуктов

Конфигуратор продуктов (/admin/tsync_product_configurator) позволяет продавать настраиваемые продукты — товары, которые клиент собирает из вариантов (размер, цвет, материал, опции) вместо одного фиксированного SKU. Вы один раз задаёте варианты выбора, устанавливаете правила, какие комбинации допустимы и как меняется цена, а TSync превращает выбор в конкретный вариант продукта.

Продать настроенный продукт — шаг за шагом

Это то, что вы делаете каждый день. Остальная часть страницы — подготовка за кулисами; здесь само применение.

Работает одинаково, что бы вы ни настраивали — окно, дверь, мебель, оборудование, пакет услуг или что угодно ещё, что вы описали как настраиваемую модель. Шаги одни и те же; отличаются только параметры, которые вы видите.

а) Откройте конфигуратор из документа

Зайдите в Продажи → Сметы → Создать смету (так же работает на счетах, предложениях и кредит-нотах, если вы отметили их в Настройках). Выберите клиента, затем нажмите кнопку «Настроить продукт» над списком позиций. Откроется окно «Конфигуратор продукта».

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

б) Выберите модель и параметры

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

Если вы продаёте… параметрами могут быть…
столярные изделия размер, тип стекла, фурнитура, цвет профиля
мебель размер, стиль, основной материал, дополнительный материал
оборудование мощность, напряжение, аксессуары, расширенная гарантия
услуги тариф, число пользователей, срок, SLA

По мере выбора цена считается сама из модели + параметров + правил ценообразования. Её никогда не вводят руками. Правила могут также скрывать или запрещать несовместимые варианты, поэтому невозможную комбинацию нельзя выбрать по ошибке.

Если кнопка добавления остаётся серой, наведите на неё курсор: она скажет, чего ещё не хватает, а не оставит вас гадать.

в) Добавьте строку в документ

Нажмите «Добавить в документ» — и строка попадёт в смету с описанием конфигурации, рассчитанной ценой и уникальным кодом (SKU). Окно закроется само; можно настроить ещё один продукт для того же документа.

Каждая настроенная строка — самостоятельный продукт: две единицы из разных материалов — это две строки, с двумя SKU и двумя ценами.

Открыть

Конфигуратор в боковом меню или /admin/tsync_product_configurator (открывает панель).

Составные части

  • Шаблоны — настраиваемый продукт (например Окно, Футболка, Стол). Всё остальное привязано к шаблону.
  • Атрибуты — выбор, который делает клиент (например Размер, Цвет, Тип стекла).
  • Значения — варианты внутри атрибута (например Малый / Средний / Большой). Значения можно импортировать массово.
  • Варианты — итоговые конкретные комбинации, у каждой свой код и цена.
  • Правила — логика: если сделан выбор, то разрешить/запретить другой, добавить наценку, задать значение по умолчанию, показать/скрыть опцию… Движок правил безопасен и предсказуем (без произвольного кода), поэтому один и тот же выбор всегда даёт один и тот же результат.

Создать настраиваемый продукт, кратко

  1. Шаблоны → создайте шаблон продукта.
  2. Атрибуты → добавьте варианты выбора (Размер, Цвет…).
  3. Значения → добавьте опции для каждого атрибута (при необходимости импортируйте длинный список).
  4. Правила → задайте, что разрешено и как корректируется цена.
  5. Варианты → просмотрите комбинации, которые дают выбор + правила.

Загрузить много моделей сразу (импорт CSV)

Когда моделей десятки — или когда список ещё несколько раз будет уточняться — не вводите их по одной. На странице Модели есть кнопка Импорт CSV.

Файлу нужна одна обязательная колонка: code. Остальные берут разумные значения по умолчанию, поэтому файл из двух колонок (code, name) уже даёт рабочие настраиваемые модели. Страница импорта показывает все колонки и их значения по умолчанию.

Сначала нажмите «Симулировать». Ничего не записывается: построчно показывается, что было бы создано, что обновлено и что пропущено, с примечаниями. И только когда отчёт выглядит как ожидается, вы нажимаете Импорт.

Тот же файл можно загружать повторно. Модели сопоставляются по code, поэтому исправленный файл обновляет существующие модели, а не создаёт второй набор рядом. Именно поэтому имеет смысл начать с приблизительных данных и уточнять их.

Что важно знать:

  • Списки пишутся через ; — например invoice;estimate или 2250;2050;1900.
  • Код, использованный двумя строками, отклоняется, а не угадывается. Если в файле две разные модели с одним кодом, импорт назовёт их и не запишет ни одну: иначе вторая молча заменила бы первую.
  • valid_sizes ограничивает допустимые размеры модели. Пусто — допустимы все. При каждом импорте список заменяется, поэтому размер, убранный из файла, действительно исчезает.

Проверьте правило, прежде чем на него полагаться

Правила быстро усложняются — «этот тип стекла доступен только свыше 1200 мм и добавляет 12 %». Вместо того чтобы сохранить правило и надеяться, используйте Симуляцию: выберите сочетание значений, и TSync покажет, что решает движок — какие варианты остаются доступными, какие становятся обязательными или запрещёнными и каким будет итоговая цена.

Движок детерминирован (правило не содержит произвольного кода), поэтому показанное в симуляции — ровно то, что получит клиент.

Что происходит после того, как настроенная строка попала в документ

Настроенная строка — не обычная товарная строка. Она несёт выбор клиента, поэтому кто-то должен решить, как она будет фактически исполнена, — и до этого момента строка находится в очереди на рассмотрение.

Откройте Конфигуратор → Рассмотрение из документа или /admin/tsync_product_configurator/review/invoice/123 (работает для счетов, смет, предложений и кредит-нот). Для рассмотрения нужно право decide: умение создавать шаблоны — не то же самое, что право обязать компанию что-то произвести.

Для каждой строки выбирается одно из четырёх:

Решение Что делает TSync
Запустить производство Разворачивает спецификацию материалов шаблона под выбранные опции, масштабирует её по количеству строки и создаёт производственный заказ. Если модуль «Производство» не установлен, строка помечается как в производстве с примечанием, что исполнение ручное, — она никогда не теряется молча.
Заказать материалы Сначала проверяет наличие каждого материала на складе шаблона по умолчанию, затем заказывает недостающее. Дефицит виден до того, как вы примете обязательство.
Продать со склада Помечает строку исполненной из имеющегося запаса — без производства и без закупки.
Отклонить Возвращает строку. Причина обязательна — отклонение без причины не принимается, потому что тому, кто настраивал, нужно знать, что менять.

Каждое решение записывается по строке, поэтому документ всегда отвечает на вопрос «кто решил и что именно».

Весь путь, от заказа до счёта

Чтобы увидеть, где конфигуратор смыкается с остальной системой, вот сквозной цикл продукта, изготавливаемого под заказ, — те же этапы, производите ли вы столярные изделия, мебель или оборудование:

Смета с настроенной строкойЗапустить в производство (из очереди рассмотрения) → производственный заказ со спецификацией, разрешённой под выбранные параметры → изготовление, материалы списываются со склада по мере расхода → завершение, готовый продукт поступает на склад со своей партией → отгрузкасчёт.

Каждый шаг оставляет след, поэтому всегда известно, где какой заказ. О производственной части — рецептуры, производственные заказы, рабочие центры, контроль качества и партии — см. руководство Производство.

Если вы производите ПОД ЗАКАЗ

По умолчанию «Запустить в производство» заблокирована, пока не хватает материала. Это правильное правило, если материал лежит на складе: запуск, который нельзя завершить, начинать нельзя.

Но если вы производите под заказ — конфигурируете и изготавливаете под каждый заказ, — полного набора материалов до заказа у вас не бывает никогда, и блокировка останавливает ваш обычный поток. Включите Конфигуратор → Настройки → Производство → «Производство под заказ».

Тогда при нехватке показывается предупреждение с недостающими позициями, кнопка остаётся активной, а запуск создаёт производственный заказ с записанной на нём нехваткой. Материалы заказывайте параллельно — кнопкой рядом; производство списывает их предварительно, пока они не поступят.

Если настройка выключена, попытка запуска при нехватке отклоняется с указанием недостающего материала — а не просто серой кнопкой.

Спецификации материалов

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

Материал, который выбирает клиент — строка-слот

Большинство строк спецификации называют конкретный материал: две штуки такого, три метра сякого. Строка-слот вместо этого называет опцию. Количество задано моделью — на диван, к примеру, идёт 11 погонных метров ткани, а на дверь — один лист шпона, — а какой именно ткань, решает клиент, и стоимость следует за позицией, стоящей за этим выбором.

Именно это заставляет стоимость материалов меняться при переходе с одной ткани на другую. Без строки-слота в спецификации ткани нет вообще, и все ткани стоят одинаково — очень убедительный способ ошибиться.

В импортируемом файле строка-слот несёт attribute_code (например, material_principal) вместо колонки material_code, а component_type равен slot. Она не создаёт позицию: позицией станет то, что выберут. Строка-слот без кода атрибута или с несуществующей в этой установке опцией называется по имени в отчёте об импорте и пропускается — но никогда не импортируется как строка, которая молча стоила бы ноль.

Проверка цифр

Спецификация теперь показывает по каждой строке использованную цену за единицу и стоимость строки рядом с количеством — и при проверке наличия, и в предпросмотре. Строка без записанной цены показывает прочерк, а не ноль: «цена не задана» и «бесплатно» — разные факты, а ноль отправил бы кого-то пересматривать цену, которую никогда не вводили.

Откуда берётся стоимость работы

Цена модели состоит из двух половин: материалы, которые берутся из её спецификации, и работа, которая берётся из производственного маршрута.

В форме модели поле Производственный маршрут (работа) перечисляет маршруты, заданные в модуле «Производство», каждый со своей стоимостью, — чтобы выбрать нужный класс работ, не открывая их по одному. Оставьте пустым — стоимость работы равна 0, как сейчас у всех моделей.

Число считается так, как ваша установка считает труд. Если операции оплачиваются по времени, это наладка плюс цикл по часовой ставке рабочего центра с учётом его эффективности. Если вы включили фиксированные цены за операцию, используется фиксированная цена — это два альтернативных ответа, они никогда не складываются.

До этого выпуска стоимость работы была всегда 0,00 для каждой модели, потому что её ничто не предоставляло. Показанная рядом маржа была неверна на всю стоимость работы. Если вы опирались на эти маржи, они изменятся, как только вы привяжете маршруты: прежние были не осторожными, а неполными.

Чтобы сопоставить много моделей сразу: импорт CSV принимает колонку routing_id или routing_code. Если колонку оставить пустой, маршрут каждой модели останется прежним — в отличие от остальных колонок, пустая ячейка здесь не стирает то, что вы выбрали в форме.

Как читать код настроенной строки (SKU)

Каждая настроенная строка получает уникальный код. Это не случайное число: он строится по шаблону, который задаёте вы, чтобы любой на производстве или складе понимал по одному коду, что именно нужно сделать — не переспрашивая.

Шаблон пишется в Конфигуратор → Настройки → Шаблон SKU, а у модели может быть свой (поле Шаблон SKU в форме модели), когда ей нужна другая форма. Он записывается как набор подстановок:

Подстановка Что подставляет в код
{TEMPLATE} настраиваемая модель (продукт)
{MODEL} код выбранной модели
{SIZE} выбранный размер
{STYLE} выбранный стиль
{MP_CODE} / {MP_NAME} основной материал — код или название
{MS_CODE} / {MS_NAME} дополнительный материал — код или название
{ATTR_CODE} / {ATTR_VALUE} любой другой атрибут и его значение
{DATE} · {SEQ} · {HASH} дата, порядковый номер, короткий отпечаток конфигурации

Подстановка, для которой в конфигурации нет значения, просто исчезает — она не остаётся странным словом посреди кода. Именно поэтому один шаблон подходит и модели с четырьмя параметрами, и модели с двумя.

Два примера по одному шаблону PCFG-{MODEL}-{SIZE}-{STYLE}-{MP_NAME}:

PCFG-F2-1200-DUB-TERMOPAN     окно: модель F2, 1200 мм, открывание DUB, стеклопакет TERMOPAN
PCFG-D1-1900-S1-CATANIA       мебель: модель D1, 1900 мм, стиль S1, материал CATANIA

Читается так: PCFG — продукт из конфигуратора, дальше каждая часть — один выбор, сделанный в окне конфигуратора, в порядке, заданном шаблоном. Любой на производстве понимает по коду, что нужно изготовить.

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

В документах и клиентском портале

Когда вы добавляете настраиваемый товар, открывается окно конфигуратора, чтобы сделать выбор (вы или клиент, если конфигуратор клиентского портала включён в Настройках), и итоговый вариант + цена попадают в документ. Включайте/выключайте портальный конфигуратор в Настройках модуля.

Что заказывают чаще всего и сколько это стоило тогда

Конфигуратор → Variante folosite в боковом меню открывает страницу Спрос по конфигурациям (/admin/tsync_product_configurator/variants) — место, где всё, что сконфигурировала команда, превращается в решение по складу, принимаемое до сезона, а не после.

Она отвечает сразу на два вопроса:

  • что заказывают больше всего и
  • как двигалась себестоимость, пока это заказывали.

Считается количество, а не появления

Мера — заказанное количество. Строка на одну единицу и строка на сорок — это не одинаковый спрос, хотя каждая из них является одной конфигурацией в одном документе. Если вы где-то читали цифру «использований» и планировали склад по ней, здесь рейтинг окажется другим — и более полезным.

Выберите группировку строк

Три группировки, переключаются вверху страницы:

Группировка Одна строка — это
Конфигурация точное сочетание выборов — по умолчанию
Модель всё, что построено из одной модели, при любых опциях
Вариант конкретный сохранённый вариант со своим кодом

Фильтры: поиск (SKU, название, код модели), модель, тип документа и диапазон дат. Исключить отклонённые включено по умолчанию: строка, от которой клиент отказался, — это отозванный интерес, а не спрос, и её подсчёт как раз и есть та ошибка, которая заполняет склад.

Как читать таблицу

Каждая строка показывает что сконфигурировано, количество, сколько раз это конфигурировали, среднюю себестоимость, диапазон себестоимости, стоимость и последний заказ. Любой заголовок столбца, на который можно нажать, сортирует весь набор, а итоги над таблицей считаются по всему, что попадает под фильтры, а не только по видимой странице.

Разверните строку — и она раскроется в каждое отдельное использование: документ, дата, количество, статус и себестоимость, которую это использование несло тогда.

Две вещи о себестоимости, которые стоит знать до решения

Среднее взвешено по количеству. Одна штука по 900 и сорок по 1000 дают 997,56, а не 950. Простое среднее выглядит защитимым и ошибается ровно в ту сторону, которая потом делает закупочное решение «обоснованным».

Использование записывает свою себестоимость в момент создания. Строки, внесённые до того, как ваша установка начала это делать, заполнены текущей себестоимостью варианта — а это не то, сколько он стоил тогда; такие помечены прибл., и пока вся установка находится в этом состоянии, вверху страницы висит примечание. Тренд, который молча смешал бы одно с другим, нарисовал бы прямую линию и выдал бы её за доказательство стабильных цен.

Те же данные в виде отчётов

Три отчёта зарегистрированы в консоли отчётов (Отчёты в боковом меню) — их можно фильтровать, строить по ним графики, выгружать в CSV/XLSX, сохранять как представление или отправлять по расписанию на почту:

Отчёт Что даёт
Top configurations by quantity (топ конфигураций по количеству) какие именно конфигурации заказывали больше всего, по количеству
Demand by model, per month (спрос по модели, помесячно) количество по модели за месяц — форма, из которой принимают предсезонное решение по складу
Configuration cost over time (себестоимость конфигурации во времени) средневзвешенная по количеству себестоимость по конфигурации и месяцу, со столбцом cost basis, который сообщает, реальный это снимок по использованию или подставленная текущая себестоимость

Чтобы отчёты появились, у вашей роли должно быть право просматривать отчёты конфигуратора.

Настройки

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