מצב טיפוסי: קונה סיטונאי שולח רשימה של 50–200 פריטים (SKU) בקובץ Excel, ומצפה שהאתר יאפשר העלאה בלחיצה אחת. אבל חנות Bitrix סטנדרטית לא יכולה להתמודד עם מספר סוגי מחירים שמקושרים אוטומטית לקבוצות משתמשים, והיא לא מעלה קבצים ישירות לעגלת הקניות. התוצאה — הזנה ידנית של פריטים, שגיאות ובזבוז זמן. במשך למעלה מ-10 שנים פיתחנו יותר מ-50 פתרונות שהופכים את האתר לכלי B2B מלא: אינטגרציה עם 1C, נקודות קצה REST מותאמות אישית למלאי ומסגרות אשראי, מערכות תמחור ומסמכים גמישות. צרו קשר — נבחן את הפרויקט שלכם תוך יומיים. עלות פרויקט טיפוסית מתחילה מ-$1.4k–1.9k, והחזר השקעה ממוצע מגיע ל-200% בשנה הראשונה.
מהם המאפיינים המרכזיים של פורטל סיטונאות B2B?
קטלוג B2B: סוגי מחירים וכללים סיטונאיים
הבסיס של קטלוג B2B הוא מספר סוגי מחירים. בטבלת ART-001 24 ART-002 48 ART-003 12 נוצרות קבוצות מחירים:
| סוג מחיר | למי |
|---|---|
| קמעונאי | משתמשים לא מורשים |
| סיטונאי קטן | סוחרים קטגוריה C |
| סיטונאי בינוני | סוחרים קטגוריה B |
| סיטונאי גדול | סוחרים קטגוריה A |
| מיוחד | לקוחות מפתח |
כל סוג מחיר מקושר לקבוצת משתמשים דרך הגדרות מודול הקטלוג. סוחר מורשה רואה רק את עמודת המחיר שלו. בנוסף, ברמת המוצר מוגדרים כמות מינימלית להזמנה, ריבוי הזמנות ויחידת מידה — אלו מאפיינים של בלוק מידע הנשלטים בעגלת הקניות.
הגדרת מספר סוגי מחירים לסוחרים
אנו מחברים מספר סוגי מחירים דרך הפונקציונליות הסטנדרטית "קטלוג מסחר" → "סוגי מחירים" → "קבוצות קונים". עבור כל סוג, אנו יוצרים כלל תצוגה: המחיר מוצג רק לקבוצות שאליהן הוא מקושר. אם סוחר זקוק להנחה בכמות, אנו מוסיפים כללי עגלה עם תנאים על סכום ההזמנה. זה מאפשר הנחות סף ללא קוד נוסף.
הרשאת סוחר והפרדת גישה
הרשמת סוחר אינה עצמאית אלא לפי בקשה. התוכנית:
- באתר — טופס בקשה: ח.פ., שם חברה, איש קשר, תחום פעילות, היקף רכישה משוער.
- הבקשה נשלחת ל-CRM או לפאנל הניהול (סעיף "משתמשים" → "בקשות הרשמה").
- המנהל בודק את הלקוח, יוצר חשבון ומקצה קבוצה (סיטונאי קטן/בינוני/גדול).
- הסוחר מקבל גישה לחשבון אישי ורואה את הקטלוג עם המחירים שלו.
הפרדת מבחר (לא רק מחירים) מיושמת דרך הגדרת זכויות גישה לסעיפי בלוק מידע. לדוגמה, קבוצת "סיטונאי גדול" רואה את הסעיף "קולקציות בלעדיות" שאינו נגיש לסוחרים קטנים.
תוכן החשבון האישי של הסוחר
החשבון האישי חורג הרבה מעבר ל-// Парсинг строк $lines = explode("\n", $_POST['items']); $basket = \Bitrix\Sale\Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(), SITE_ID); foreach ($lines as $line) { list($art, $qty) = explode(' ', trim($line)); $res = CIBlockElement::GetList([], ['PROPERTY_ARTICLE' => $art], false, false, ['ID']); if ($el = $res->Fetch()) { $item = $basket->createItem('catalog', $el['ID']); $item->setField('QUANTITY', (int)$qty); } } $basket->save(); הסטנדרטי. סעיפים מרכזיים:
- היסטוריית הזמנות — עם סינון לפי תאריך, סטטוס, סכום. הזמנה חוזרת בלחיצה אחת.
- חשבוניות — מסמכי PDF שנוצרים על ידי מודול המכירות או מועברים מ-1C.
- דוחות התאמה — קבצים שהועלו על ידי המנהל או נוצרים אוטומטית מ-1C.
- תעודות משלוח ומסמכי העברה אוניברסליים — מקושרים להזמנות, זמינים להורדה.
- מסגרת אשראי — הצגת המסגרת הנוכחית, הסכום המשומש והיתרה הזמינה.
- דחיית תשלום — מידע על תנאים והגבלות.
המסמכים מאוחסנים ב-Highload-block Documents: סוג מסמך, מספר, תאריך, קובץ, קישור להזמנה וללקוח. זה חלק מניהול המסמכים של Bitrix. העלאה מ-1C — דרך REST API בלוח זמנים. חשבוניות PDF שנוצרות בצד Bitrix — דרך ספריית mPDF או TCPDF, המחוברת במטפל האירועים OnSaleOrderSaved. תבנית החשבונית כוללת פרטי חברה, טבלת פריטים, סיכומים וקוד QR לתשלום.
איך להגדיר מסגרות אשראי לסוחרים?
אינטגרציה עם 1C: CommerceML + REST
החלפה עם 1C היא הליבה של אתר סיטונאי. שני ערוצים: CommerceML (החלפה סטנדרטית):
- נומנקלטורה → בלוק מידע מוצרים.
- מחירים לפי סוג →
b_catalog_price. - מלאי לפי מחסנים →
b_catalog_store_product. - הזמנות: Bitrix → 1C (ייצוא) ובחזרה (סטטוסים, משלוחים).
REST API (לנתונים תפעוליים):
- מלאי עדכני — בקשה ל-1C בעת פתיחת כרטיס מוצר (עם שמירה במטמון למשך 5–10 דקות).
- מסגרת אשראי של הלקוח — בקשה בעת התחברות ובעת ביצוע הזמנה.
- מסמכים — ייצוא של חשבוניות ודוחות חדשים בלוח זמנים.
מידע נוסף על CommerceML ניתן למצוא ב-CommerceML.
עגלת B2B עם העלאת Excel וסוגי מחירים
עגלת Bitrix הסטנדרטית מיועדת לקונה קמעונאי: בחר מוצר, לחץ "הוסף לעגלה", המשך לתשלום. בתרחיש B2B, הקונה עובד אחרת. הוא מגיע עם רשימה מוכנה של 50–200 פריטים ורוצה להעלות אותה בפעולה אחת — העלאה דרך Excel מהירה פי 10 מהזנה ידנית.
הזמנה מהירה לפי מק"ט
בדף "הזמנה מהירה" — שדה טקסט שבו מוזנים זוגות "מק"ט — כמות", אחד בכל שורה:
ART-001 24 ART-002 48 ART-003 12 בעת שליחה, מטפל השרת מנתח את השורות, מחפש מוצרים לפי מאפיין ARTICLE בבלוק המידע (דרך CIBlockElement::GetList עם פילטר), בודק זמינות ומוסיף לעגלה דרך \Bitrix\Sale\Basket::addItem(). אם מק"ט לא נמצא — השורה מסומנת באדום עם הסבר.
דוגמה למטפל הזמנה מהירה
// Парсинг строк $lines = explode("\n", $_POST['items']); $basket = \Bitrix\Sale\Basket::loadItemsForFUser(\Bitrix\Sale\Fuser::getId(), SITE_ID); foreach ($lines as $line) { list($art, $qty) = explode(' ', trim($line)); $res = CIBlockElement::GetList([], ['PROPERTY_ARTICLE' => $art], false, false, ['ID']); if ($el = $res->Fetch()) { $item = $basket->createItem('catalog', $el['ID']); $item->setField('QUANTITY', (int)$qty); } } $basket->save(); העלאת קובץ Excel
אפשרות מתקדמת יותר — העלאת XLS/XLSX. מטפל בצד השרת:
- קבלת קובץ — דרך העלאה סטנדרטית של Bitrix (
CFile::SaveFile). - ניתוח — ספריית PhpSpreadsheet (מותקנת דרך Composer). פורמט צפוי: עמודה A — מק"ט, עמודה B — כמות. שורה ראשונה — כותרת (מדולגת).
- ולידציה — בדיקת כל שורה: קיום מק"ט, זמינות מוצר לקבוצת המשתמשים, עמידה בכמות מינימלית ובריבוי.
- יצירת תוצאה — טבלה עם עמודות:
| מק"ט | שם | מבוקש | מותאם | מלאי | מחיר | סה"כ | סטטוס |
|---|---|---|---|---|---|---|---|
| ART-001 | מוצר A | 24 | 24 | 150 | — | — | OK |
| ART-002 | מוצר B | 48 | 48 | 30 | — | — | חלקי (מלאי 30) |
| ART-999 | — | 12 | — | — | — | — | לא נמצא |
- אישור — המשתמש רואה את התוצאה, מתקן כמויות ומאשר הוספה לעגלה.
טיפול בסוגי מחירים בעגלה
בעת הוספת מוצר לעגלה, המחיר נקבע אוטומטית לפי קבוצת המשתמשים. ההיגיון:
- קביעת קבוצת המשתמש המאומת (
CUser::GetUserGroupArray()). - לפי קבוצה, קביעת סוג המחיר הזמין (
CCatalogGroup::GetGroupsList()). - מתוך
b_catalog_price, שליפת המחיר למוצר לפי הסוג הנדרש. - אם מוגדרות הנחות כמות למוצר (מודול "כללי עגלה" —
sale.discount), הן מיושמות במהלך חישוב מחדש.
היגיון נוסף — הנחות סף: כאשר סכום ההזמנה עולה על סף מסוים, מוחלת הנחה נוספת אוטומטית. מוגדר דרך כללי עגלה עם התנאי "סכום עגלה גדול מ-N".
בדיקת מסגרת אשראי
בשלב ביצוע ההזמנה, נבדקת מסגרת האשראי של הלקוח. הנתונים נלקחים מ-1C דרך REST API. אם סכום ההזמנה עולה על המסגרת הזמינה — מוצגת אזהרה, אך ניתן עדיין לבצע את ההזמנה (לפי שיקול דעת המנהל). יישום — מטפל לאירוע OnSaleOrderBeforeSaved, ששולח בקשה ל-1C וכותב את התוצאה למאפיין הזמנה.
תוצרים
בעת פיתוח אתר סיטונאי, אנו מספקים:
- מפרט טכני המתאר את ההיגיון של סוגי מחירים וזכויות.
- החלפה מוגדרת עם 1C (CommerceML + REST).
- חשבון אישי לסוחר עם מסמכים.
- עגלה עם תמיכה ב-Excel והזמנה מהירה.
- אינטגרציה עם מערכות תשלום ושירותי משלוח.
- קוד מקור וגישה לשרת.
- מדריך מנהל והדרכת עובדים.
- 3 חודשי תמיכה באחריות לאחר ההשקה.
החיסכון בעיבוד הזמנות יכול להגיע ל-$4.5k–6.5k בשנה, ותקופת החזר ממוצעת היא 4–6 חודשים.
סיכום טכני
| רכיב | פתרון |
|---|---|
| קטלוג | bitrix:catalog עם אינדקס פאקטות |
| סינון | bitrix:catalog.smart.filter + AJAX |
| עגלה | רכיב מותאם אישית עם תמיכה ב-Excel |
| אינטגרציה | CommerceML (קטלוג) + REST API (מלאי, מסגרות) |
| מסמכים | Highload-block + mPDF |
| הגדרת זכויות גישה | קבוצות משתמשים → סוגי מחירים + סעיפי בלוק מידע |
אתר סיטונאי על Bitrix הוא בעיקר צד שרת: 1C ו-REST API של Bitrix, סוגי מחירים, זכויות, ניהול מסמכים. צד הלקוח הוא משני — הממשק צריך להיות פונקציונלי ומהיר, לא מרשים. הזמינו פיתוח — קבלו כלי שבאמת חוסך זמן לסוחרים שלכם. עלות פרויקט טיפוסית מתחילה מ-$1.4k–1.9k, עם החזר השקעה ממוצע של 200% בשנה הראשונה. צרו קשר לייעוץ על הפרויקט שלכם.







