משתמש פותח טופס עם 15 שדות וסוגר אותו אחרי 10 שניות — ההמרה צונחת. מחשבון רב-שלבי מפצל את הסקר למסכים של 2–3 שאלות עם פס התקדמות. אנו מיישמים פתרונות כאלה על 1C-Bitrix: אנו מתכננים תרחישים עם הסתעפויות, מיישמים חישוב AJAX ומשתלבים עם CRM. התוצאה — המרת הלידים גדלה ב-30–50% בהשוואה לטפסים חד-שלביים. לפי Nielsen Norman Group, ממשקים רב-שלביים משפרים את השימושיות ב-30%. בבדיקות A/B שלנו, טופס רב-שלבי ממיר פי 1.5 טוב יותר מטופס רגיל עבור אותה קהל יעד.
בעיות שאנו פותרים
- נטישה גבוהה בטפסים ארוכים. כשמשתמש רואה 15 שדות, הוא עוזב. המחשבון שלנו מציג 1–3 שאלות בכל שלב — העומס הקוגניטיבי יורד, ושיעור ההשלמה עולה. החיסכון בתקציב לייצור לידים מגיע ל-40%.
- תרחישים מורכבים עם דילוגים. שירותים תלויים בבחירות: אם לקוח בוחר "משלוח", אנו מסתירים את השלב "איסוף עצמי". אנו מיישמים מעברים מותנים באמצעות קונפיגורציית JSON. ROI — פחות מ-3 חודשים.
- אובדן נתונים. אם סוגרים את הטאב — ההתקדמות נעלמת. אנו מטמיעים שמירה ב-localStorage עם שחזור אוטומטי תוך 24 שעות.
איך ליישם הסתעפות שלבים?
שלבי המחשבון אינם רק דפים. הם גרף: חלק מהשלבים מדולגים בהתאם לתשובות קודמות. לדוגמה, אם בשלב 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"]
}
]
} צד לקוח: ניהול שלבים עם 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% טוב יותר מאלטרנטיבות חד-שלביות. הסיבה היא פסיכולוגית: כל שלב קטן, וקשה יותר לנטוש באמצע מאשר לנטוש טופס גדול אחד. פס ההתקדמות מניע להשלמה, וההסתעפות הופכת את התרחיש למותאם אישית. עבור החברה "Pereezd Servis", יישמנו מחשבון 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 — הוא מורכב מדי או לא רלוונטי.
תהליך ולוחות זמנים
- ניתוח דרישות — זיהוי לוגיקה ותנאי הסתעפות.
- עיצוב תרחיש — ציור גרף שלבים עם מעברים.
- עיצוב ופיתוח צד לקוח — יצירת תבניות רספונסיביות לכל סוג שאלה.
- צד שרת וחישוב — כתיבת בקרי PHP עם ולידציה ואינטגרציה.
- אינטגרציה — חיבור CRM (Bitrix24, amoCRM), 1C, שערי תשלום.
- בדיקות — אימות כל ההסתעפויות ונכונות החישוב.
- פריסה ותיעוד — פריסה לשרת, כתיבת הוראות.
| סוג מחשבון | לוח זמנים |
|---|---|
| ליניארי, 3–5 שלבים | 1–2 שבועות |
| עם הסתעפות ו-AJAX | 3–5 שבועות |
| קונפיגורטור מורכב (10+ שלבים) | 6–10 שבועות |
השוואה בין טופס רב-שלבי לרגיל
| קריטריון | טופס רגיל | מחשבון רב-שלבי |
|---|---|---|
| שדות למסך | 10–15 | 2–3 |
| פס התקדמות | לא | כן |
| הסתעפות | לא | כן |
| המרה | קו בסיס | +30–50% |
מה כלול
- ניתוח לוגיקה עסקית ויצירת גרף שלבים
- עיצוב ופריסה רספונסיבית לכל המצבים
- צד שרת ב-PHP (Bitrix ORM, רכיבים 2.0)
- אינטגרציית CRM (Bitrix24, amoCRM) ו-1C דרך CommerceML
- אינטגרציית מערכת תשלום (YooKassa, Sber) ושירותי משלוח (CDEK, דואר רוסי)
- שמירת התקדמות ב-localStorage
- אנליטיקה (Yandex.Metrica, Google Analytics)
- בדיקת כל התרחישים וההסתעפויות
- תיעוד והדרכת צוות
- חודש תמיכה באחריות
למה לעבוד איתנו
למעלה מ-10 שנות ניסיון בפיתוח על 1C-Bitrix, יותר מ-300 פרויקטים מוצלחים. מומחים מוסמכים. אחריות לתוצאה — אנו קובעים מדדי המרה בחוזה. ROI על מחשבון רב-שלבי הוא לרוב פחות מ-3 חודשים הודות לגידול בהמרה.
מחשבון רב-שלבי הוא הפורמט היעיל ביותר לשירותים מורכבים. הוא מפחית עומס קוגניטיבי, מגביר מעורבות, ונותן למשווקים נתונים על כל שלב החלטה — מה בדיוק מונע מהמשתמש להגיע לליד.
הזמינו פיתוח מחשבון רב-שלבי מותאם אישית — קבלו המרה גבוהה עד 50% יותר מטפסים רגילים. השאירו בקשה להערכת עלות. צרו קשר כדי לדון בפרטים ולקבל לוח זמנים ועלות מותאמים אישית. מחשבון רב-שלבי במפתח סוהר עם אחריות לגידול בהמרה.

