אינטגרציה עם Priority ERP

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

בקצרה

ב-Priority יש שלוש דרכים להחלפת נתונים: REST API מבוסס OData לעבודה בזמן אמת, Web SDK ב-JavaScript לעבודה עם מסכים ופרוצדורות כמו משתמש במערכת, וטעינות דרך ממשקים להחלפת קבצים במנות. הבחירה לא נקבעת לפי מה שנוח למפתח, אלא לפי המגבלות: בענן יש ל-API מגבלה על מספר הקריאות בדקה למשתמש ועל מספר הבקשות במקביל, ואינטגרציה שפונה ל-Priority על כל פרט קטן תיתקע בהן ביום העמוס הראשון.

שלוש דרכים, ומתי כל אחת מתאימה

דרךמתאימה לעל מה להסתכל
REST API (OData)הזמנה מהחנות ל-Priority, מלאי ומחירים בחזרה, כרטיס לקוח ל-CRMכל מסך צריך להיפתח ל-API. מגבלות הענן ורישיון API
Web SDKפעולות שב-Priority נעשות דרך מסך או פרוצדורה: הדפסת מסמך, הרצת פרוצדורה, קבצים מצורפיםזו חבילת JavaScript, והלוגיקה שלה משחזרת את העבודה של משתמש בממשק
ממשקים (Form Loads)טעינה במנות: מחירון, טבלאות גדולות, החלפה ליליתקבצים או XML/JSON, עיבוד לפי לוח זמנים, שגיאות מופיעות ביומן הטעינה

מעבר לזה, בתיעוד למפתחים יש פרקים על webhooks, ODBC ושרת MCP. הפורטל הרשמי: prioritysoftware.github.io.

הרשאות

  • Basic עם שם משתמש וסיסמה של Priority: הדרך הפשוטה ביותר, וגם החלשה ביותר.
  • Personal Access Token בגרסאות חדשות: לחיבור שרת לשרת, Priority דווקא ממליצה עליו.
  • OAuth2 דרך מודול External ID נפרד, רק בהתקנה על שרתים שלכם. כל עוד הוא פעיל, Basic לא עובד, ואת זה צריך לדעת לפני ההחלפה, לא אחריה.

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

המגבלות שמכתיבות את הארכיטקטורה

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

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

מכאן נגזרים הכללים שלפיהם אנחנו בונים אינטגרציה:

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

איפה אינטגרציות בדרך כלל נשברות

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

מה אנחנו עושים

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

שאלות נפוצות

יש ל-Priority API?

כן. REST API בתקן OData, ובנוסף Web SDK ב-JavaScript ומנגנון טעינות (ממשקים) להחלפת נתונים במנות. התיעוד מפורסם בפורטל המפתחים של Priority.

למה האינטגרציה עם Priority איטית או מחזירה שגיאות בעומס?

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

איזו הרשאה לבחור?

לחיבור שרת לשרת, Priority ממליצה על Personal Access Token. OAuth2 זמין דרך מודול External ID רק בהתקנה על שרתים שלכם, וכל עוד הוא פעיל, Basic לא עובד.

אפשר לחבר את Priority לחנות מקוונת?

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

צריך רישיון נפרד ל-API?

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

מאיפה להתחיל

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

דברו איתי

קשור: אינטגרציות, ERP ו-CRM, חיבור חנות ל-ERP

SLAtech LTD