אנו מפתחים חלקים סיטונאיים (B2B) עבור חנויות מקוונות על 1C-Bitrix מזה למעלה מ-7 שנים. בתקופה זו, השלמנו למעלה מ-50 פרויקטים — ממחירונים פשוטים דו-רמתיים ועד לפורטלי דילרים בקנה מידה מלא עם מסגרות אשראי, אינטגרציה עם 1C וזרימת מסמכים אלקטרונית. אם אתם צריכים שהקטלוג הקמעונאי שלכם יעבוד גם עבור לקוחות סיטונאיים — עם מחירים נפרדים, כמויות מינימליות להזמנה, הזמנה מהירה לפי מק"ט והעלאת Excel — אנו נספק פתרון סוהר. פיתוח פונקציונליות בסיסית מתחיל מ-$500. אנו נעריך את הפרויקט שלכם ונספק לוחות זמנים תוך יום. הזמינו את פיתוח החלק הסיטונאי שלכם היום כדי לתת ללקוחות ה-B2B שלכם כלי רכישה נוח. לוח הזמנים המובטח שלנו הוא שבועיים להגדרה בסיסית, ולמפתחים המוסמכים שלנו יש ניסיון של 7+ שנים ב-Bitrix.
מדוע הפונקציונליות הסטנדרטית של Bitrix אינה מספיקה
סוגי המחירים המובנים וקבוצות המשתמשים מכסים רק תרחישים פשוטים. דרישות B2B אמיתיות כוללות הנחות אישיות, מחירים מדורגים, שערי חליפין, מסגרות אשראי וזרימת מסמכים נפרדת. ללא התאמות אישיות של הליבה והמודולים, זה בלתי נמנע. הפתרון המותאם אישית שלנו מהיר פי 2 מהמודולים הסטנדרטיים.
הגדרת סוגי מחירים עבור B2B
הבסיס של ארכיטקטורת התמחור הוא טבלת b_catalog_group. כל סוג מחיר ("קמעונאי", "סיטונאי", "דילר") מקושר לקבוצת משתמשים. הפונקציה CCatalogProduct::GetOptimalPrice() מחזירה את המחיר הטוב ביותר עבור לקוח מורשה. אבל בפועל, זה לא מספיק.
עבור הנחות אישיות לקבלנים, אנו משתמשים בכללי סל (sale.discount) עם תנאי קבוצה. מחירים מדורגים (לדוגמה, מ-100 יחידות מחיר אחד, מ-1000 מחיר אחר) מיושמים באמצעות טווחי כמויות ב-b_catalog_price (QUANTITY_FROM / QUANTITY_TO). אם סיטונאים עובדים במטבעות שונים, אנו יוצרים סוגי מחירים במטבעות שונים, עם המרה דרך מודול currency.
ניואנס חשוב: סוג מחיר מקושר לקבוצה, לא למשתמש. יצירת 200 קבוצות עבור 200 קבלנים אינה רציונלית. במקרים כאלה, אנו כותבים handler לאירוע OnGetOptimalPrice שמושך מחירים מ-1C או ERP דרך מטמון. למידע נוסף על סוגי מחירים, קראו את התיעוד הרשמי.
| תרחיש | יישום ב-Bitrix | מגבלות |
|---|---|---|
| 3–5 רמות מחיר | סוגי מחירים + קבוצות משתמשים | מנגנון סטנדרטי, עובד ישירות מהקופסה |
| מחירים מדורגים לפי כמות | טווחים ב-b_catalog_price |
לא מוצג בכרטיס המוצר ללא התאמת תבנית |
| מחיר אישי לכל קבלן | אירוע OnGetOptimalPrice + מקור חיצוני |
דורש מטמון, אחרת בקשה ל-1C עבור כל מוצר |
| הנחת קטגוריה לקבוצה | כללי סל (sale.discount) |
לא נראה בקטלוג עד להוספה לסל |
כמות מינימלית להזמנה ומכפלת הזמנה
מוצרים סיטונאיים דורשים כמות מינימלית וצעד (מכפלה). ל-Bitrix יש שדה "מקדם יחידת מידה" (b_catalog_measure_ratio), אבל הוא פועל רק כמכפיל. יישום מלא דורש:
- מאפיין אינפובלוק "כמות מינימלית להזמנה" — אימות דרך
OnSaleBasketItemBeforeUpdate. - מאפיין "מכפלה" — עיגול כלפי מעלה למכפלה הקרובה.
- הצגה בכרטיס המוצר: בורר עם צעדים (10, 20, 30) או שדה עם אימות.
יישום הזמנה מהירה לפי מק"ט
לקוחות סיטונאיים מזמינים לעיתים קרובות לפי מק"ט ללא עיון בקטלוג. בצעו את השלבים הבאים:
- צרו טופס "מק"ט + כמות" — רשימה של שורות. השרת מתאם את המק"ט עם
PROPERTY_CML2_ARTICLEאוXML_IDומוסיף לסל. - יישמו העלאת Excel/CSV באמצעות PhpSpreadsheet (דרך Composer). המפענח מעבד את הקובץ ומרכיב את הסל. מק"טים שלא נמצאו מוצגים בדוח.
- הוסיפו כפתור "הזמנה חוזרת" בחשבון האישי, המעתיק את הרכב ההזמנה הקודמת לסל הנוכחי דרך
Bitrix\Sale\Basket::loadItemsForOrder().
מסגרות אשראי ותשלום דחוי
ב-B2B, התשלום מתבצע לעיתים קרובות בדיעבד. מנגנון:
- בפרופיל הקבלן (שדות UF), שמרו את המסגרת והחוב הנוכחי.
- ה-handler
OnSaleOrderBeforeSavedבודק: סכום הזמנה + חוב ≤ מסגרת. - אם חריגה, ההזמנה לא מתבצעת והמסגרת הזמינה מוצגת.
- לאחר תשלום (סטטוס דרך החלפת 1C), החוב מחושב מחדש.
זרימת מסמכים בחשבון האישי
לקוח סיטונאי מצפה ל: חשבוניות (נוצרות בעת יצירת הזמנה, PDF דרך sale_print או TCPDF), דוחות התאמה (מ-1C, בבלוק highload), תעודות משלוח ו-UPD (עם חתימה דיגיטלית), היסטוריית הזמנות עם סינון לפי תקופה, סטטוס וסכום. הרכיב הסטנדרטי sale.personal.order מותאם אישית או מוחלף ברכיב מותאם.
מדוע הפרדת סלים היא קריטית
טכנית, ל-Bitrix יש סל אחד לכל משתמש. אם לקוח קונה גם קמעונאי וגם סיטונאי, יש צורך בבידוד. פתרונות:
-
שני אתרים בהתקנה אחת — סלים מופרדים על ידי
FUSER_ID+LID. חסרון: הגדרות כפולות. -
מאפיין פריט בסל (
BASKET_TYPE = wholesale). במהלך התשלום, רק פריטים סיטונאיים מסוננים. חסרון: יישום מורכב יותר.
האפשרות הראשונה אמינה יותר: שני אתרים עם קטלוג משותף, תבניות שונות וסלים עצמאיים. המעבר נעשה דרך תת-דומיין או קטע URL.
אינטגרציה עם 1C עבור החלק הסיטונאי
CommerceML הסטנדרטי (ויקיפדיה) אינו מכסה ישויות B2B: קבלנים (מיפוי לפי ח.פ.), התחשבנויות הדדיות (חוב, מסגרת אשראי), מחירים אישיים (קבלן-מוצר-מחיר). נדרשת התאמה אישית: או הרחבת צמתי XML או החלפת REST נפרדת.
טעויות נפוצות שיש להימנע מהן
- סוגי מחירים לא מקושרים לקבוצות משתמשים — המחיר לא מחושב מחדש.
- אין טיפול בכמות מינימלית להזמנה — לקוח יכול להזמין יחידה אחת.
- הסל משותף בין קמעונאי לסיטונאי — בלבול במלאי.
- אין מטמון למחירים אישיים — הקטלוג מאט.
- מסמכים לא נוצרים אוטומטית — לקוחות עוזבים.
| שלב | משך | תוצאה |
|---|---|---|
| ניתוח ועיצוב | 2-3 ימים | מפרט טכני |
| הגדרת סוגי מחירים | 2-4 ימים | תוכנית תמחור עובדת |
| פיתוח מודולים | 5-10 ימים | פונקציונליות מוכנה |
| אינטגרציה עם 1C | 3-5 ימים | החלפת נתונים |
| בדיקות | 2 ימים | דוח |
מה כלול בעבודה שלנו
כאשר אתם מזמינים פיתוח של חלק סיטונאי, אתם מקבלים:
- ביקורת על הקטלוג הקיים והגדרת סוגי מחירים.
- יישום מנגנונים לכמות מינימלית, מכפלות ומסגרות אשראי.
- פיתוח ממשק הזמנה מהירה והעלאת Excel.
- הגדרת זרימת מסמכים (חשבוניות, דוחות) בחשבון האישי.
- אינטגרציה עם 1C (קבלנים, התחשבנויות הדדיות, מחירונים).
- בדיקות ומסירת תיעוד, כולל הדרכת מנהלים.
- גישה לסביבת פיתוח ותמיכה לאחר השקה (בהתאם לחוזה).
המומחיות שלנו
מעל 7 שנות ניסיון בפיתוח על 1C-Bitrix. טכנולוגיות: PHP 8.1+, אינפובלוקים v2.0, ORM, רכיבים 2.0, MySQL/MariaDB, אינטגרציות עם YooKassa, Sber, CDEK, דואר רוסי. אנו עובדים עם גרסאות ענן ועל-תנאי של Bitrix24. אנו מבטיחים 95% שביעות רצון לקוחות.
קבלו ייעוץ על הפרויקט שלכם — אנו נציע את הפתרון האופטימלי ונספק לוחות זמנים.

