Задача
Вышивальная машина не воспроизводит RGB-картинку. Изображение раскладывается на ограниченную палитру нитей, и количество использованных цветов напрямую влияет на стоимость производства. Типовой рабочий набор, по воспоминанию владельца, — примерно восемь цветов. При этом не каждый цвет одинаково важен: одну нить можно исключить почти без заметного изменения логотипа, а удаление другой резко ухудшает результат. Значит, для одного и того же макета существует множество комбинаций палитры с разным визуальным качеством и разной ценой, и выбирать между ними должен клиент.
До автоматизации это выглядело так: клиент присылал менеджеру изображение, тип изделия и примерное расположение декора; менеджер открывал специализированную программу для вышивального оборудования, работавшую только под Windows; вручную перебирал сочетания и количество нитей; сохранял каждую подходящую конфигурацию отдельным файлом; считал стоимость и отправлял клиенту несколько вариантов на согласование. Перебор занимал рабочее время менеджера, зависел от доступности конкретного компьютера и растягивал ожидание на несколько дней.
Решение
Магазин. Основа — Magento. В каталоге футболки, кепки, толстовки, поло, куртки, сумки и аксессуары. Фильтровать их можно по типу изделия, бренду, стилю, материалу, цвету, размеру и доступности. Магазин работает и с товарами Garment Decor, и с изделиями, которые предоставил сам заказчик. Поддерживаются тиражи и ступенчатое ценообразование, корзина, промокоды, оплата, налоги и доставка. У покупателя есть кабинет с историей и повторным заказом. Административная часть закрывает каталог и остатки, цены и акции, покупателей, заказы, статусы производства и контент.
Конструктор заказа. Покупатель выбирает изделие, цвет, размер и количество, загружает логотип или фотографию и размещает изображение на изделии: масштаб, поворот, положение. Затем указывает область нанесения и количество цветов нитей и сразу видит предварительный расчёт стоимости. Подбирать технологическую комбинацию вручную ему не нужно.
Почему RPA. У специализированной программы не было подходящего API и полноценных аналогов. Переписывать её алгоритмы или вмешиваться в закрытый формат файлов оборудования — риск, который не окупается. Поэтому мы автоматизировали существующий инструмент. На виртуальных Windows-серверах развернули лицензированные экземпляры программы, и робот работает в них через интерфейс, как оператор: открывает заявку, загружает изображение, последовательно применяет допустимые конфигурации нитей и сохраняет подготовленные варианты.
Очередь. Между сайтом и настольной программой стоит очередь. Клиенту не нужно держать страницу открытой: после отправки в личном кабинете появляется карточка со статусом обработки, а задача выполняется в фоне на свободном экземпляре.
Сравнение вариантов. Для каждой конфигурации сохраняются визуальный результат, состав палитры и данные, необходимые для расчёта. Практически одинаковые результаты схлопываются: если удаление конкретной нити почти не повлияло на изображение, клиенту не показывают дубль. Стоимость собирается из выбранного изделия, тиража, размера и расположения вышивки, количества цветов и связанных производственных операций. Формула остаётся частью производственных правил, а покупатель видит понятную вилку: как выглядит результат и сколько стоит соответствующая конфигурация.
Отдельный жизненный цикл заявки. Заявка на декор существует отдельно от позиции корзины, потому что до обработки утверждённого производственного варианта ещё не существует. У неё десять состояний. Сначала черновик конфигурации, отправка на обработку, ожидание выполнения RPA, обработка и готовые варианты. За ними следуют выбор макета, ожидание согласования или оплаты, передача в производство, изготовление и отправка, завершение либо отмена. История хранит исходный файл, параметры размещения, сгенерированные варианты, выбранную конфигурацию, стоимость и решения клиента, поэтому повторный заказ не приходится восстанавливать из переписки.
Надёжность робота. Автоматизация настольного приложения требует контролируемой среды: зафиксированы версия Windows, разрешение экрана, расположение окон и версия лицензированного ПО, задания идут по очереди с учётом числа доступных экземпляров. К этому добавлены блокировка повторного запуска одной заявки, контроль открытия нужного окна и загрузки исходного файла, тайм-ауты на продолжительные операции и повтор безопасного шага после временного сбоя. Промежуточные результаты сохраняются, действия робота пишутся в журнал с причиной остановки, а за зависшими задачами и состоянием виртуальных машин следит мониторинг. Если программа закрылась или перестала отвечать, заказ не теряется: задача остаётся в очереди с зафиксированным этапом и продолжается роботом или оператором.
Передача в производство. После утверждения макета в заказ уходят товар и количество, расположение декора, выбранная конфигурация нитей, согласованный визуальный вариант и связанные файлы. Это страхует от расхождения между тем, что одобрил клиент, и тем, что попало на вышивальное оборудование.
Результат
Менеджеру больше не обязательно вручную перебирать палитры. Клиент обычно получает результаты в течение нескольких часов, а в простых случаях быстрее; раньше ожидание растягивалось на несколько дней. Весь цикл от загрузки изображения до выбора производственного варианта виден в личном кабинете.
Бизнес сохранил лицензированную программу и проверенный технологический процесс, но убрал из него рутину: подготовку вариантов стало возможно масштабировать без разработки собственного аналога вышивального ПО, а менеджеры переключились с механического перебора на исключения и работу с клиентом. Для покупателя выбор одежды, размещение изображения, расчёт, согласование макета, оплата и производство собрались в один сценарий с прозрачным статусом.