פרופיל לקוח מאוחד ב-1C-Bitrix
תארו לעצמכם לקוח שמזמין מוצר באתר, אחר כך מתקשר למוקד הטלפוני ממספר אחר, ולאחר מכן נכנס דרך האפליקציה ללא הזדהות. מסד הנתונים מכיל שלושה רשומות נפרדות, והמנהל לא יכול לראות את היסטוריית הרכישות המלאה. בפרויקטים גדולים, שיעור הכפילויות מגיע ל-15–20% — עבור 100,000 רשומות, מדובר בעד 20,000 כפילויות. בעיה קלאסית זו נפתרת על ידי הקמת פרופיל לקוח מאוחד ב-1C-Bitrix. אנו מקימים מערכת כזו במפתח מלא: מבדיקת טבלאות ועד מיזוג אוטומטי. הושלמו למעלה מ-80 פרויקטים המשלבים Bitrix ו-Bitrix24. צוות המנוסה שלנו של מפתחי 1C-Bitrix מוסמכים מבטיח מעבר חלק. צרו קשר לבדיקת מסד נתונים.
מדוע פרופיל מאוחד חשוב?
ללא תצוגה מאוחדת, עד 20–30% מההכנסות אובדות. עבור לקוח עם 50,000 הזמנות בחודש, כפילויות מובילות ל-10,000 הזמנות אבודות בשנה. שירות הסרת הכפילויות שלנו ב-Bitrix מפחית זאת לכמעט אפס.
גורמים לכפילויות ומבנה נתוני משתמש
תרחיש טיפוסי: משתמש מבצע הזמנה אנונימית, ואז נרשם, אך סשן האורח אינו מקושר. המערכת יוצרת רשומה חדשה ב-b_user, בעוד שהזמנות ישנות נשארות עם USER_ID = 0. אם ליד עם אותו טלפון נרשם במקביל ב-CRM, ישנן שתי כפילויות. במסדי נתונים עם 500,000+ רשומות, אחוז הכפילויות מגיע ל-15–20%. ראינו זאת בפרויקטים עם אלפי הזמנות יומיות.
הליבה פועלת עם שתי ישויות עצמאיות: משתמש (b_user) וקונה (b_sale_person_type + b_sale_order_user). כאשר מתבצעת הזמנה אנונימית, נוצרת רשומה ב-b_sale_order עם USER_ID = 0 ונתוני קשר בשדות b_sale_order_props_value. בעת הרשמה או הזדהות, הזמנות מקושרות ל-USER_ID ספציפי, אך החיבור "הזמנות אורח → משתמש רשום" אינו נבנה אוטומטית. בנוסף: אם מודול ה-CRM מותקן, כל הזמנה מפעילה את האירוע OnSaleOrderSaved, אשר יוצר או מעדכן ישויות CCrmContact ו-CCrmDeal. כפילויות ברמת b_user גורמות מיד לכפילויות אנשי קשר ב-CRM. ללא התערבות, מספר הכפילויות גדל באופן אקספוננציאלי. הגישה שלנו כוללת בדיקה יסודית של b_user לזיהוי כל הכפילויות. אינטגרציית CRM נכונה חיונית למניעת כפילויות עתידיות.
כיצד פועל זיהוי כפילויות?
אנו משתמשים בשדות דטרמיניסטיים ובהתאמה מתקדמת. במקרה אחד, הפחתנו את שיעור הכפילויות מ-20% ל-0.5%. יישום מיזוג משתמשים ב-Bitrix באמצעות CUser::Merge מבטיח תוצאות עקביות. הגדרת הפרופיל שלנו ב-Bitrix כוללת סקריפטים לזיהוי אוטומטי.
מנגנון מיזוג פרופילים
פרופיל מאוחד נבנה באמצעות שלושה מרכיבים:
-
זיהוי לפי שדות דטרמיניסטיים. דוא"ל וטלפון הם מפתחות המיזוג העיקריים. בטבלת b_user, השדות EMAIL ו-PERSONAL_PHONE צריכים להיות ייחודיים (אינדקס UQ_USER_EMAIL). הבעיה היא ש-Bitrix אינו אוסר על שני משתמשים בעלי אותו טלפון אם הוא מאוחסן במאפייני משתמש מותאמים אישית דרך b_user_field.
-
מיזוג באמצעות API המשתמש. כאשר מתגלה כפילות, נקרא CUser::Merge() — שיטה זו מעבירה את כל ההזמנות, המנויים, נקודות הבונוס לחשבון הראשי ומשביתה את הכפילות. חשוב לבדוק תחילה טבלאות תלויות: b_sale_order, b_sale_fuser, b_rating_vote, b_forum_user, b_subscribe_subscriber. תיעוד CUser::Merge מקור: Bitrix Developer API
דוגמת קוד מיזוג
// Слияние: все данные дубля переходят к мастер-пользователю $result = CUser::Merge($masterUserId, $duplicateUserId); if (!$result) { $GLOBALS['APPLICATION']->GetException(); } - טבלת b_sale_fuser (משתמש מזויף). זוהי הטבלה המרכזית לסשנים אנונימיים. כל אורח מקבל רשומה ב-b_sale_fuser עם USER_ID = NULL. בעת הזדהות, השיטה CSaleUser::DoAutoLogin() צריכה לקשר את ה-FUSER_ID ל-USER_ID האמיתי. אם שלב זה מוחמץ, העגלה וההזמנות הלא גמורות נשארות "תלויות" ואינן מופיעות בפרופיל.
שדות מוגדרים על ידי משתמש וקישור סשן אורח
מאפייני לקוח נוספים (תאריך לידה, מגדר, העדפות) מאוחסנים ב-b_uts_user — טבלה שנוצרת אוטומטית עבור שדות מוגדרים על ידי משתמש (UserTypeEntity עם ENTITY_ID = 'USER'). בעת מיזוג עם CUser::Merge(), נתונים אלה אינם מועברים אוטומטית — השיטה מעתיקה רק את השדות הראשיים של טבלת b_user. יש צורך להעביר ידנית ערכים מ-b_uts_user לפני קריאת המיזוג. העברת היסטוריית הזמנות זו קריטית לשלמות הנתונים.
המטפל הסטנדרטי OnAfterUserAuthorize מופעל בכל התחברות. נוח ליישם את הדברים הבאים:
AddEventHandler('main', 'OnAfterUserAuthorize', function($fields) { if ($fields['USER_ID'] > 0) { // Переносим корзину гостя на авторизованного пользователя $fuserId = CSaleUser::GetAnonymousUserID(); CSaleBasket::TransferBasket($fuserId, $fields['USER_ID']); } }); פתרון כפילויות עם CUser::Merge
בפרויקט אחד עם קטלוג של 150,000 מוצרים, מצאנו 12,000 פרופילים כפולים. לאחר הגדרת המיזוג באמצעות CUser::Merge, כל התור עובד תוך 4 שעות — הסרת כפילויות אוטומטית מהירה פי 3 משיטות ידניות. הלקוח כבר לא איבד הזמנות; מספר העגלות האנונימיות ירד ב-87%. תיעוד CUser::Merge Bitrix Developer API
מדוע פרופיל מאוחד קריטי במסחר אלקטרוני?
ללא מיזוג מסד נתוני הלקוחות, עד 20–30% מההכנסות אובדות — לקוחות עוזבים מבלי לראות היסטוריית הזמנות, מנהלים מבזבזים זמן על מיזוג ידני. מנגנון מוגדר מספק תצוגה מאוחדת, מאיץ את עיבוד ההזמנות פי 2–4, ומפחית שגיאות משלוח. חיסכון בתקציב התחזוקה יכול להגיע ל-40%. עבור פרויקט טיפוסי עם 100,000 משתמשים, ניתן לחסוך למעלה מ-$5,000 בשנה. הזמינו בדיקת מסד נתונים — העריכו את החיסכון.
כיצד מיזוג פרופילים משפיע על ביצועים?
מיזוג באמצעות CUser::Merge() הוא פעולה כבדה למדי: היא דורסת מספר טבלאות, מעדכנת את המטמון, ומפעילה סוכנים. במסדי נתונים עם מאות אלפי משתמשים, התהליך יכול לקחת עד 30 שניות לכל 100 כפילויות. במסד נתונים של 200,000 משתמשים, המיזוג המלא מסתיים תוך כ-4 שעות. כדי למנוע תליית ממשק המשתמש, אנו מריצים את המיזוג כסוכן עם ביצוע אסינכרוני. לשם כך, נוצרת תור של כפילויות בטבלה נפרדת, והסוכן מעבד 100 כפילויות בכל ריצה.
CAgent::AddAgent( "CMergeAgent::ProcessBatch(100);", "main", "N", 60 ); אלגוריתם מיזוג שלב אחר שלב
- בדיקת טבלאות — סריקת b_user, b_sale_fuser, b_uts_user לאיתור כפילויות לפי דוא"ל וטלפון.
- הגדרת אינדקסים — הוספת אינדקסים ייחודיים על שדות מפתח למניעת כפילויות חדשות.
- סקריפט הסרת כפילויות — קביעת החשבון הראשי (לפי תאריך הרשמה או מספר הזמנות) והרצת CUser::Merge.
- אוטומציה — חיבור מטפל ל-OnAfterUserAuthorize וסוכן לניקוי תקופתי.
מה כלול בעבודה
| שלב | מה אנו עושים | תוצאה |
|---|---|---|
| 1. בדיקה | סריקת b_user, b_sale_fuser, b_uts_user לאיתור כפילויות | דוח עם מספר כפילויות |
| 2. תכנון | קביעת אסטרטגיית מיזוג (דוא"ל או טלפון) | תיעוד לוגיקה |
| 3. יישום | כתיבת סקריפטים להסרת כפילויות ומטפל | מנגנון מיזוג עובד |
| 4. בדיקות | הרצה על עותק מסד נתונים | פרוטוקול ללא אובדן |
| 5. פריסה | הפעלת סוכן, הדרכת צוות | מסד נתונים ללא כפילויות |
לוח זמנים: מ-5 עד 15 ימים. העלות מחושבת באופן אישי, החל מ-$2,500 עבור הגדרות סטנדרטיות. חיסכון בתקציב עד 50%.
תוצרים
- תיעוד מקיף של לוגיקת המיזוג והסקריפטים
- פרטי גישה לכל המערכות והמאגרים
- הדרכת צוות על ניהול פרופיל מאוחד
- תמיכה לאחר השקה למשך 30 יום
התוצרים שלנו כוללים תיעוד יסודי, גישה מלאה, הדרכה ותמיכה. צרו קשר לייעוץ אינטגרציה.
מומחיות פיתוח 1C-Bitrix
עם למעלה מ-80 פרויקטים, הצוות שלנו מביא ניסיון עמוק בפיתוח 1C-Bitrix, כולל הגדרת פרופיל ב-Bitrix, אינטגרציית CRM, ופתרונות הסרת כפילויות מותאמים אישית. אנו מבטיחים העברת היסטוריית הזמנות חלקה ועקביות נתונים.







