Типовой сценарий · Python · расчёт

Расчёт стоимости заказа и КП: сервис на Python

Цена заказа считается в Excel-файле, который понимает один человек. Менеджеры ждут расчёта, ошибаются в формулах, а клиент получает КП на следующий день.

Контекст задачи

В производстве, печати, мебели на заказ, грузоперевозках или монтаже цена зависит от многих параметров: размеры, материал, тираж, срочность, доставка, скидки за объём. Обычно всё это живёт в большом Excel-файле с формулами, который ведёт один сотрудник. Пока он в отпуске, расчёты встают, а в копиях файла у менеджеров расходятся цены. Сценарий переносит правила расчёта в отдельный сервис на Python: менеджер вводит параметры в форму или в Telegram-боте, получает цену с разбивкой и готовое КП, а правила хранятся в одном месте и проверяются тестами.

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

Вход

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

Логика

Сначала разбираем существующий Excel и записываем правила явно: какие параметры, какие формулы, где исключения. Правила переносятся в код на Python, а цены и коэффициенты в таблицу или базу, чтобы их менял менеджер без программиста. На каждое правило пишется тест на примерах прошлых заказов: сервис должен посчитать так же, как расчёт, который компания уже признала верным. Менеджер вводит параметры в форму на сайте, во внутренней панели или в Telegram-боте, а сервис возвращает цену с разбивкой по статьям. Если параметры выходят за границы правил, например нестандартный размер или скидка выше лимита, расчёт уходит руководителю на подтверждение. После подтверждения сервис собирает КП в PDF с номером и сроком действия и записывает его в сделку.

Интеграции

Python, FastAPI, PostgreSQL или Google Sheets для прайса и коэффициентов, генерация PDF по шаблону, CRM по API (Битрикс24, amoCRM и другие), форма на сайте, внутренняя панель или Telegram-бот, тесты на pytest.

Результат

Менеджеры считают заказ сами и одинаково, клиент получает КП в тот же разговор, а изменение цены материала правится в одном месте и сразу действует во всех расчётах.

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

Что получает бизнес

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

Правила прозрачны и защищены от случайных правок. Цены и коэффициенты меняются в таблице, логика расчёта живёт в коде под тестами: если правка ломает прошлый расчёт, тест покажет это до того, как ошибка уйдёт клиенту. Скидки выше лимита и нестандартные параметры не проходят молча, а ждут подтверждения руководителя.

КП выходит в едином оформлении, с номером, датой и сроком действия, и сразу сохраняется в CRM вместе с параметрами расчёта. Видно, сколько КП выставлено, по каким позициям и с какими скидками, без поиска по почте. Если расчёт нужен клиентам напрямую, тот же сервис можно подключить к калькулятору на сайте.

Кому подходит сценарий

Сценарий подходит компаниям, где цена считается по параметрам, а не берётся из прайса: производству и цехам, типографиям, мебели и окнам на заказ, рекламным конструкциям, грузоперевозкам, монтажным и ремонтным бригадам, оптовым поставщикам со сложными скидками. Он полезен, когда расчёт держится на одном файле или одном человеке. Начать можно с одного продукта и простого шаблона КП, а остальные продукты переносить по одному.

Похожая задача?

Расчёт стоимости заказа и КП: сервис на Python

Опишем, как адаптировать этот сценарий под ваши данные и системы. Без обязательств.

Получить план автоматизации