מודול חשבון אישי של Bitrix: פרופילים, כתובות, B2B

פיתוח מודול חשבון אישי ל-1C-Bitrix ל-Bitrix יש רכיב מוכן `system.auth.registration` ודפי חשבון אישי במהדורה הסטנדרטית, אך הם מספיקים רק למקרה הפשוט ביותר: שינוי שם וצפייה בהזמנות. ברגע שעולה המשימה "להציג בונוס
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
מודול חשבון אישי של Bitrix: פרופילים, כתובות, B2B
בינוני
~1-2 שבועות

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • image_website-b2b-advance_0.webp
    פיתוח אתר חברה B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    פיתוח אתר לחברת FIXPER
    1018
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    760
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    879
  • image_crm_dolbimby_434_0.webp
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    803
  • image_crm_technotorgcomplex_453_0.webp
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1162

פיתוח מודול אזור אישי ל-1C-Bitrix

ל-Bitrix יש רכיב מוכן system.auth.registration ודפי אזור אישי בחבילה הסטנדרטית, אבל הם מספיקים רק למקרה הפשוט ביותר: שינוי שם וצפייה בהזמנות. ברגע שעולה המשימה "להציג נקודות בונוס, היסטוריית צבירה, כרטיסי נאמנות מקושרים, מספר כתובות משלוח עם מפה ומסמכי חוזה B2B" — האזור הסטנדרטי הופך לנקודת התחלה לעיבוד מחדש, לא לפתרון מוכן. אנו מפתחים מודול אזור אישי במפתח מלא: אנו מנתחים תהליכים עסקיים, מתכננים את הארכיטקטורה ומיישמים את כל הסעיפים מאפס. הניסיון שלנו הוא 5+ שנים ו-50+ פרויקטים על Bitrix, ולכן אנו מבטיחים פעילות יציבה גם בעומס גבוה. יתרון לגודל — חיסכון של עד 40% בהשוואה להתאמה אישית לפי שעה של כל רכיב בנפרד.

איך לפתח אזור אישי ב-Bitrix שלא יגמגם?

האזור המוגדר כברירת מחדל ב-Bitrix הוא אוסף של רכיבים מפוזרים, שכל אחד מהם פונה למסד הנתונים באופן עצמאי ללא שכבת נתונים משותפת. כתוצאה מכך, דף הפרופיל יכול לבצע 15–20 שאילתות SQL בעת הטעינה. מודול אזור אישי בנוי אחרת: שירות מצרף אחד אוסף את נתוני המשתמש בעת התחברות, שומר אותם במטמון בסשן ומספק אותם לכל הרכיבים ממקור אחד. זה מפחית את מספר השאילתות ל-2–3 — עלייה של פי 5–10 במהירות בהשוואה לגישה הסטנדרטית.

ארכיטקטורה: שכבות האזור

שירות פרופיל (UserProfileService) — מחלקה מרכזית המכילה את כל הלוגיקה של נתוני המשתמש:

class UserProfileService { private int $userId; private array $cache = []; public function getOrders(array $filter = [], int $page = 1): OrderCollection { return \Bitrix\Sale\OrderTable::getList([ 'filter' => array_merge(['=USER_ID' => $this->userId], $filter), 'order' => ['DATE_INSERT' => 'DESC'], 'limit' => 10, 'offset' => ($page - 1) * 10, ]); } public function getLoyaltyBalance(): int { if (!isset($this->cache['loyalty'])) { $this->cache['loyalty'] = LoyaltyTable::getBalanceForUser($this->userId); } return $this->cache['loyalty']; } } 

רכיבי האזור מקבלים את השירות דרך מיכל DI class UserProfileService { private int $userId; private array $cache = []; public function getOrders(array $filter = [], int $page = 1): OrderCollection { return \Bitrix\Sale\OrderTable::getList([ 'filter' => array_merge(['=USER_ID' => $this->userId], $filter), 'order' => ['DATE_INSERT' => 'DESC'], 'limit' => 10, 'offset' => ($page - 1) * 10, ]); } public function getLoyaltyBalance(): int { if (!isset($this->cache['loyalty'])) { $this->cache['loyalty'] = LoyaltyTable::getBalanceForUser($this->userId); } return $this->cache['loyalty']; } } . כל רכיב אחראי על סעיף אחד: הזמנות, כתובות, הגדרות התראות, מסמכים.

ניתוב. לכל סעיף יש כתובת URL משלו (Bitrix\Main\DI\ServiceLocator, /cabinet/orders/, /cabinet/addresses/). מיושם באמצעות handler מותאם אישית ב-/cabinet/documents/ או דרך מודול urlrewrite.php עם רישום כללים באמצעות main.

בפירוט: ניהול כתובות משלוח

כברירת מחדל, Bitrix שומר כתובת אחת בפרופיל המשתמש. עבור מספר כתובות, יש צורך בטבלה מותאמת אישית:

CREATE TABLE myvendor_user_address ( id SERIAL PRIMARY KEY, user_id INT NOT NULL, label VARCHAR(100), -- "Дом", "Работа" city VARCHAR(100), street VARCHAR(200), building VARCHAR(20), apartment VARCHAR(20), lat DECIMAL(10, 7), lng DECIMAL(10, 7), is_default BOOLEAN DEFAULT false, created_at TIMESTAMP DEFAULT NOW() ); 

השדות UrlRewriter::setRule / CREATE TABLE myvendor_user_address ( id SERIAL PRIMARY KEY, user_id INT NOT NULL, label VARCHAR(100), -- "Дом", "Работа" city VARCHAR(100), street VARCHAR(200), building VARCHAR(20), apartment VARCHAR(20), lat DECIMAL(10, 7), lng DECIMAL(10, 7), is_default BOOLEAN DEFAULT false, created_at TIMESTAMP DEFAULT NOW() ); ממולאים באמצעות Yandex Geocoder בעת שמירת הכתובת. במהלך התשלום, המשתמש בוחר כתובת מהרשימה — הנתונים מוכנסים ל-lat ללא הזנה ידנית.

סעיף מסמכי B2B

משתמשי B2B מבקשים לעתים קרובות חשבוניות, אישורי ביצוע, UPD. המודול מקשר מסמכים (שנוצרו על ידי מודול טופס ההדפסה) לפרופיל המשתמש דרך טבלת lng. באזור — סינון לפי סוג מסמך, תקופה, סטטוס, כפתור הורדת PDF. הרשאות צפייה נבדקות דרך קבוצות משתמשים.

התראות

המשתמש מנהל את מינויי ההתראות: דוא"ל, SMS, push. כל ערוץ הוא רשומה נפרדת ב-b_sale_order_props. בעת שליחת התראה מהלוגיקה העסקית, היישום בודק תחילה את העדפות המשתמש, ולאחר מכן בוחר את ערוץ המשלוח.

למה מודול אזור אישי יעיל יותר מרכיבים סטנדרטיים?

הגישה הסטנדרטית — כל רכיב מביא נתונים בעצמו. המודול — שירות יחיד עם מטמון. התוצאה: מהירות טעינת הדף עולה, עומס מסד הנתונים יורד. יתר על כן, המודול ניתן להרחבה בקלות עם סעיפים חדשים ללא שינוי בקוד הקיים. ההשוואה ברורה:

מאפיין אזור סטנדרטי מודול אזור
שאילתות SQL לעמוד 15–20 2–3
זמן טעינה ממוצע ~2 שניות ~0.4 שניות
תמיכה במספר כתובות לא כן
מסמכי B2B רק דרך התאמות אישיות מובנה
יכולת הרחבה קשה קל (רכיב חדש + סעיף)

אבטחת האזור

  • כל פעולות שינוי הנתונים (דוא"ל, סיסמה, כתובת) דורשות אישור באמצעות קוד בדוא"ל/SMS
  • הגנת CSRF באמצעות מנגנון Bitrix הסטנדרטי (myvendor_user_document)
  • הגבלת קצב על ניסיונות שינוי סיסמה דרך טבלת myvendor_notification_pref
  • מיסוך מספר טלפון בתצוגה (הצגת 4 הספרות האחרונות בלבד)

מה כלול בפיתוח מודול במפתח מלא

אנו מספקים חבילה מלאה: תיעוד ארכיטקטורה, קוד מקור של המודול, הוראות התקנה, הדרכה למנהלים שלכם, אחריות לתיקון תקלות ל-30 יום. לאחר המסירה, אנו מספקים שבועיים של תמיכה חינם. צרו קשר כדי להעריך את הפרויקט שלכם — נשלח הערכה משוערת תוך 1–2 ימי עסקים. התקציב נקבע לאחר בדיקת דרישות ולעתים קרובות יוצא נמוך יותר מהתאמה אישית של רכיבים סטנדרטיים על ידי מפתח פנימי.

לוח זמנים לפיתוח

היקף תחום משך
בסיסי פרופיל + הזמנות + מספר כתובות 3–4 שבועות
בינוני + נאמנות + מסמכים + התראות 6–8 שבועות
מלא + תכונות B2B + API לאפליקציה ניידת 10–14 שבועות

חשוב לתקן את רשימת סעיפי האזור לפני תחילת הפיתוח — הוספת סעיף גדול חדש (למשל, תוכנית נאמנות) באמצע הפרויקט דורשת עיבוד מחדש של שירות הפרופיל וסכמת הנתונים. קבלו ייעוץ — נעזור לנסח מפרט טכני ולהעריך את התקציב.

ללימוד מעמיק של ארכיטקטורת Bitrix, אנו ממליצים על התיעוד הרשמי ועל סעיף REST API. כדאי גם להבין את העקרונות של REST לעיצוב API.

פיתוח מודול אזור אישי הוא עבודה שיטתית הדורשת ניסיון עם אינפובלוקים, HL-בלוקים ותהליכים עסקיים. הפקידו אותו בידי צוות עם הסמכות 1C-Bitrix.