Задача
Индивидуальная вывеска обычно заказывается перепиской. Клиент описывает размеры и материал, отправляет логотип, получает макет, просит изменения, согласует стоимость — и только после этого заказ уходит в работу. Такой цикл не масштабируется, а главное, между визуальным пожеланием клиента и производственной спецификацией остаётся разрыв, который каждый раз закрывается вручную и каждый раз может закрыться неправильно.
Перенести цикл в self-service мешает физика. Растровый логотип, отличный на экране, разваливается на табличке шириной в метр. Контур, нарисованный мышью, не всегда можно безопасно вырезать. Крепление, доступное для алюминия, не применимо к виниловой надписи. Значит, редактор обязан не просто рисовать, а знать производственные ограничения и сообщать о них до оплаты. Плюс к этому платформа должна была обслуживать и разовую покупку частного клиента, и корпоративные серии с одним макетом и разными подписями, оплату по счёту и локализованные страновые витрины.
Решение
Каталог в четырёх разрезах. Войти в продукт можно по типу изделия, по материалу и технологии, по назначению — дверные, парковочные, информационные, предупреждающие, фасадные, магазинные, номерные таблички — или сразу по готовому дизайну. Так можно начать не с производственного термина, а с задачи покупателя.
Универсальная модель продукта. Каждое изделие описывается не SKU, а набором взаимосвязанных параметров: тип продукции, способ изготовления, материал и его вариант, ширина и высота, стандартная или свободная форма, параметры контурной резки, основной и дополнительные цвета, изображения и текст, способ крепления, количество, производственные ограничения, расчётная цена и подготовленные файлы. Правила продукта отсекают несовместимые комбинации. Самая неочевидная механика — переход на другое изделие: редактор переносит дизайн там, где это возможно, и корректирует параметры, которые новый материал или способ производства не поддерживает.
Редактор, который знает про производство. Из редактора можно переключаться между типами изделий, не возвращаясь в каталог. Ширина и высота задаются числом и интерактивными контролами, для тиража есть быстрые варианты. Графика берётся из внутренней библиотеки или загружается пользователем, поддерживаются векторные и растровые форматы. Текст добавляется отдельными объектами со шрифтом, размером, начертанием, выравниванием и цветом — каждый остаётся редактируемым элементом макета. Формы и контур вокруг изображения связаны с производственными ограничениями, поэтому пользователь видит приближённый результат изготовления, а не абстрактный рисунок. Набор допустимых цветов зависит от материала и технологии, а способы монтажа показываются только там, где они применимы. Плюс обычная рабочая механика: undo и redo, копирование, порядок слоёв, выравнивание. Внизу всегда физический размер, количество и итоговая стоимость, а если изображение выходит за безопасный масштаб — предупреждение до оформления заказа.
Preflight на входе. Загруженный файл проходит техническую обработку: проверку типа и читаемости, получение фактических размеров, оценку разрешения при выбранном физическом масштабе, создание preview, контроль выхода за рабочую область. Оригинал хранится отдельно от экранного представления и привязывается к пользователю, макету и заказу. Файлы с неподдерживаемым содержимым или недостаточным качеством уходят в сценарий ручной проверки, а не тихо в печать.
Цена как функция конфигурации. Стоимость не хранится значением в карточке — она считается из типа продукта, материала, размеров, технологии, формы или контура, крепления, количества и дополнительных операций, с учётом тиражных условий. Требование к расчётному модулю было простым и жёстким: одна и та же конфигурация должна одинаково интерпретироваться в редакторе, корзине, checkout и back office, а зафиксированный расчёт — сохраняться внутри заказа.
Сохранение и передача макета. Дизайн получает устойчивую ссылку: к нему можно вернуться позже, отправить другому человеку по почте, получить его и заказать либо доработать. Сохраняется не картинка, а редактируемая структура — продукт, размеры, элементы холста, стили, слои, исходные файлы и производственные параметры. Для пользователя без аккаунта предусмотрен сценарий создания доступа через электронную почту. Для корпоративных серий базовый макет работает как мастер-шаблон: разные имена, номера или подписи обрабатываются как варианты одного заказа с обязательной проверкой перед производством.
Снимок конфигурации в заказе. Платёжный callback обрабатывается идемпотентно — повторный ответ провайдера не создаёт второй заказ и не запускает производство повторно. Заказ хранит immutable-снимок конфигурации, поэтому позднее изменение сохранённого дизайна не меняет уже оплаченную производственную задачу, а производственная версия файла лежит отдельно от последующих правок клиентского макета. Уже запущенный заказ остаётся воспроизводимым.
Явные состояния вместо переписки. Расхождения между редактором и производством переведены в состояния и очереди: контур невозможно безопасно изготовить, сохранённый дизайн использует снятый с продажи материал, два клиента одновременно редактируют shared-макет, заказ оплачен, но производственный экспорт временно недоступен, одна позиция требует ручной проверки, а остальные готовы. Каждый такой случай виден в back office как задача, а не всплывает письмом.
Результат
Sign Labs превратил заказ персонализированной печатной продукции в сквозной цифровой сценарий. Покупатель сам собирает визуальный макет и коммерческую конфигурацию, а система сохраняет те же данные как производственное задание: заказ, продукт, материал, размеры, тираж, технология, цвета, контур, крепление, исходный и подготовленный файлы, preview и предупреждения — без повторного ручного набора.
Товарная модель и редактор централизованы, а локализованные витрины настраивают язык, домен, валюту, налоги, доставку и платёжные сценарии поверх общего производственного ядра. Событийная аналитика показывает весь путь — от запуска редактора до ошибок загрузки, sharing, оплаты и причин ручной проверки, — поэтому улучшать можно не только конверсию магазина, но и качество входящих производственных заданий.