ללא רכיב מוכן של "קנייה בלחיצה אחת", מפתחים לעיתים קרובות מרכיבים פתרונות מאולתרים: הם יוצרים הזמנות דרך עגלת הקניות ללא בדיקת מלאי, מאבדים תגי UTM, או שוכחים מדרישות 54-FZ. אנו מבטלים סיכונים אלה בשלב התכנון של מודול ההזמנה המהירה עבור 1C-Bitrix. המשתמש מזין רק שם ומספר טלפון—את השאר מטפל המנהל. המודול בנוי על sale API עם מטמון מתויג וטבלת לוג נפרדת, מה שמאיץ את הפקת הדוחות פי 10. הפתרונות שלנו מוכחים באתרים עם עומסים של עד 10,000 הזמנות ביום ומבטיחים פעולה יציבה בעומסי שיא. המומחים המוסמכים שלנו בעלי ניסיון של שנים, המאושר על ידי עשרות פרויקטים מוצלחים.
כיצד להגדיר את מודול ההזמנה המהירה: מדריך שלב אחר שלב
- התקן את המודול: העתק קבצים אל
local/modules/vendor.quickorder/או התקן דרך Marketplace. - צור רכיב טופס והצב אותו בעמוד המוצר או בחלון מודאלי.
- הגדר אירועי דוא"ל למנהל וללקוח, וכן הודעות SMS דרך ה-API של ספק ההודעות.
- ודא אינטגרציה עם 1C (CommerceML) ו-CRM (דרך REST API או קריאות ישירות).
יישום הזמנה מהירה ב-Bitrix
המודול רשום ב-local/modules/vendor.quickorder/. קבצים מרכזיים:
-
lib/QuickOrderHandler.php— לוגיקת יצירת הזמנה -
lib/Notification.php— שליחת הודעות -
components/vendor/quickorder.form/— רכיב טופס -
install/db/install.sql— יצירת טבלת לוג
יצירת הזמנה דרך Sale API
תשלום מהיר מיושם באמצעות sale API של המודול. המוצר מתווסף לעגלה באופן פרוגרמטי, ולאחר מכן נוצרת הזמנה:
use Bitrix\Sale\Order;
use Bitrix\Sale\Basket;
use Bitrix\Sale\BasketItem;
$order = Order::create(SITE_ID, null); // null = гостевой заказ
$order->setPersonTypeId(1);
$basket = Basket::create(SITE_ID);
$item = $basket->createItem('catalog', $productId);
$item->setFields([
'QUANTITY' => 1,
'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
'LID' => SITE_ID,
'PRODUCT_PROVIDER_CLASS' => \CCatalogProductProvider::class,
]);
$order->setBasket($basket);
$propertyCollection = $order->getPropertyCollection();
$propPhone = $propertyCollection->getPhone();
if ($propPhone) {
$propPhone->setValue($phone);
}
$order->setField('USER_DESCRIPTION', $comment);
$order->save();
סטטוס ההזמנה החדשה מוגדר כ"חדשה" (בדרך כלל use Bitrix\Sale\Order; use Bitrix\Sale\Basket; use Bitrix\Sale\BasketItem; $order = Order::create(SITE_ID, null); // null = гостевой заказ $order->setPersonTypeId(1); $basket = Basket::create(SITE_ID); $item = $basket->createItem('catalog', $productId); $item->setFields([ 'QUANTITY' => 1, 'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(), 'LID' => SITE_ID, 'PRODUCT_PROVIDER_CLASS' => \CCatalogProductProvider::class, ]); $order->setBasket($basket); $propertyCollection = $order->getPropertyCollection(); $propPhone = $propertyCollection->getPhone(); if ($propPhone) { $propPhone->setValue($phone); } $order->setField('USER_DESCRIPTION', $comment); $order->save(); ) או סטטוס מיוחד של "הזמנה מהירה" שנוצר במילון הסטטוסים של מודול N.
אנליטיקה באמצעות טבלת הלוג
מבנה טבלת sale
בנוסף ליצירת ההזמנה, אנו מתעדים לטבלה נפרדת—זה מאפשר לנו להפיק סטטיסטיקות ללא ניתוח כל ה-b_quickorder_log, ומאיץ דוחות פי 10.
| שדה | סוג | מטרה |
|---|---|---|
| ID | int auto_increment | — |
| ORDER_ID | int | מזהה ההזמנה שנוצרה ב-b_sale_order |
| PRODUCT_ID | int | מזהה מוצר |
| PHONE | varchar(20) | מספר טלפון |
| NAME | varchar(255) | שם |
| SOURCE_URL | varchar(2048) | העמוד שבו בוצעה ההזמנה |
| UTM_SOURCE | varchar(100) | תגי UTM |
| CREATED_AT | datetime | — |
| PROCESSED_AT | datetime | מתי המנהל לקח את זה לעבודה |
כיצד מתבצע אימות טלפון בשרת?
טופס ההזמנה המהירה הוא מינימלי—שם וטלפון. אימות הטלפון בצד השרת משתמש בביטוי רגולרי התומך בפורמטים: b_sale_order, +7 (999) 123-45-67, 89991234567. לאחר נורמליזציה, אנו מאחסנים אותו בפורמט E.164.
הגנה מפני הצפה: אנו בודקים בטבלת +375 29 123-45-67 כמה הזמנות בוצעו מ-IP זה בשעה האחרונה. אם חריגה מהסף (לדוגמה, 5 הזמנות), אנו מחזירים שגיאה ללא יצירת ההזמנה.
הודעות למנהל וללקוח
לאחר יצירת הזמנה מוצלחת, מופעלות שתי הודעות:
למנהל — אירוע הדוא"ל b_quickorder_log עם תבנית הכוללת את שם הלקוח, טלפון, שם מוצר ותמונה, וקישור להזמנה בלוח הניהול. בנוסף, ניתן להגדיר SMS דרך ה-API של ספק ה-SMS המשולב.
ללקוח — אישור SMS אופציונלי: "ההזמנה שלך התקבלה; מנהל יחזור אליך תוך 15 דקות."
כיצד לשלב הזמנה מהירה עם CRM?
אם בפרויקט יש מודול CRM (מותאם אישית או Bitrix24), נוצר ליד אוטומטית בעת ביצוע הזמנה מהירה. הנתונים מועברים דרך QUICKORDER_NEW או דרך Bitrix24 REST API (\Bitrix\Crm\LeadTable::add()). שדה crm.lead.add של הליד מוגדר כ"הזמנה מהירה מהאתר." זה מאפשר מעקב אחר יעילות הערוצים ומשפך ההמרות.
הצבת הכפתור בכרטיס המוצר
כפתור "קנייה בלחיצה אחת" ממוקם בתבנית רכיב SOURCE_ID. בלחיצה, נפתח חלון מודאלי עם הטופס—או דרך bitrix:catalog.element עם תבנית מותאמת אישית או דרך רכיב AJAX מותאם אישית. המודאל לא צריך לטעון מחדש את העמוד וחייב לעבוד כראוי עם מטמון רכיב כרטיס המוצר (הטופס נטען דרך בקשת AJAX נפרדת ללא מטמון).
מה כלול בפיתוח המודול
- קוד מודול מלא (backend ו-frontend).
- תיעוד התקנה והגדרה.
- הגדרת הודעות דוא"ל ו-SMS.
- אינטגרציה עם CRM (לפי צורך).
- הדרכה למנהלים על טיפול בהזמנות.
- אחריות ל-6 חודשים המכסה תיקוני באגים וייעוץ.
כל קוד המקור נמסר ללקוח; המודול מוכן להתקנה בכל אתר 1C-Bitrix.
יתרונות המודול שלנו
שימוש בטבלת לוג נפרדת במקום ניתוח bitrix:sale.order.ajax מאיץ את הפקת הדוחות פי 10, ונורמליזציה של מספרי טלפון לפורמט E.164 מפשטת אינטגרציה עם כל CRM. המומחים המוסמכים שלנו מבטיחים עמידה בלוחות זמנים ואיכות קוד. שנים של ניסיון מאשרות את אמינות הפתרונות שלנו. צור קשר כדי לדון בפרויקט שלך ולקבל ייעוץ על הגדרת המודול.
לוח זמנים לפיתוח
| היקף | תכונות | משך |
|---|---|---|
| בסיסי | טופס, יצירת הזמנה ב-b_sale_order, הודעת דוא"ל למנהל |
3–4 ימים |
| סטנדרטי | + הגנה מפני הצפה, לוג במסד נתונים, פרמטרי UTM, הודעת SMS | 6–8 ימים |
| מורחב | + אינטגרציה עם CRM, אנליטיקת מקורות, בדיקות A/B של טפסים | 10–13 ימים |
עלות הפיתוח תלויה בפונקציונליות הנדרשת ומחושבת באופן אישי. בקש הדגמה של המודול כדי להעריך את התכונות שלו.

