פיתוח מודול ניהול מחסן מותאם אישית ל-1C-Bitrix

פיתוח מודול ניהול מחסן מותאם אישית ל-1C-Bitrix ### מתי חנות מקוונת על 1C-Bitrix העובדת עם מספר מחסנים, מודול ה-catalog הסטנדרטי נכשל במהירות? נקודות כאב אופייניות: פריט קיים במסד הנתונים אך כבר שמור להזמנה אחרת – עד 15% מההזמנות א
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
פיתוח מודול ניהול מחסן מותאם אישית ל-1C-Bitrix
בינוני
~1-2 שבועות

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

שאלות נפוצות

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

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

פיתוח מודול ניהול מחסנים מותאם אישית ל-1C-Bitrix

כאשר חנות מקוונת על 1C-Bitrix עובדת עם מספר מחסנים, המודול הסטנדרטי catalog נכשל במהירות?

נקודות כאב אופייניות: פריט קיים במסד הנתונים אך כבר שמור להזמנה אחרת – עד 15% מההזמנות אובדות עקב מכירת יתר; מנהלים עוקבים ידנית אחר העברות; אינטגרציה עם 1C דורסת שמירות. נתקלנו בכך עשרות פעמים: לדוגמה, חנות עם שלושה מחסנים בערים שונות איבדה עד 15% מההזמנות עקב היעדר מנגנון שמירה. הפתרון הוא מודול ניהול מחסנים מותאם אישית המעבד הזמנות פי 3 מהר יותר מחשבונאות סטנדרטית. במהלך השנים האחרונות, יישמנו למעלה מ-50 מודולים כאלה המשולבים עם 1C:UT, YooKassa, ATOL ו-CDEK. צרו קשר לייעוץ – נספר לכם כיצד להפחית הפסדים.

מדוע הפונקציונליות הסטנדרטית אינה מספיקה?

המודול הסטנדרטי catalog מאחסן את הכמות הכוללת של סחורה במחסן אך אינו מבחין בין מלאי פיזי למלאי זמין. אין מנגנון לשמירה כנגד הזמנה ספציפית, ואין אפשרות להגדיר עדיפות מחסן למשלוח. העברות בין מחסנים אינן מתועדות עם היסטוריה. לפי תיעוד 1C-Bitrix (https://dev.1c-bitrix.ru/), אירוע OnSaleOrderSaved מאפשר ליירט שמירת הזמנה – זו נקודת הכניסה המרכזית ללוגיקת השמירה שלנו. הפתרון שלנו עם טבלת שמירות נפרדת עולה על חשבונאות סטנדרטית פי 3 במהירות עיבוד הזמנות.

כיצד אנו מרחיבים את סכימת הנתונים?

המודול מוסיף שתי טבלאות עיקריות: b_catalog_store_reservation ו-b_catalog_store_movement.

טבלאות המודול

טבלת שמירות (b_catalog_store_reservation):

שדה סוג מטרה
ID int auto_increment מפתח ראשי
STORE_ID int מפתח זר ל-b_catalog_store
PRODUCT_ID int מזהה הצעת מוצר
ORDER_ID int מפתח זר ל-b_sale_order
QUANTITY decimal(18,4) כמות שמורה
RESERVED_AT datetime מתי נשמר
RELEASED_AT datetime מתי שוחרר (NULL אם פעיל)

טבלת תנועות (b_catalog_store_movement):

שדה סוג מטרה
ID int auto_increment מפתח ראשי
FROM_STORE_ID int מחסן מקור
TO_STORE_ID int מחסן יעד
PRODUCT_ID int מוצר
QUANTITY decimal(18,4) כמות
STATUS enum DRAFT, IN_TRANSIT, COMPLETED, CANCELLED
CREATED_BY int מזהה משתמש
COMPLETED_AT datetime מתי הושלם

כיצד פועלת השמירה בעת הזמנה?

כאשר נוצרת הזמנה, סחורה נשמרת במחסן דרך מטפל האירועים OnSaleOrderSaved. התהליך מורכב ממספר שלבים:

  1. כאשר ההזמנה נשמרת, האירוע OnSaleOrderSaved מופעל.
  2. עבור כל פריט, מחסן המקור נקבע לפי האסטרטגיה שנבחרה.
  3. נוצר רשומה בטבלת b_catalog_store_reservation עם הכמות ומזהה ההזמנה.
  4. כאשר ההזמנה משולמת או מבוטלת, השמירה משתחררת אוטומטית (RELEASED_AT מתמלא).
\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleOrderSaved', [ReservationService::class, 'onOrderSaved'] ); 

סכימה זו מבטיחה ששתי הזמנות שונות לא יכולות לקבל את אותו מוצר.

כיצד לבחור מחסן למשלוח?

אסטרטגיית בחירת המחסן מוגדרת בהגדרות המודול:

  • FIFO – מלאי ישן יותר נשלח ראשון (לפי תאריך קבלה).
  • מחסן קרוב – מבוסס על מיקום גיאוגרפי של הלקוח (דורש קואורדינטות).
  • עדיפות מחסן – משתמש בשדה SORT (נמוך יותר = עדיפות גבוהה יותר).
  • מלאי מינימלי – מרוקן מחסנים עם המלאי הקטן ביותר.

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

חישוב מלאי זמין

מלאי זמין = מלאי פיזי פחות שמירות פעילות:

public static function getAvailable(int $storeId, int $productId): float { $physical = \Bitrix\Catalog\StoreProductTable::getList([ 'filter' => ['=STORE_ID' => $storeId, '=PRODUCT_ID' => $productId], 'select' => ['AMOUNT'], ])->fetch()['AMOUNT'] ?? 0; $reserved = \Bitrix\Main\Application::getConnection()->query( "SELECT COALESCE(SUM(QUANTITY), 0) as RES FROM b_catalog_store_reservation WHERE STORE_ID = {$storeId} AND PRODUCT_ID = {$productId} AND RELEASED_AT IS NULL" )->fetch()['RES'] ?? 0; return max(0, (float)$physical - (float)$reserved); } 

בכרטיס המוצר ובעגלת הקניות, המלאי הזמין מוצג. זה מבטל את המצב שבו לקוח קונה מוצר שכבר אינו שמור.

ממשק ניהולי

שלושה סעיפים מתווספים לפאנל הניהול:

  • מלאים לפי מחסן – מטריצת מוצר × מחסן עם מלאי פיזי וזמין, סינון לפי קטגוריה ומחסן.
  • העברות – יצירת מסמך העברה, אישור קבלה במחסן היעד.
  • שמירות – רשימת שמירות פעילות עם אפשרות לשחרור ידני.

אינטגרציה עם 1C

במהלך אינטגרציה דרך החלפה סטנדרטית (\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleOrderSaved', [ReservationService::class, 'onOrderSaved'] ); ), מלאי מהמודול מסונכרן עם public static function getAvailable(int $storeId, int $productId): float { $physical = \Bitrix\Catalog\StoreProductTable::getList([ 'filter' => ['=STORE_ID' => $storeId, '=PRODUCT_ID' => $productId], 'select' => ['AMOUNT'], ])->fetch()['AMOUNT'] ?? 0; $reserved = \Bitrix\Main\Application::getConnection()->query( "SELECT COALESCE(SUM(QUANTITY), 0) as RES FROM b_catalog_store_reservation WHERE STORE_ID = {$storeId} AND PRODUCT_ID = {$productId} AND RELEASED_AT IS NULL" )->fetch()['RES'] ?? 0; return max(0, (float)$physical - (float)$reserved); } דרך מטפל האירועים /bitrix/admin/1c_exchange.php. שמירות אינן נדרסות: מלאי מ-1C מטופל כמלאי פיזי, ומלאי זמין מחושב מחדש אוטומטית.

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

היקף רכיבים משך
בסיסי שמירה בהזמנה, מלאי זמין, שחרור שמירה 6–8 ימים
סטנדרטי + העברות, אסטרטגיות משלוח, ממשק ניהולי 12–16 ימים
מורחב + אנליטיקה, אינטגרציית 1C, ממשק נייד 20–28 ימים

מה כלול בעבודה

  • פיתוח מודול עם תיעוד API ותצורה.
  • קוד מקור עם הערות, בדיקות יחידה.
  • הגדרת אינטגרציה עם 1C, שערי תשלום וחברות שילוח.
  • הדרכת מנהלים.
  • תמיכה לאחר הפרויקט: אחריות ל-6 חודשים ממועד המסירה.

המומחיות שלנו

למעלה מ-10 שנות ניסיון בפיתוח, יותר מ-50 פרויקטים לחנות עם לוגיסטיקה מגוונת. מומחים מוסמכים בפלטפורמת 1C-Bitrix. אנו מבטיחים עמידה בלוחות זמנים ושקיפות בעבודה. חיסכון ממכירת יתר יכול להגיע ל-15% מהמחזור. צרו קשר לייעוץ – נדון בפרויקט שלכם ללא התחייבות.

מידע נוסף על שיטות ניהול מלאי זמין בוויקיפדיה: FIFO, ניהול מלאי.