כשיש לך 10,000 מוצרים בקטלוג והספק שלך שולח קובץ אקסל יומי עם מחירים, עדכון ידני מבזבז זמן ומוביל לשגיאות.
אנחנו הופכים את התהליך לאוטומטי: מורידים את הקובץ, מנתחים אותו, מעדכנים מחירים ומלאים ללא התערבות אנושית. אינטגרציה מלאה אורכת 4 עד 6 ימי עסקים לכל ספק. עדכון ידני של 1,000 פריטים אורך שעות—ושגיאות הקלדה ושורות שהוחמצו הן דבר נפוץ. אוטומציה מבטלת שגיאות אנוש ומפנה משאבים למשימות בעלות ערך גבוה יותר.
כיצד אוטומציה מפחיתה עלויות
עדכון ידני של 1,000 פריטים אורך 2–3 שעות, עם שגיאות בלתי נמנעות. אוטומציה מצמצמת את הזמן לאפס ומפחיתה שגיאות ב-95%. לאחר ההגדרה, התהליך פועל במשך שנים. הלקוח שלנו עם 15,000 פריטים חוסך 40 שעות בחודש—כ-$9–13 בחיסכון חודשי. תקופת ההחזר היא 2–3 חודשים. עבור חנות עם 50,000 מוצרים, היתרונות גדלים: חיסכון בזמן יכול לעלות על 100 שעות בחודש.
כיצד אנו מורידים מחירונים ממקורות שונים
אימייל עם קובץ מצורף הוא התרחיש הנפוץ ביותר. אנו מתחברים לתיבת הדואר באמצעות IMAP, מחפשים הודעות מהספק לפי נושא או שולח, ומורידים את הקובץ המצורף. לאבטחה, אנו משתמשים בתיבת דואר או תיקייה נפרדת.
$imap = imap_open('{mail.example.com:993/imap/ssl}INBOX', $user, $pass);
$emails = imap_search($imap, 'FROM "[email protected]" UNSEEN');
foreach ($emails as $num) {
$structure = imap_fetchstructure($imap, $num);
// извлекаем вложение
}FTP/SFTP—אנו מורידים את הקובץ מדי יום לפי לוח זמנים, ומשווים את תאריך השינוי עם הריצה הקודמת. אם אין שינוי, אנו מדלגים. HTTP URL—הספק מפרסם מחירון דרך קישור עם Basic Auth. כל האפשרויות נתמכות כברירת מחדל.
| מקור | פרוטוקול | תדירות עדכון | מורכבות הגדרה |
|---|---|---|---|
| אימייל | IMAP | עם הגעה | נמוכה |
| FTP | FTP/SFTP | לפי לוח זמנים | בינונית |
| HTTP URL | HTTP | לפי בקשה | נמוכה |
כיצד להגדיר מיפוי עמודות לכל פורמט
בעיה: לכל ספק יש פורמט שונה—SKU לפעמים בעמודה B, לפעמים ב-D; שורות כותרת נעות בין 2 ל-5. פתרון—מיפוי ניתן להגדרה המאוחסן ב-Highload-block:
supplier_id: 42
sku_column: B # артикул в столбце B
price_column: D # цена в столбце D
qty_column: F # остаток в столбце F
header_rows: 3 # первые 3 строки — шапкаלקריאת קבצי Excel, אנו משתמשים ב-PhpSpreadsheet (יורש של PHPExcel):
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
$sheet = $spreadsheet->getActiveSheet();
$rows = $sheet->toArray();אם הספק משנה את הפורמט, ערוך את המיפוי. עבור 50,000+ פריטים, אנו בונים אינדקס הפוך בזיכרון כאשר ה-worker מתחיל: טוענים את כל מיפויי ה-SKU פעם אחת כדי להימנע מפניות ל-DB.
כיצד לעדכן מחירים ומלאים דרך Bitrix API
מחירים ב-Bitrix מאוחסנים בטבלת $imap = imap_open('{mail.example.com:993/imap/ssl}INBOX', $user, $pass); $emails = imap_search($imap, 'FROM "[email protected]" UNSEEN'); foreach ($emails as $num) { $structure = imap_fetchstructure($imap, $num); // извлекаем вложение } . כל סוג מחיר הוא רשומה נפרדת. אנו מעדכנים אותם דרך API:
$priceType = CCatalogPriceType::GetList([], ['NAME' => 'Закупочная'])->Fetch();
CCatalogProduct::SetPrice($elementId, $priceType['ID'], $price, 'USD');
// наценка для розничной цены
$retailPrice = $supplierPrice * $supplier->getMarkupCoefficient();מלאים נמצאים ב-supplier_id: 42 sku_column: B # артикул в столбце B price_column: D # цена в столбце D qty_column: F # остаток в столбце F header_rows: 3 # первые 3 строки — шапка . אם לא נעשה שימוש במחסנים, אנו מעדכנים את $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath); $sheet = $spreadsheet->getActiveSheet(); $rows = $sheet->toArray(); ישירות:
CCatalogStoreProduct::Update($storeProductId, ['AMOUNT' => $qty]); זיהוי מוצרים לפי SKU: אנו מאחסנים התאמות במאפיין infoblock $priceType = CCatalogPriceType::GetList([], ['NAME' => 'Закупочная'])->Fetch(); CCatalogProduct::SetPrice($elementId, $priceType['ID'], $price, 'USD'); // наценка для розничной цены $retailPrice = $supplierPrice * $supplier->getMarkupCoefficient(); או ב-Highload-block CCatalogStoreProduct::Update($storeProductId, ['AMOUNT' => $qty]); . עבור 50,000+ פריטים, אנו משתמשים במטמון בזיכרון.
השוואה בין ייבוא ידני לאוטומטי
| פרמטר | ייבוא ידני | ייבוא אוטומטי |
|---|---|---|
| זמן עבור 1,000 פריטים | 2–3 שעות | 2–3 דקות |
| שגיאות | 5–10% | <0.1% |
| תדירות עדכון | פעם בשבוע | עד 24 פעמים ביום |
| עלות חודשית | 40 שעות | 0 שעות |
אוטומציה מהירה פי 50 ומדויקת פי 100 מעבודה ידנית.
מה כולל הגדרת האינטגרציה
- ניתוח מקורות נתונים ופורמט המחירון הנוכחי
- פיתוח תצורת מיפוי עמודות לכל ספק
- הגדרת הורדת קבצים (אימייל/FTP/HTTP) וה-agent לעיבוד
- יישום עדכוני מחירים ומלאים דרך Bitrix API, תוך התחשבות בקטלוגים מסחריים ומחסנים
- יצירת מערכת רישום שגיאות והתראות (Telegram, אימייל)
- מסירת תיעוד: תיאור ארכיטקטורה, הוראות להוספת ספק חדש, אנשי קשר לתמיכה
- הדרכת מפעילים: כיצד לזהות תקלה ומה לעשות כשהפורמט משתנה
- תמיכה באינטגרציה למשך חודש לאחר ההשקה
שגיאות ייבוא נפוצות וכיצד להימנע מהן
שינוי בפורמט הקובץ. הספק לא הזהיר וה-parser נכשל. רישום השגיאות מתעד את הבעיה, אנו מקבלים התראה ומתקנים את המיפוי במהירות. עבור ספקים קריטיים, אנו מגדירים parser חלופי.
כפילויות SKU. אותו SKU יכול להופיע בשני מוצרים. פתרון: בדיקת ייחודיות SKU לפני הייבוא. אם יש כפילות, עצור את התהליך ושלח התראה.
מחירים שגויים. לפעמים הספק עושה טעות בקובץ. אנו בודקים טווח מחירים תקין: אם המחיר משתנה ביותר מ-30%, התהליך מושהה ודורש אישור.
| גודל מחירון | מספר שורות | זמן עיבוד | זיכרון שיא |
|---|---|---|---|
| 2 MB | 5,000 | 7 שניות | 256 MB |
| 10 MB | 25,000 | 35 שניות | 512 MB |
| 50 MB | 120,000 | 3 דקות | 1.5 GB |
עבור חנויות עם שינויי מחירים תכופים ומבחר גדול, אוטומציה היא הדרך היחידה להישאר מעודכנים. צור קשר כדי להעריך את הפרויקט שלך. אנו ננתח את מחירוני הספקים שלך ונציע ארכיטקטורה אופטימלית. קבל ייעוץ על אוטומציית ייבוא—נראה לך כיצד להאיץ עדכוני קטלוג פי עשרה.

