SAP Business One היא מהמערכות הוותיקות והנפוצות בישראל לחברות קטנות ובינוניות, ורוב ההתקנות שלה מקומיות: שרת בחברה, HANA או SQL Server, ושותף SAP שמגיע כשצריך. כשחברה כזו פותחת חנות שופיפיי, השאלה הטכנית הראשונה היא איך מדברים עם SAP מבחוץ. יש שתי תשובות, וההבדל ביניהן קובע כמה החיבור יהיה יציב, כמה הוא יעלה לתחזק, ומה יקרה בשדרוג הבא.

DI API: הדרך הישנה

ה-DI API (Data Interface API) הוא ממשק ה-COM של SAP B1. הוא מחייב תוכנה שמותקנת על מכונת Windows ליד SAP, עם גרסת קליינט תואמת בדיוק לגרסת השרת. כל שדרוג של SAP הוא שדרוג של האינטגרציה. הוא עובד, וקיימות אינטגרציות ותיקות שבנויות עליו, אבל לשירות חיצוני שרץ בענן הוא מסורבל: צריך מכונה, צריך תחזוקה, וצריך מישהו שזוכר איך היא מוגדרת.

Service Layer: הדרך הנכונה ברוב המקרים

ה-Service Layer הוא ממשק REST/OData שזמין מגרסה 9.3 ומעלה, על HANA וגם על MS SQL. הוא רץ כשירות בצד SAP, מקבל בקשות HTTPS, ולא דורש שום התקנה על שרת ה-SAP מעבר למה שכבר קיים. לאינטגרציה עם שופיפיי זה אומר:

  • שירות חיצוני אחד שמדבר גם עם שופיפיי וגם עם SAP, בלי מכונת ביניים.
  • תיעוד מלא של כל האובייקטים: Items, BusinessPartners, Orders, Deliveries, Invoices, PriceLists, Warehouses.
  • שדרוגי SAP לא שוברים את החיבור כל עוד הסכימה נשמרת, וזה המצב ברוב השדרוגים.
  • אבטחה ברמת HTTPS, משתמש אינטגרציה ייעודי, וגישה רק מכתובות מורשות.

אם ה-SAP שלכם על גרסה 9.3 ומעלה, זו הבחירה. אם הוא ישן יותר, זו נקודת החלטה: לשדרג, או לבנות דרך DI API ולתכנן מעבר.

מה עובר, ואיך זה ממופה

פריטים. ItemCode ב-SAP הוא ה-SKU בשופיפיי. וריאציות (מידה, צבע) ממופות לפי חוקי שם או לפי שדות משתמש (UDF), לפי איך שהקטלוג שלכם בנוי. תיאורים ותמונות נשארים בשופיפיי, אלא אם החלטתם לנהל אותם ב-SAP.

מחירונים. מחירון אחד לחנות, או מחירוני לקוח ל-B2B, כולל קבוצות מע״מ ומטבע. שינוי מחיר ב-SAP מגיע לחנות אוטומטית.

מלאי לפי מחסן. כמויות מ-OITW לפי מחסן ממופות ל-Locations בשופיפיי, עם אפשרות לחשב זמינות אחרי הזמנות פתוחות והתחייבויות.

הזמנות. כל הזמנה בשופיפיי נוצרת כ-Sales Order ב-SAP עם שורות, הנחות, משלוח ותשלום. מזהה ההזמנה בשופיפיי נשמר ב-UDF כדי שאפשר יהיה למצוא אותה בשנייה.

Business Partners. לקוח חדש נוצר, לקוח קיים מזוהה לפי אימייל וטלפון. לקוחות B2B מקבלים תנאי תשלום ומחירון משלהם.

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

גישה לשרת מקומי בלי לפתוח את SAP לאינטרנט

זו הדאגה הלגיטימית של כל מנהל IT. הפתרון: ה-Service Layer נחשף רק לשירות האינטגרציה, מכתובות מורשות בלבד או דרך VPN. משתמש אינטגרציה ייעודי, רישיון מתאים, והרשאות רק לאובייקטים שהחיבור צריך. הכול נרשם בלוג. SAP עצמו לא נגיש מהאינטרנט, ומי שמתחזק את השרת מאשר את ההגדרה לפני שמתחילים.

הלוקליזציה הישראלית נשארת ב-SAP

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

מקרי קצה שצריך להחליט עליהם באפיון

  • החזרות וזיכויים (Credit Memo) והחזרת המלאי למחסן הנכון.
  • ביטול אחרי שההזמנה כבר נפתחה ב-SAP.
  • פריט שאזל בזמן שהלקוח משלם.
  • לקוח שקיים פעמיים ב-SAP, עם אימייל אחד.
  • כמה חנויות שופיפיי מול חברה אחת, או חברות נפרדות.

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

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

שאלות נפוצות

מה ההבדל בין Service Layer ל-DI API? DI API דורש התקנה על מכונה ליד SAP ועובד דרך COM. Service Layer הוא REST/OData מגרסה 9.3, בלי התקנות על השרת, ומתאים לשירות חיצוני.

זה עובד גם על SQL Server? כן, מגרסה 9.3 על שתי הפלטפורמות.

החשבונית יוצאת מ-SAP או משופיפיי? מ-SAP, עם הלוקליזציה הישראלית. שופיפיי שולח ללקוח.

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