נתיבי סל קניות
נתיבים לחישוב סל מוצרים מלא: השוואה בין סניפים עם דירוג מהזול ליקר, וחישוב סל בחנות ספציפית עם פירוט לכל פריט. כדי לקבל 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). |
שגיאות נפוצות
| סטטוס | משמעות | פעולה מומלצת |
|---|---|---|
| 400 | Body לא תקין או חסר | שלחו 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 = null | null | הפריט נמצא ישירות בברקוד בחנות הזאת. |
| fallback = name | מחרוזת | לא נמצא בברקוד, נמצאה התאמה לפי שם בחנות. |
| fallback = chain | מחרוזת | לא נמצא בחנות, המחיר הושאל מסניף אחר באותה רשת. |
שגיאות נפוצות
| סטטוס | משמעות | פעולה מומלצת |
|---|---|---|
| 400 | storeId חסר או לא תקין | שלחו storeId מספרי תקין. |
| 404 | חנות, ברקוד או groupId לא נמצאו | וודאו שכל המזהים קיימים. |
| 429 | חריגה ממגבלת קצב | retry עם backoff אקספוננציאלי. |
זרימת עבודה מומלצת
התחילו באיתור מוצרים וקבוצות מתוךעמוד המוצרים, שלחו את הסל ל-/basket/compare כדי למצוא את הסניפים הזולים, ואז רוצו עם /basket/total על storeId ספציפי כדי להציג פירוט מלא למשתמש.