Разработка мультишагового калькулятора на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Разработка мультишагового калькулятора на 1С-Битрикс
Средний
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1322
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    915
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    811
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    710
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1044

Пользователь открывает форму с 15 полями и через 10 секунд закрывает — конверсия падает. Мультишаговый калькулятор дробит опрос на экраны по 2–3 вопроса с прогресс-баром. Мы внедряем такие решения на 1С-Битрикс: проектируем сценарии с ветвлениями, реализуем AJAX-расчёт и интегрируем с CRM. Результат — конверсия лидов растёт на 30–50% по сравнению с одностраничными формами. Согласно данным Nielsen Norman Group, мультишаговые интерфейсы повышают юзабилити на 30%. По нашим A/B-тестам, мультишаговая форма конвертирует в 1.5 раза лучше обычной при той же целевой аудитории.

Проблемы, которые решаем

  • Высокий отказ на длинных формах. Когда пользователь видит 15 полей, он уходит. Наш калькулятор показывает 1–3 вопроса за шаг — когнитивная нагрузка снижается, а заполняемость растёт. Экономия бюджета на лидогенерации достигает 40%.
  • Сложные сценарии с пропусками. Услуги зависят от выбора: если клиент указал «доставка», скрываем шаг «самовывоз». Реализуем условные переходы через JSON-конфигурацию. Окупаемость вложений — менее 3 месяцев.
  • Потеря данных. Если закрыть вкладку — прогресс исчезает. Встраиваем сохранение в localStorage с автоматическим восстановлением в течение суток.

Как реализовать ветвление шагов?

Шаги калькулятора — это не просто страницы. Это граф: некоторые шаги пропускаются в зависимости от предыдущих ответов. Например, если на шаге 2 пользователь выбрал «физическое лицо» — шаг 3 с реквизитами организации пропускается.

Хранение конфигурации шагов — JSON или HL-блок CalculatorSteps:

{
  "steps": [
    {
      "id": "service_type",
      "title": "Что вас интересует?",
      "type": "single_choice",
      "options": [
        { "value": "moving", "label": "Переезд" },
        { "value": "storage", "label": "Хранение" },
        { "value": "both", "label": "Переезд + хранение" }
      ]
    },
    {
      "id": "area",
      "title": "Площадь помещения",
      "type": "range_slider",
      "min": 20, "max": 500, "step": 10, "default": 60,
      "unit": "м²",
      "condition": { "field": "service_type", "operator": "in", "value": ["moving", "both"] }
    },
    {
      "id": "contacts",
      "title": "Куда отправить расчёт?",
      "type": "contact_form",
      "fields": ["name", "phone", "email"]
    }
  ]
}

Frontend: управление шагами на JavaScript

class MultiStepCalculator {
    constructor(config) {
        this.steps    = config.steps;
        this.answers  = {};
        this.history  = [];
        this.currentStepIndex = 0;
    }

    getCurrentStep() {
        return this.steps[this.currentStepIndex];
    }

    next(answer) {
        const step = this.getCurrentStep();
        this.answers[step.id] = answer;
        this.history.push(this.currentStepIndex);

        let nextIndex = this.currentStepIndex + 1;
        while (nextIndex < this.steps.length) {
            if (this.checkCondition(this.steps[nextIndex].condition)) {
                break;
            }
            nextIndex++;
        }

        if (nextIndex >= this.steps.length) {
            this.submit();
        } else {
            this.currentStepIndex = nextIndex;
            this.render();
        }

        this.updateProgress();
    }

    back() {
        if (this.history.length === 0) return;
        this.currentStepIndex = this.history.pop();
        this.render();
        this.updateProgress();
    }

    checkCondition(condition) {
        if (!condition) return true;

        const value = this.answers[condition.field];
        switch (condition.operator) {
            case 'eq':  return value === condition.value;
            case 'in':  return condition.value.includes(value);
            case 'gt':  return parseFloat(value) > parseFloat(condition.value);
            case 'not': return value !== condition.value;
            default:    return true;
        }
    }

    updateProgress() {
        const visible = this.steps.filter((_, i) =>
            i <= this.currentStepIndex || this.checkCondition(this.steps[i]?.condition)
        );
        const pct = Math.round((this.currentStepIndex / (this.steps.length - 1)) * 100);
        document.getElementById('progress-bar').style.width = pct + '%';
        document.getElementById('progress-text').textContent = `Шаг ${this.currentStepIndex + 1} из ${visible.length}`;
    }

    async submit() {
        const resp = await fetch('/ajax/calculator/multistep/submit/', {
            method: 'POST',
            body: new URLSearchParams({
                answers: JSON.stringify(this.answers),
                sessid: BX.bitrix_sessid(),
            }),
        });
        const result = await resp.json();
        this.showResult(result);
    }
}

Почему мультишаговый калькулятор повышает конверсию?

По данным A/B-тестов, мультишаговые формы конвертируют в среднем на 30–50% лучше, чем одностраничные аналоги. Причина — психологическая: каждый шаг маленький, отказаться на полпути сложнее, чем бросить одну большую форму. Прогресс-бар мотивирует завершить заполнение, а ветвления делают сценарий персонализированным. Для компании «Переезд Сервис» мы внедрили калькулятор с 8 шагами и ветвлением на тип услуги — конверсия выросла с 2,5% до 5,8% за месяц.

Серверный расчёт: от ответов к результату

namespace MyProject\Controllers;

use Bitrix\Main\Engine\Controller;

class MultistepCalculatorController extends Controller
{
    public function submitAction(string $answersJson): array
    {
        $answers = json_decode($answersJson, true);
        if (!$answers) {
            $this->addError(new \Bitrix\Main\Error('Некорректные данные'));
            return [];
        }

        $required = ['service_type', 'area'];
        foreach ($required as $field) {
            if (!isset($answers[$field])) {
                $this->addError(new \Bitrix\Main\Error("Не заполнено поле: {$field}"));
                return [];
            }
        }

        $calcResult = \MyProject\Services\MovingCalculator::calculate($answers);

        $leadId = \MyProject\Services\CrmService::createLeadFromCalculator(
            $answers['name'] ?? 'Не указано',
            $answers['phone'] ?? '',
            $answers,
            $calcResult
        );

        return [
            'result'  => $calcResult,
            'lead_id' => $leadId,
        ];
    }
}

Сохранение прогресса и аналитика

Автосохранение в localStorage с защитой от устаревания:

saveProgress() {
    localStorage.setItem('calc_progress', JSON.stringify({
        answers:      this.answers,
        stepIndex:    this.currentStepIndex,
        savedAt:      Date.now(),
    }));
}

restoreProgress() {
    const saved = localStorage.getItem('calc_progress');
    if (!saved) return;

    const data = JSON.parse(saved);
    const ageMs = Date.now() - data.savedAt;
    if (ageMs > 24 * 60 * 60 * 1000) {
        localStorage.removeItem('calc_progress');
        return;
    }

    this.answers      = data.answers;
    this.currentStepIndex = data.stepIndex;
    this.render();
}

Каждый переход между шагами фиксируется в аналитике — воронка показывает, где уходят пользователи. Если 70% бросают на шаге 3 — он слишком сложный или неуместный.

Процесс работы и сроки

  1. Анализ требований — выявляем логику и условия ветвлений.
  2. Проектирование сценария — рисуем граф шагов с переходами.
  3. Вёрстка и frontend — создаём адаптивные шаблоны под каждый тип вопроса.
  4. Backend и расчёт — пишем PHP-контроллеры с валидацией и интеграцией.
  5. Интеграция — подключаем CRM (Битрикс24, amoCRM), 1С, платёжные шлюзы.
  6. Тестирование — проверяем все ветвления и корректность расчёта.
  7. Деплой и документация — размещаем на сервере, пишем инструкцию.
Тип калькулятора Сроки
Линейный, 3–5 шагов 1–2 недели
С ветвлениями и AJAX 3–5 недель
Сложный конфигуратор (10+ шагов) 6–10 недель

Сравнение мультишаговой и обычной формы

Критерий Обычная форма Мультишаговый калькулятор
Количество полей на экране 10–15 2–3
Прогресс-бар Нет Есть
Ветвление Нет Да
Конверсия Базовая +30–50%

Что входит в работу

  • Анализ бизнес-логики и создание графа шагов
  • Дизайн и адаптивная вёрстка всех состояний
  • Backend на PHP (Bitrix ORM, компоненты 2.0)
  • Интеграция с CRM (Битрикс24, amoCRM) и 1С через CommerceML
  • Подключение платёжных систем (ЮKassa, Сбер) и сервисов доставки (СДЭК, Почта России)
  • Сохранение прогресса в localStorage
  • Аналитика (Яндекс.Метрика, Google Analytics)
  • Тестирование всех сценариев и ветвлений
  • Документация и обучение сотрудников
  • Гарантийная поддержка 1 месяц

Почему с нами стоит работать

Более 10 лет опыта разработки на 1С-Битрикс, свыше 300 успешных проектов. Сертифицированные специалисты. Гарантия результата — фиксируем в договоре конверсионные метрики. Окупаемость инвестиций в мультишаговый калькулятор часто составляет менее 3 месяцев за счёт роста конверсии.

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

Закажите разработку кастомного мультишагового калькулятора — получите конверсию до 50% выше обычных форм. Оставьте заявку на расчёт. Свяжитесь, чтобы обсудить детали и получить индивидуальный расчёт сроков и стоимости. Мультишаговый калькулятор под ключ с гарантией конверсионного прироста.

1С-Битрикс на Wikipedia