ייצוא מוצרים גמיש ל-CSV, Excel, XML, JSON

כאשר מחלקות דורשות מוצרים בפורמטים שונים ושווקים ומערכות הנהלת חשבונות קובעים חוקים משלהם, ייצוא ידני הופך לכאוס. אנו מפתחים מנגנוני ייצוא גמישים ל-CSV, Excel, XML ו-JSON, אותם אנו מתאימים לדרישות כל נמען. הצוות שלנו מספק את הפרויקט במפתח מלא—מבדיקת צרכים ועד הטמעה ותמיכה שוטפת, תוך הבטחת פעילות אמינה גם עם קטלוגים גדולים.

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

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 2062 השירותים
ייצוא מוצרים גמיש ל-CSV, Excel, XML, JSON
בינוני
~3-5 ימים

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

שאלות נפוצות

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

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

ייצוא מוצרים מותאם אישית: CSV, Excel, XML, JSON לכל דרישה

לאחרונה פנה אלינו לקוח: חנות מקוונת עם 50,000 מוצרים. שווקים דרשו XML ו-CSV בפורמטים שונים, הנהלת חשבונות הייתה זקוקה ל-Excel עבור 1C, ואנליסטים רצו JSON. בכל פעם מפתחים כתבו סקריפט חדש, ובזבזו ימים. שגיאות במיפוי שדות גרמו לכך שהמחיר ללא מע"מ נשלח ל-Wildberries. זו סיטואציה טיפוסית לעסק בצמיחה כאשר מחלקות מבקשות פורמטים שונים ואין פתרון אחיד.

הצענו ארכיטקטורה אחת — תבנית Builder + Writer. היא מכסה את כל התרחישים ללא כפילות קוד. כעת הלקוח בוחר תבנית ייצוא מלוח הניהול, לוחץ על "הורדה", ומקבל את פורמט הקובץ הדרוש תוך שניות.

מדוע ייצוא גמיש הוא מורכב?

  • פורמטים שונים: CSV לא תומך בנתונים מקוננים, XML הוא תקן עבור 1C ושווקים, JSON נוח עבור APIs, אבל עבור גדלים >50 MB NDJSON עדיף.
  • כל נמען רוצה סט שדות משלו: עבור Yandex.Market צריך SKU, שם, מחיר, מלאי; עבור אינסטגרם רק תמונה וקישור.
  • נפח נתונים: קטלוג יכול לגדול למאות אלפי פריטים. טעינת json_encode פשוטה לזיכרון תפיל את השרת.

איך עובד ייצוא אסינכרוני?

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

איך אנחנו בונים ייצוא: תבנית Builder + Writer

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

interface ExportWriterInterface {
    public function open(string $filePath): void;
    public function writeHeader(array $columns): void;
    public function writeRow(array $row): void;
    public function close(): string; // возвращает путь к файлу
}

ה-Builder שומר את התצורה ויכול לפתור שדות קשורים (קטגוריה, תמונות, מאפיינים) באמצעות ביטוי התאמה. עבור CSV: אנו מוסיפים BOM עבור Excel, ומשתמשים ב-interface ExportWriterInterface { public function open(string $filePath): void; public function writeHeader(array $columns): void; public function writeRow(array $row): void; public function close(): string; // возвращает путь к файлу } עם תו מפריד fputcsv.

class CsvWriter implements ExportWriterInterface {
    private $handle;

    public function open(string $filePath): void {
        $this->handle = fopen($filePath, 'w');
        fwrite($this->handle, "\xEF\xBB\xBF");
    }

    public function writeHeader(array $columns): void {
        fputcsv($this->handle, $columns, ';', '"');
    }

    public function writeRow(array $row): void {
        fputcsv($this->handle, $row, ';', '"');
    }

    public function close(): string {
        fclose($this->handle);
        return $this->filePath;
    }
}

עבור Excel אנו משתמשים ב-OpenSpout הזורם — הוא כותב שורות ישירות לזרם ZIP, תוך צריכת ~10 MB זיכרון ללא קשר לגודל הקובץ. עבור נפחי JSON גדולים — NDJSON (אובייקט אחד בכל שורה). XML — דרך XMLWriter עם אלמנטים ;.

טבלת השוואת פורמטים

פורמט ביצועים גודל קובץ קינון נפח מומלץ
CSV גבוה קטן לא עד 100,000 שורות
XLSX בינוני בינוני לא עד 1,000,000 שורות (עם OpenSpout)
XML נמוך גדול כן עד 50,000 מוצרים
JSON/NDJSON גבוה בינוני כן עד 500,000 אובייקטים (NDJSON)

השוואה בין ייצוא ידני לאוטומטי

פרמטר ידני (סקריפט חדש בכל פעם) אוטומטי (Builder + Writer)
זמן פיתוח לפורמט חדש 1-2 ימים 0 (בחירת תבנית)
שגיאות מיפוי תכופות מבוטלות (תצורה אחת)
ביצועים בנפח גדול איטי, קריסת זיכרון זרימה, ~10 MB
התאמה לדרישות חדשות כתיבה מחדש מלאה הוספת שדה ל-Builder
דוגמה לתצורת Builder
$builder = new ProductExportBuilder();
$builder->addField('sku', function ($product) {
    return $product->sku;
})->addField('name', function ($product) {
    return $product->name;
})->addField('price', function ($product) {
    return round($product->price, 2);
})->addField('category', function ($product) {
    return $product->category->name;
})->filterBy('price', '>', 100)->chunkSize(1000);

מה כלול ביישום

  • פיתוח Builder עם תמיכה בשדות מותאמים אישית, מסננים וחלוקה לקבוצות (1000 רשומות).
  • סט Writers עבור CSV (עם BOM), XLSX (OpenSpout), XML, JSON (כולל NDJSON).
  • ייצוא אסינכרוני לקבצים גדולים: מוצרים מיוצאים ברקע דרך תור, המשתמש מקבל הודעה.
  • תבניות ייצוא — נשמרות במסד הנתונים, יכולות לכלול טרנספורמציות (עיגול מחירים, חיתוך תמונות).
  • דף הורדה מוכן עם בקרת גישה וסוגי MIME.
  • תיעוד להגדרת תבניות ופריסה.

כמה זמן זה לוקח?

  • גרסה בסיסית (CSV + Excel + Builder עם חלוקה לקבוצות) — יומיים.
  • הוספת XML, JSON, NDJSON ומשימה אסינכרונית — +יום אחד.
  • תבניות, טרנספורמציות, הורדה — +יום אחד.

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

למהנדסים שלנו יש ניסיון של 5+ שנים ב-Laravel ו-PHP. השלמנו 30+ פרויקטי ייצוא לאינטגרציה עבור חנויות עם קטלוגים של עד 500,000 מוצרים. אנו מבטיחים שהקבצים יהיו תואמים ל-1C, לשווקים שלכם ולמערכות BI. הזמינו פתרון סוהר — קבלו ייצוא גמיש שחוסך שעות עבודה למפתחים שלכם.