Перейти к содержимому
Все статьи
Разработка

Калькулятор обещал одну цену, счёт выставлен на другую: как хранить версию сметы

17 октября 2026 г.· 4 мин чтения
Две редакции сметы: пакет подорожал на 2000, опция за 5000 удалена, итог уменьшился на 3000; сохраняется история строк.
Постатейное сравнение важнее одного процента изменения цены. Открыть схему крупнее

Ситуация: опции не менялись, сумма изменилась

Клиент выбрал пакет и три дополнения, получил расчёт и вернулся к нему через неделю. На сайте обновился прайс. В кабинете он видит прежний состав и новую сумму без объяснения. Формально калькулятор посчитал правильно по сегодняшним правилам, но история предложения исчезла. Проблема не в арифметике, а в отсутствии версии расчёта.

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

Что сохранять кроме итоговой цифры

Снимок расчёта, который можно восстановить
ДанныеПочему без них возникнет спор
ID и версия пакетаНазвание пакета может остаться прежним при новом составе
Опции, количества и единицыЧасы, страницы и интеграции нельзя считать одинаково
Цена каждой строкиОдин итог не объясняет изменение стоимости
Правила скидки и округленияОдинаковые проценты могут применяться к разным основаниям
Версия алгоритмаИзменения логики влияют даже при прежнем прайсе
Срок действия и статусНужно отличить архивную оценку от действующего предложения

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

Изменение цены должно стать событием

При открытии старой сметы показывайте сохранённую редакцию. Если нужен пересчёт по текущему прайсу, создавайте новую и сравнивайте их. Отдельно обозначайте добавленную опцию, изменение количества, изменение цены и замену состава пакета. Фраза «итог вырос на 12%» не объяснит, почему именно это произошло.

Для подтверждения полезна явная кнопка «Принять новую редакцию». История сохраняет, кто и когда её подтвердил. Оплаченный заказ не должен молча менять цену от редактирования общего справочника. Дополнительные работы оформляют отдельным согласованием в рамках договора и процесса компании.

Один источник правил для трёх экранов

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

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

Учебный разбор двух редакций

В первой редакции пакет стоит 20 000, дополнение — 5 000. Во второй пакет стоит 22 000, а дополнение удалено. Итог уменьшился на 3 000, хотя базовый пакет подорожал. Если показать только процент изменения общей суммы, существенная замена состава останется незаметной.

Инструмент ниже сравнивает строки по устойчивому коду. Введите «код;количество;цена за единицу». Он покажет добавленные и удалённые позиции, изменение количества и стоимости. Модель не учитывает налоги, скидки, валютные пересчёты и повторяющиеся платежи. Для их сравнения нужны отдельные поля, а не догадки по названию строки.

Проверка готовности к запуску

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

Сравнение двух редакций учебной сметы

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

Материалы для проверки

Если нужна реализация

Состав работ зависит от текущего проекта и подтверждённой причины. Можно обсудить диагностику или разработку подходящего решения.

Разработка и продвижение Разработка веб-сервисов и личных кабинетов

Связанный материал: Смета на сайт: как читать КП и сравнить подрядчиков

Нужна помощь с проектом?

Обсудим задачу и предложим решение — от сайта до SaaS и защиты.

Связаться