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

ב-4 באוגוסט 2026 שופרסל העלתה לפורטל הציבורי שלה קובץ מחירים מלא לכל אחד מהסניפים בשעה 03:00 בבוקר, וקובץ מבצעים מעודכן בשעה 14:00 באותו יום. קובץ מחירים מלא של סניף בודד שוקל בין 320 ל-370 קילובייט דחוס ומכיל את הקטלוג השלם של אותו סניף. הפורטל של שופרסל לבדו מחזיק קבצים לכ-440 סניפים.

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

איפה יושבים הקבצים, רשת אחרי רשת

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

פורטלים עצמאיים. שופרסל מפעילה פורטל משלה בכתובת prices.shufersal.co.il. אין הרשמה ואין סיסמה. בוחרים סניף מרשימה נפתחת של מאות סניפים, בוחרים קטגוריה ומורידים. סופר פארם עושה את אותו הדבר בכתובת prices.super-pharm.co.il, עם קבצים ליותר מ-300 סניפים.

השרת המשותף. חלק גדול מהרשתות משתמשות בשרת קבצים משותף בכתובת url.publishedprices.co.il/login. נכנסים עם שם משתמש של הרשת, והסיסמה בדרך כלל ריקה או 123456. רמי לוי נכנס עם RamiLevi, אושר עד עם osherad, יוחננוף עם yohananof, יינות ביתן וקרפור עם ybitan, טיב טעם עם TivTaam, חצי חינם עם HaziHinam, דור אלון ו-AM:PM עם doralon, סטופ מרקט עם StopMarket וקשת טעמים עם Keshet. אחרי הכניסה נפתחת תיקייה עם רשימת הקבצים ואפשר להוריד ישירות.

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

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

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

מה יש בקובץ, ומה לא

הקבצים הם XML דחוס בפורמט gzip. שם הקובץ עצמו כבר מספר חצי מהסיפור. Stores7290027600007-000-20260804-020 הוא קובץ הסניפים של שופרסל, כשהמספר 7290027600007 הוא מזהה הרשת, והוא נוצר ב-4 באוגוסט 2026 בשעה 02:00. הקובץ הזה שוקל 12.45 קילובייט בלבד. PriceFull7290027600007-001-001-20260804-030000 הוא קובץ המחירים המלא של סניף מסוים באותה רשת מאותו בוקר.

בכל פורטל יש חמישה סוגי קבצים:

  • PriceFull הקטלוג המלא של הסניף, כל פריט וכל מחיר. זה הקובץ שאתם רוצים.
  • Price רק העדכונים מאז הפרסום הקודם. קטן בהרבה, בסדר גודל של 500 בייט עד קילובייט בודד.
  • PromoFull כל המבצעים הפעילים בסניף באותו רגע.
  • Promo עדכוני מבצעים בלבד, בערך 3 קילובייט לקובץ.
  • Stores קובץ אחד לכל הרשת, עם רשימת הסניפים, מזהה, שם, עיר, כתובת ומיקוד.

בתוך קובץ המחירים כל מוצר הוא רשומה עם שדות קבועים: ItemCode שהוא הברקוד, ItemName, ManufacturerName, ManufactureCountry, ItemPrice שהוא המחיר בשקלים, UnitQty ליחידת המידה, Quantity לכמות באריזה, UnitOfMeasurePrice למחיר ליחידת מידה, QtyInPackage, bIsWeighted שמסמן אם המוצר נמכר במשקל, AllowDiscount ו-PriceUpdateDate שאומר מתי המחיר הזה נקבע.

השדה UnitOfMeasurePrice הוא החלק הכי שימושי בכל הסיפור, כי הוא מנטרל את משחקי גודל האריזה. שני בקבוקי שמן זית ב-38.90 וב-42.50 שקל לא אומרים כלום, עד שרואים שהראשון מכיל 500 מיליליטר והשני 750. אחרי החלוקה מדובר ב-7.78 שקל ל-100 מיליליטר מול 5.67, והזול לכאורה הוא היקר בפועל ב-37 אחוז.

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

מה שאין בקובץ המחירים הוא מבצעים. אלה יושבים בקובץ נפרד עם מבנה מסובך יותר: PromotionId, PromotionDescription, PromotionStartDate ו-PromotionEndDate, RewardType שמסמן את סוג ההטבה, MinQty, DiscountedPrice, MinNoOfItemOffered שאומר כמה יחידות צריך לקנות כדי לקבל את המחיר, AllowMultipleDiscounts ו-IsGiftItem. מבצעי מועדון מסומנים בשדה ClubId, ושם יש מספר ולא שם. הקובץ מודיע שקיים מחיר מועדון, בלי לפרט תמיד לאיזה מועדון.

ככה בונים את הסל ומשווים

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

  1. הורידו את קובץ Stores של הרשת ופתחו אותו. מצאו את מזהי הסניפים של שניים או שלושה סניפים שאתם באמת מוכנים לנסוע אליהם, לפי העיר והכתובת שמופיעות בקובץ.
  2. חזרו לפורטל, בחרו את הסניפים האלה והורידו לכל אחד קובץ PriceFull. חלצו את קובץ ה-gz. גם ווינדוס וגם מק פותחים אותו בלחיצה כפולה בלי תוכנה נוספת.
  3. שנו את סיומת הקובץ שהתקבל ל-xml ופתחו אותו באקסל דרך פתיחת קובץ. אקסל ישאל אם לפתוח כטבלת XML, ותענו כן. מקבלים גיליון עם עשרות אלפי שורות, שורה למוצר.
  4. פתחו גיליון חדש והדביקו בטור אחד את רשימת הברקודים של הסל שלכם. בטור שלידו כתבו נוסחת XLOOKUP או VLOOKUP שמושכת את ItemPrice מגיליון הסניף לפי הברקוד. שכפלו את הנוסחה לכל סניף בטור נפרד.
  5. סכמו כל טור. עכשיו יש לכם את המחיר של הסל האמיתי שלכם בכל אחד מהסניפים, מספר מול מספר.

מי שרוצה גם את המבצעים חוזר על אותו תהליך עם קובץ PromoFull ומחבר לפי ItemCode. שווה לשים לב שבמבצע כמותי המחיר בשדה DiscountedPrice תקף רק מהכמות שמופיעה ב-MinNoOfItemOffered ומעלה, כך שמבצע של שלוש יחידות לא מוזיל לכם יחידה אחת.

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

מוצר סניף א סניף ב הפרש הזול
חלב 3% ליטר 6.94 6.94 0 שווה
קפה נמס 200 גרם 34.90 28.50 6.40 סניף ב
שמן זית 750 מ"ל 42.50 36.90 5.60 סניף ב
קורנפלקס 750 גרם 24.90 27.30 2.40 סניף א

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

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

אותה רשת, סניף אחר, מחיר אחר

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

איפה מחיר הסל פער מהממוצע
אשכול חברתי-כלכלי הגבוה ביותר 1,015 שקל 6.3% מעל
מחוז תל אביב 989 שקל 3.5% מעל
ממוצע ארצי 955 שקל 0
מחוז צפון 938 שקל 1.8% מתחת
יהודה ושומרון 922 שקל 3.5% מתחת

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

גם התחרות המקומית מזיזה את המחט. באזורי ביקוש שבהם פעלו שלושה סניפים מתחרים הסל עלה 929 שקל, לעומת 957 שקל באזורים שבהם היה סניף יחיד. פער של 2.7 אחוזים, על אותה עגלה בדיוק.

מה זה שווה בכסף

משפחה שקונה סל בסדר גודל של 955 שקל בשבוע ומגלה שהסניף שהיא רגילה אליו יקר ב-6.3 אחוזים תחסוך 60 שקל בכל קנייה. בשנה זה 3,120 שקל, בלי לוותר על מוצר אחד.

גם בלי לכתוב שורת קוד

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

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

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

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

איפה השוואת המחירים מטעה

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

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

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

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

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

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

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

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

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

שיתוף:
דילוג לתוכן