פיתוח קונקטורים ל-1C-Bitrix: אינטגרציה עם CRM ושווקים מקוונים

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

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

שאלות נפוצות

מחבר Bitrix: היכן נשבר החילוף עם 1С ו-CRM

החילוף בין 1С, Bitrix ו-CRM נשבר לא "באופן כללי", אלא בארבעה מקומות צפויים. הראשון — אי-סנכרון מלאי: המוצר נמכר במרקטפלייס, אבל ב-1С טרם עבר החיוב, והאתר ממשיך למכור משהו שאינו קיים.

השני — כפילויות הזמנות: העלאה חוזרת לאחר timeout יוצרת מסמך שני לאותה רכישה, והמנהל מחפש ידנית איזו מהן אמיתית.

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

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

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

מה נותן קונקטור Bitrix לעסקים שעובד כראוי

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

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

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

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

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

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

דרכי אינטגרציה: חילופין לפי לוח זמנים, לפי אירועים ודרך אפיק נתונים

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

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

אפשרות מתי מתאימה מגבלות
חילופין לפי לוח זמנים ספרי עזר, מלאי, קטלוגים; מערכות ללא API של אירועים השהיה עד להרצה הבאה; בחפיפת חלונות ייתכנו כפילויות והתנגשויות בגרסאות הרשומה
חילופין מבוססי אירועים הזמנות, תשלומים, סטטוסים, בקשות — במקום שבו חשובה הטריות דורש טיפול בחזרות ובסדר האירועים; כאשר המקבל אינו זמין, אירועים הולכים לאיבוד ללא חוצץ
אפיק נתונים מספר מערכות, זרימה גבוהה, דרישות לעמידות בתקלות מורכב יותר לתחזוקה: נדרשים ניטור תורים וטיפול בהודעות "תקועות"

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

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

איך אנחנו מטמיעים את הקונקטור: מביקורת ועד מסירה

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

  1. ביקורת האינטגרציה. מפרקים את זרימות הנתונים הנוכחיות: אילו ישויות כבר קיימות ב-CRM, אילו במערכת הנהלת החשבונות, והיכן נוצרים כפילויות ידניות. מתעדים את כיווני הסנכרון (חד-כיווני או דו-כיווני), את התדירות ואת נפח הרשומות. התוצר — מפת נתונים עם רשימת השדות שבאמת צריך לסנכרן, ולא את כולם.
  2. תכנון סכימת הסנכרון. קובעים מהו מקור האמת לכל שדה, איך נפתרים קונפליקטים בשינוי בו-זמני, ולפי איזה סימן משויכות רשומות בין המערכות. כאן גם בוחרים את המצב: סנכרון לפי לוח זמנים או תגובה לאירוע.
  3. הגדרת הקונקטור. בונים התאמה בין ישויות ומדריכים, מגדירים הרשאות לחשבון שירות — רק למחלקות הנדרשות, בלי הרשאות מיותרות. מפעילים לוגים מיד, כדי לנתח תקלות לפי עובדות ולא לפי השערות.
  4. בדיקת הסנכרון בסביבת בדיקות. מריצים תרחישים: יצירה, שינוי, מחיקה, ייצוא המוני, שליחה חוזרת של אותה רשומה. בנפרד בודקים את ההתנהגות כאשר אחת המערכות אינה זמינה — הסנכרון לא אמור לאבד נתונים או ליצור כפילויות.
  5. מעבר לסביבת העבודה. מריצים על מערך נתונים מוגבל, משווים סכומי ביקורת ומספר רשומות לפני ואחרי. רק לאחר התאמה מרחיבים לנפח המלא.
  6. מסירה לתמיכה. מוסרים תיעוד של סכימת הסנכרון, הוראות לתקלות אופייניות ונוהל פעולה במקרה של אי-התאמת נתונים. הצוות שילווה את המערכת יודע לאן להסתכל בשגיאה הראשונה.

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

מה הלקוח מקבל לידיו לאחר ההטמעה

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

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

את החבילה מעבירים בסביבה שלכם: המאגר, הגישות והתיאורים נשארים אצלכם, ולא אצלנו. תארו את המשימה — נחזור עם הערכה ותוכנית.

מקרה בוחן: כיצד מחבר ביטל אי-סנכרון מלאי בזירות מסחר

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

מה היה לפני האינטגרציה

חלק הפריטים עם אי-התאמת מלאי בין 1С לזירות הגיע עד 18% בימים עמוסים. החלפה התבצעה פעם ביממה, ההשהיה בין מכירה לעדכון מלאי — עד 20 שעות.

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

מה שינו

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

מה קרה לאחר מכן

חלק אי-ההתאמות במלאי ירד ל-0.4% — אלה בעיקר פריטים שנמכרו ברגע ההחלפה. זמן ההחלפה הצטמצם מ-20 שעות ל-2-4 דקות. תיקונים ידניים של מלאי והזמנות הוסרו כמעט לחלוטין: המנהל משקיע בבדיקה 15-20 דקות ביום במקום 3-4 שעות. מספר הביטולים מסיבת "אין במלאי" ירד פי כמה — הזירות הפסיקו למכור את מה שאין במחסן.

מחבר כזה — אינו שדרוג חד-פעמי, אלא חלק ממעגל החשבונאות: בעת הוספת זירה חדשה, לוגיקת ההחלפה נעשה בה שימוש חוזר, ולא נכתבת מחדש.

במה שונה מחבר אירועים מחיבור לפי לוח זמנים?

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

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

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

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

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

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

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

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

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

ספקות טכניים לפני תחילת האינטגרציה

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

תאימות גרסאות: האם יהיה צורך לעדכן את הליבה?

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

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

התנגשויות נתונים: מי קובע במקרה של אי-התאמה?

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

ביטול שינויים: מה אם האינטגרציה תשתבש?

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

הרשאות ואבטחה: מה אתם מבקשים מאיתנו?

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

אם שאלתכם לא נכללה ברשימה — תארו את המשימה, ונחזור עם הערכה ותוכנית עבודה עבור התצורה שלכם.

נדון במשימת האינטגרציה שלכם

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

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

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

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