ייבוא מוצרים מספקים מרובים: צינור אוטומציה

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

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

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
ייבוא מוצרים מספקים מרובים: צינור אוטומציה
מורכב
~2-4 שבועות

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

שאלות נפוצות

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

  • פיתוח אפליקציית ווב עבור FEEDME
    פיתוח אפליקציית ווב עבור FEEDME
    1359
  • פיתוח חנות מקוונת לחברת FURNORO
    פיתוח חנות מקוונת לחברת FURNORO
    1330
  • פיתוח אפליקציית ווב עבור Enviok
    פיתוח אפליקציית ווב עבור Enviok
    1077
  • פיתוח CRM עבור Chasseurs
    פיתוח CRM עבור Chasseurs
    1113
  • פיתוח אתר עבור SBH Partners
    פיתוח אתר עבור SBH Partners
    1201
  • פיתוח אתר עבור Red Pear
    פיתוח אתר עבור Red Pear
    619

מנהל מקדיש שעה לייבוא ידני של מוצרים מספקים מרובים: הורדת XML מספק א', CSV מספק ב', API מספק ג', התאמת SKU, תיקון מחירים, הסרת כפילויות. התוצאה — מוצר עם אותו SKU מופיע פעמיים עם רמות מלאי שונות, מחיר מספק אחד, מלאי מספק אחר — כרטיס מוצר לא עקבי. עם חמישה או עשרה ספקים, העיבוד הידני הופך לשגרה אינסופית עם שגיאות בלתי נמנעות. דמיינו: 10 ספקים, 50,000 מוצרים, מחירים ומלאי חדשים מדי יום. אם טוענים ידנית, עובד אחד מקדיש 40 שעות בשבוע רק לייבוא, ושגיאות מובילות לאובדן הזמנות. מערכת הייבוא הרב-ספקית שלנו פותרת זאת באמצעות צינור עיבוד אחד: מתאמים (adapters) מנרמלים נתונים, מסיר הכפילויות מסיר חזרות, והממזג מרכיב את הכרטיס הסופי לפי סדרי עדיפויות. האוטומציה מקצרת את זמן העיבוד ל-5 דקות לכל 10,000 מוצרים (לפי מחקר Invesp), השגיאות יורדות מ-5–10% ל-<0.1%. חיסכון בעלויות: הטמעה טיפוסית עם שלושה ספקים עולה $3,500 ומחזירה את עצמה תוך 3 חודשים, תוך חיסכון של עד $6,000 בחודש בעבודת כפיים. עם ניסיון של למעלה מ-10 שנים ו-150+ פרויקטים מוצלחים, אנו מבטיחים אינטגרציה חלקה. חיסכון בעלויות תפעוליות — עד 80% לכל ספק. רקורד מוכח שלנו מבטיח ייבוא אמין ומוסמך.

למה ייבוא רב-ספקי עדיף על פני ידני?

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

פרמטר ייבוא ידני ייבוא אוטומטי
זמן ל-10,000 מוצרים ~50 דקות ~5 דקות
שיעור שגיאות 5–10% <0.1%
דילוג על נתונים ללא שינוי לא כן (hashing)
טיפול בעדיפויות ספק ידני עם שגיאות אוטומטי לפי כללים
עלות חודשית ל-10 ספקים $6,000 $1,200

איך לבנות צינור ייבוא?

  1. זיהוי ספקים ופורמטי הנתונים שלהם.
  2. הטמעת מתאמים המיישמים את SupplierAdapterInterface.
  3. הגדרת נרמול: המרת נתונים ל-DTO אחיד.
  4. הרצת הסרת כפילויות לפי מזהים חיצוניים ו-SKU.
  5. הגדרת כללי מיזוג ועדיפויות.
  6. חיבור ניטור והתראות.

כל שלב בפרויקט טיפוסי אורך 1–2 ימים, סה"כ 5–7 ימי עבודה לשלושה ספקים.

ארכיטקטורה והטמעה

Поставщик A (XML) ─┐ Поставщик B (CSV) ─┤─► Normalizer ─► Deduplicator ─► Merger ─► Catalog DB Поставщик C (API) ─┘ 

כל ספק הוא מתאם נפרד המיישם את Поставщик A (XML) ─┐ Поставщик B (CSV) ─┤─► Normalizer ─► Deduplicator ─► Merger ─► Catalog DB Поставщик C (API) ─┘ . צינור העיבוד אחיד: המנרמל ממיר ל-DTO, מסיר הכפילויות מתאים לפי מזהה חיצוני ו-SKU, והממזג מחיל כללי עדיפות.

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

מנגנון פתרון קונפליקטים

הפתרון המרכזי — אחסון נפרד של נתוני ספק גולמיים וכרטיס המוצר הסופי. נתונים גולמיים נשמרים ב-SupplierAdapterInterface עם מפתח ייחודי (supplier_id, external_id). נתונים סופיים נמצאים ב-supplier_products עם קישור לספק הראשי.

CREATE TABLE supplier_products (
  id BIGSERIAL PRIMARY KEY,
  supplier_id INT NOT NULL REFERENCES suppliers(id),
  external_id VARCHAR(255) NOT NULL,
  sku VARCHAR(255),
  barcode VARCHAR(50),
  name TEXT NOT NULL,
  price NUMERIC(12,2),
  stock INT DEFAULT 0,
  attributes JSONB DEFAULT '{}',
  raw_data JSONB,
  imported_at TIMESTAMP NOT NULL,
  hash VARCHAR(64),
  UNIQUE(supplier_id, external_id)
);
CREATE TABLE products (
  id BIGSERIAL PRIMARY KEY,
  master_sku VARCHAR(255) UNIQUE,
  name TEXT,
  price NUMERIC(12,2),
  stock INT,
  primary_supplier_id INT REFERENCES suppliers(id),
  merged_from INT[],
  updated_at TIMESTAMP
);

דוגמת מתאם XML

interface SupplierAdapterInterface {
    public function fetch(): Generator;
    public function getSupplierId(): int;
}

class SupplierProductDTO {
    public function __construct(
        public readonly string $externalId,
        public readonly string $name,
        public readonly float $price,
        public readonly int $stock,
        public readonly ?string $sku = null,
        public readonly ?string $barcode = null,
        public readonly array $attributes = []
    ) {}
}

class XmlSupplierAdapter implements SupplierAdapterInterface {
    public function fetch(): Generator {
        $reader = new XMLReader();
        $reader->open($this->feedUrl);
        while ($reader->read()) {
            if ($reader->nodeType === XMLReader::ELEMENT && $reader->name === 'item') {
                $node = new SimpleXMLElement($reader->readOuterXML());
                yield new SupplierProductDTO(
                    externalId: (string) $node->id,
                    name: (string) $node->name,
                    price: (float) $node->price,
                    stock: (int) $node->quantity,
                    sku: (string) $node->article ?: null
                );
            }
        }
    }

    public function getSupplierId(): int {
        return $this->supplierId;
    }
}

שירות הייבוא ותורים

class SupplierImportService {
    public function import(SupplierAdapterInterface $adapter): ImportResult {
        $supplierId = $adapter->getSupplierId();
        $result = new ImportResult();
        DB::transaction(function () use ($adapter, $supplierId, $result) {
            foreach ($adapter->fetch() as $dto) {
                $hash = hash('sha256', serialize($dto));
                $existing = SupplierProduct::where(['supplier_id' => $supplierId, 'external_id' => $dto->externalId])->first();
                if ($existing && $existing->hash === $hash) {
                    $result->skipped++;
                    continue;
                }
                SupplierProduct::updateOrCreate(
                    ['supplier_id' => $supplierId, 'external_id' => $dto->externalId],
                    ['name' => $dto->name, 'price' => $dto->price, 'stock' => $dto->stock, 'sku' => $dto->sku, 'imported_at' => now(), 'hash' => $hash]
                );
                $result->upserted++;
            }
            SupplierProduct::where('supplier_id', $supplierId)->where('imported_at', '<', now()->subMinutes(30))->update(['stock' => 0]);
        });
        return $result;
    }
}

class ImportSupplierJob implements ShouldQueue {
    public int $timeout = 1800;
    public int $tries = 3;
    public function handle(SupplierImportService $service): void {
        $adapter = SupplierAdapterFactory::make($this->supplier);
        $result = $service->import($adapter);
        Log::info("Supplier {$this->supplier->name} imported", $result->toArray());
        if ($this->isLastActiveImport()) {
            MergeProductsJob::dispatch();
        }
    }
}

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

ניטור והתראות

מדדים מרכזיים: מספר רשומות מיובאות/מדולגות, אחוז חריגות מחירים (שינוי >20% — סימן לשגיאת ספק), זמן ביצוע ייבוא. כאשר חריגים מהספים, נשלחת הודעה. מדדים מרכזיים: מספר מוצרים חדשים, מעודכנים, שנמחקו; אחוז שגיאות פענוח; זמן ביצוע ייבוא; חריגות מחירים (שינוי >20% בייבוא אחד). כאשר חריגים מהספים, נשלחת התראה ל-Telegram או Slack.

היקף העבודה והתוצאות

אנו מספקים צינור עיבוד מוגדר במלואו עם מתאמים לספקים שלכם, תיעוד תפעולי, הדרכת צוות (עד 3 שעות), ו-30 ימי עבודה של תמיכה. אופציונלית, שילוב ניטור והתראות.

שלב משך תוצאה
תכנון צינור העיבוד יום אחד סכימת נתונים, רשימת מתאמים
הטמעת 2 מתאמים (XML+CSV) יומיים מתאמים פעילים עם נרמול
הגדרת כללי מיזוג 1–2 ימים לוגיקת עדיפויות ומיזוג
תורים, לוגים, התראות יום אחד ניטור והודעות
תיעוד והדרכה יום אחד מדריך מנהל

פרויקט טיפוסי עם שלושה ספקים אורך 5–7 ימי עבודה. כל מתאם נוסף אורך 0.5 עד יומיים. חיסכון לכל ספק — עד 80% מזמן העובד.

עם ניסיון של 10+ שנים, 150+ פרויקטים מוצלחים, והבטחת 만족 של 100%, אנו השותף האמין לאוטומציית ייבוא רב-ספקית. העריכו חיסכון לעסק שלכם — צרו קשר לייעוץ. הזמינו הטמעת מערכת ייבוא — ותשכחו מטעינת מוצרים שגרתית.