נתיבי סל קניות

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

POST/basket/compare

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

Body בלבד (JSON)

אין Query params. אפשר לשלוח barcodes, groupIds או שילוב של שניהם.

שדות בקשה

שדהסוגנדרשתיאור
barcodesמערך מחרוזותלארשימת ברקודים להשוואה בין סניפים.
groupIdsמערך מספריםלאקבוצות מוצרים (מ- /products/groups).

חייבים לשלוח לפחות אחד מהשדות: barcodes או groupIds.

דוגמת בקשה

curl -X POST "https://api.priceil.dev/basket/compare" -H "Content-Type: application/json" -d '{
  "barcodes": ["7290000051352"],
  "groupIds": [42]
}'

דוגמת תשובה (data)

[
  {
    "storeId": 12,
    "storeName": "רמי לוי",
    "chain": "רמי לוי שיווק השקמה",
    "city": "תל אביב",
    "address": "רחוב הרצל 1",
    "total": 84.2,
    "found": 2,
    "missing": []
  },
  {
    "storeId": 34,
    "storeName": "שופרסל דיל",
    "chain": "שופרסל",
    "city": "רמת גן",
    "address": "ביאליק 5",
    "total": 90.1,
    "found": 1,
    "missing": ["7290012479843", "group:42"]
  }
]

נסו בעצמכם

POST
JSON Body

שדות תגובה

שדהסוגתיאור
storeIdמספרמזהה פנימי של הסניף.
storeNameמחרוזתשם הסניף.
chainמחרוזתשם הרשת של הסניף.
cityמחרוזתעיר הסניף.
addressמחרוזתכתובת הסניף.
totalמספרעלות כוללת של הפריטים שנמצאו (NIS).
foundמספרכמה פריטים מהבקשה נמצאו בסניף.
missingמערך מחרוזותפריטים שלא נמצאו (ברקוד או group:id).

שגיאות נפוצות

סטטוסמשמעותפעולה מומלצת
400Body לא תקין או חסרשלחו JSON תקין עם לפחות barcodes או groupIds.
404ברקוד או groupId לא קיימיםוודאו שכל המזהים קיימים לפני ההשוואה.
429חריגה ממגבלת קצבretry עם backoff אקספוננציאלי.
POST/basket/total

מחשב סל עבור חנות יחידה בלבד. מעבר לסכום הכולל, התשובה כוללת items עם פירוט פריט-פריט ושדה fallback שמסביר איך המחיר הושג.

שדות בקשה

שדהסוגנדרשתיאור
storeIdמספרכןמזהה פנימי של הסניף לחישוב הסל.
barcodesמערך מחרוזותלאברקודים מפורשים להשוואה.
groupIdsמערך מספריםלאקבוצות מוצרים לפי /products/groups.

דוגמת בקשה

curl -X POST "https://api.priceil.dev/basket/total" -H "Content-Type: application/json" -d '{
  "storeId": 12,
  "barcodes": ["7290000051352"],
  "groupIds": [42]
}'

דוגמת תשובה (data)

{
  "storeId": 12,
  "storeName": "רמי לוי",
  "chain": "רמי לוי שיווק השקמה",
  "city": "תל אביב",
  "address": "רחוב הרצל 1",
  "total": 32.8,
  "found": 2,
  "missing": [],
  "items": [
    {
      "name": "חלב תנובה 3% 1L",
      "itemCode": "7290000051352",
      "price": 6.9,
      "fallback": null
    },
    {
      "name": "אורז בסמטי 1kg",
      "itemCode": "7290012479843",
      "price": 25.9,
      "fallback": "name"
    }
  ]
}

נסו בעצמכם

POST
JSON Body

שדות fallback ב-items

שדהסוגתיאור
fallback = nullnullהפריט נמצא ישירות בברקוד בחנות הזאת.
fallback = nameמחרוזתלא נמצא בברקוד, נמצאה התאמה לפי שם בחנות.
fallback = chainמחרוזתלא נמצא בחנות, המחיר הושאל מסניף אחר באותה רשת.

שגיאות נפוצות

סטטוסמשמעותפעולה מומלצת
400storeId חסר או לא תקיןשלחו storeId מספרי תקין.
404חנות, ברקוד או groupId לא נמצאווודאו שכל המזהים קיימים.
429חריגה ממגבלת קצבretry עם backoff אקספוננציאלי.

זרימת עבודה מומלצת

התחילו באיתור מוצרים וקבוצות מתוךעמוד המוצרים, שלחו את הסל ל-/basket/compare כדי למצוא את הסניפים הזולים, ואז רוצו עם /basket/total על storeId ספציפי כדי להציג פירוט מלא למשתמש.