אנו מפתחים חלקים סיטונאיים (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% שביעות רצון לקוחות.
קבלו ייעוץ על הפרויקט שלכם — אנו נציע את הפתרון האופטימלי ונספק לוחות זמנים.

