פיתוח אגרגטור מחירים להשוואת מחירים — מפתח מלא

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

פיתוח ותחזוקה של כל סוגי האתרים:

אתרי מידע או יישומי אינטרנט
אתרי תדמית, דפי נחיתה, אתרי חברה, קטלוגים מקוונים, חידונים, אתרי קידום, בלוגים, מקורות חדשות, פורטלי מידע, פורומים, אגרגטורים
אתרי מסחר אלקטרוני או יישומי אינטרנט
חנויות מקוונות, פורטלי B2B, שווקים, בורסות מקוונות, אתרי קאשבק, בורסות, פלטפורמות דרופשיפינג, מנתחי מוצרים
יישומי אינטרנט לניהול תהליכים עסקיים
מערכות CRM, מערכות ERP, פורטלים ארגוניים, מערכות ניהול ייצור, מנתחי מידע
אתרי שירות אלקטרוני או יישומי אינטרנט
פלטפורמות מודעות, בתי ספר מקוונים, בתי קולנוע מקוונים, בוני אתרים, פורטלים לשירותים אלקטרוניים, פלטפורמות אירוח וידאו, פורטלים נושאיים

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
פיתוח אגרגטור מחירים להשוואת מחירים — מפתח מלא
מורכב
מ- 2 שבועות עד 3 חודשים

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1502
  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1344
  • פיתוח אתר עבור BELFINGROUP
    פיתוח אתר עבור BELFINGROUP
    1052
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1306
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1049
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1033

אתם נכנסים לאתר, מקלידים "Samsung Galaxy S24", והוא מציג מחירים מ-20 חנויות, ממיין לפי הזול ביותר, ומשרטט גרף היסטוריית מחירים. אנחנו בונים אגרגטורי מחירים כאלה—פלטפורמות שאוספות מחירים אוטומטית, מתאימות מוצרים, ומציגות למשתמשים את ההצעות הטובות ביותר. טכנית, זו משימה מורכבת: ניתוח מקורות הטרוגניים (YML, API, HTML), נורמליזציה של נתונים, התאמה עמומה (fuzzy matching), ועדכונים שוטפים. כל שלב מלא במלכודות: מהגבלת קצב בקשות (rate limiting) ועד להבדלים בשמות מוצרים. עם ניסיון של למעלה מ-10 שנים, בנינו מערכות איסוף והתאמה עמידות לתקלות שמעבדות עד מיליון מוצרים ביום. שגיאת התאמה—ומשתמשים רואים מחירים שגויים או כפילויות. גרידת אתרים (web scraping) ללא בקרה—חסימות ועונשים. אנו מבטיחים יציבות ודיוק נתונים באמצעות ארכיטקטורה מחושבת, ועוזרים ללקוחותינו לחסוך עד 40% מהתקציב על ידי ביטול בדיקות ידניות.

כיצד לארגן איסוף נתונים ממקורות שונים?

מקורות נתונים

נתוני מוצרים ומחירים מגיעים בשלוש דרכים:

  • רשימות מחירים ופידים (feeds) — החנות מספקת קובץ YML, XML, או CSV עם המבחר העדכני. המקור האמין ביותר: נתונים מובנים, שותפות רשמית, ללא סיכון לחסימות. Yandex.Market YML הוא התקן דה-פקטו לשוק דובר הרוסית.
  • ממשקי API של שותפים — חלק מהחנויות מספקות REST APIs. התיעוד לעיתים קרובות חלש, ומגבלות הבקשות נוקשות. לפי התיעוד הרשמי של Yandex, קישורי שותפים דורשים אישור מוקדם.
  • גרידת אתרים (Web scraping) — עבור חנויות ללא פידים. סיכון גבוה: CAPTCHA, הגבלת קצב, שינויי עיצוב, חסימת IP. דורש תחזוקה מתמדת.

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

ארכיטקטורת אוסף הנתונים

Scheduler (Celery Beat / Laravel Scheduler)
↓ каждые N часов FeedFetcher workers (по одному на источник)
↓ RawData storage (S3 или локальная FS)
↓ Parser workers (XML/CSV/JSON → нормализованные объекты)
↓ Normalizer (приведение единиц, очистка текста)
↓ Matcher (сопоставление с товарами в БД)
↓ PriceHistory (запись in timeseries)
↓ ElasticsearchIndexer (обновление индекса)

תור משימות: Celery + Redis לסטאק Python, Laravel Horizon + Redis לסטאק PHP. כל פיד מעובד באופן עצמאי; שגיאה במקור אחד לא חוסמת אחרים.

ניתוח Yandex.Market YML

YML הוא XML עם סכמה קפדנית. שדות קריטיים:

<offer id="12345" available="true">
  <url>https://shop.example.com/product/12345</url>
  <price>4990</price>
  <currencyId>RUB</currencyId>
  <categoryId>14</categoryId>
  <name>Samsung Galaxy A55 128GB</name>
  <vendor>Samsung</vendor>
  <model>Galaxy A55</model>
  <barcode>8806095076783</barcode>
  <param name="Цвет">Синий</param>
  <param name="Объём памяти">128 ГБ</param>
</offer>

הברקוד (barcode) הוא המפתח הטוב ביותר להתאמה. GTIN/EAN הוא ייחודי לכל וריאציה של מוצר. אם ברקודים קיימים עבור רוב הספקים, ההתאמה הופכת לטריוויאלית. לפי תיעוד Yandex.Market, ברקוד הוא רכיב מומלץ להתאמה מדויקת.

מדוע התאמת מוצרים היא השלב המרכזי?

זה החלק המורכב ביותר באגרגטור. המשימה: לקבוע ש-Samsung Galaxy A55 128GB Blue מחנות A ו-Smartphone Samsung Galaxy A55 (SM-A556B) 128 Gb Blue מחנות B הם אותו מוצר.

שיטות דטרמיניסטיות

  • התאמת GTIN/EAN: אם לשני המוצרים יש ברקוד—התאמה חד-משמעית.
  • מספר חלק של היצרן (MPN): SM-A556B הוא ייחודי בתוך המותג.
  • קנוניזציה של URL: חלק מהחנויות כוללות GTIN ב-URL.

התאמה עמומה (Fuzzy Matching)

from rapidfuzz import fuzz

def match_score(title_a: str, title_b: str, brand_a: str, brand_b: str) -> float:
    if brand_a.lower() != brand_b.lower():
        return 0.0
    title_similarity = fuzz.token_sort_ratio(title_a, title_b)
    return title_similarity / 100

סף התאמה: 0.85+ נחשב להתאמה אוטומטית, 0.65–0.85 נשלח לבדיקה ידנית, מתחת—מוצר חדש.

גישת ML

ייצוגי שמות מוצרים (sentence-transformers, ruBERT) + דמיון קוסינוס. מדויק משמעותית יותר מ-fuzzy, במיוחד עבור ניסוחים שונים של אותו מוצר. המודל מאומן על התאמות שאושרו היסטורית.

מבנה אחסון:

canonical_products (id, gtin, mpn, brand, name, category_id, attrs JSONB)
source_offers (id, source_id, external_id, canonical_product_id, price, url, in_stock, updated_at)
match_candidates (offer_id, canonical_id, score, status) -- pending | approved | rejected
שיטה דיוק מהירות מורכבות יישום
דטרמיניסטית (GTIN) 100% גבוהה נמוכה
Fuzzy 80–90% בינונית בינונית
ML (ייצוגים) 95%+ נמוכה (דורש GPU) גבוהה

כיצד מתעדכנים מחירים ונשמרת היסטוריה?

היסטוריית מחירים

הערך המרכזי של אגרגטור הוא לא רק המחיר הנוכחי אלא גם היסטוריית השינויים. כל שינוי מחיר נרשם, לא מוחלף.

price_history (
    id BIGSERIAL,
    source_offer_id BIGINT,
    price NUMERIC(12,2),
    in_stock BOOLEAN,
    recorded_at TIMESTAMPTZ DEFAULT NOW()
)

לאחסון סדרות זמן אנו משתמשים ב-TimescaleDB—הרחבה של PostgreSQL שמחלקת את הטבלה לפי זמן. חלופות: InfluxDB או ClickHouse לעומסים גבוהים (עד 10,000 הכנסות בשנייה).

גרף היסטוריית מחירים הוא רכיב סטנדרטי בעמוד המוצר. אנו משתמשים ב-Chart.js או Recharts, ומצברים נתונים לפי יום: Scheduler (Celery Beat / Laravel Scheduler) ↓ каждые N часов FeedFetcher workers (по одному на источник) ↓ RawData storage (S3 или локальная FS) ↓ Parser workers (XML/CSV/JSON → нормализованные объекты) ↓ Normalizer (приведение единиц, очистка текста) ↓ Matcher (сопоставление с товарами в БД) ↓ PriceHistory (запись in timeseries) ↓ ElasticsearchIndexer (обновление индекса) .

תדירות עדכון

סוג מקור מרווח עדכון
פיד YML של חנות גדולה כל 2–4 שעות
API עם הגבלת קצב 1–6 פעמים ביום
עמוד שנגרד 1–2 פעמים ביום
API בזמן אמת (נדיר) בכל שינוי דרך webhook

כשמחיר משתנה—ביטול מטמון העמוד וחישוב מחדש של המחיר המינימלי באינדקס.

כיצד להגדיר איסוף נתונים ב-4 שלבים

  1. חיבור מקורות: השגת פידי YML מחנויות או הגדרת גישת API. מקור אחד = קונפיגורציה אחת.
  2. הגדרת ניתוח: עבור פידים—שימוש במנתח YML/XML מוכן; עבור APIs—כתיבת מתאם לפי התיעוד.
  3. הפעלת התאמה: הגדרת סט כללים—עדיפות GTIN, אחר כך fuzzy, ואז ML. התחילו עם אימות ידני.
  4. ניטור ועדכון: הגדרת מתזמן Celery או Horizon, הוספת התראות לכשלי מקורות.

מה כולל פיתוח אגרגטור

כתוצאה מכך, אתם מקבלים:

  • תיעוד לשילוב מקורות (תיאורי פורמטים, דוגמאות).
  • תשתית פרוסה (Docker, CI/CD, ניטור).
  • פאנל ניהול לעריכת התאמות וצפייה בסטטיסטיקות.
  • הכשרת צוות הלקוח לתפעול המערכת.
  • תמיכה טכנית למשך 3 חודשים לאחר ההשקה.
  • אחריות על נכונות ההתאמות ועדכוני מחירים בזמן.

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

הניסיון שלנו

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