כשיש לך 10,000 מוצרים בקטלוג והספק שלך שולח קובץ אקסל מחירים יומי, עדכון ידני מבזבז זמן ומוביל לשגיאות.
אנחנו הופכים תהליך זה לאוטומטי: מורידים את הקובץ, מנתחים אותו, ומעדכנים מחירים ומלאי ללא התערבות אנושית. אינטגרציה מלאה אורכת 4 עד 6 ימי עסקים לכל ספק. עדכון ידני של 1,000 פריטים אורך שעות—ושגיאות הקלדה ושורות שהוחמצו הן דבר נפוץ. אוטומציה מבטלת שגיאות אנוש ומפנה משאבים למשימות בעלות ערך גבוה יותר.
כיצד אוטומציה מפחיתה עלויות
עדכון ידני של 1,000 פריטים אורך 2–3 שעות, עם שגיאות בלתי נמנעות. אוטומציה מצמצמת את הזמן לאפס ומפחיתה שגיאות ב-95%. לאחר ההגדרה, התהליך פועל במשך שנים. הלקוח שלנו עם 15,000 SKU חוסך 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 строки — шапкаלקריאת קבצי אקסל, אנו משתמשים ב-PhpSpreadsheet (יורש של PHPExcel):
$spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($filePath);
$sheet = $spreadsheet->getActiveSheet();
$rows = $sheet->toArray();אם הספק משנה את הפורמט, ערוך את המיפוי. עבור 50,000+ SKU, אנו בונים אינדקס הפוך בזיכרון כאשר ה-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+ SKU, אנו משתמשים במטמון בזיכרון.
השוואה בין יבוא ידני לאוטומטי
| פרמטר | יבוא ידני | יבוא אוטומטי |
|---|---|---|
| זמן עבור 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 |
עבור חנויות עם שינויי מחירים תכופים ומבחר גדול, אוטומציה היא הדרך היחידה להישאר מעודכנים. צור קשר כדי להעריך את הפרויקט שלך. אנו ננתח את רשימות המחירים של הספקים שלך ונציע ארכיטקטורה אופטימלית. קבל ייעוץ על אוטומציית יבוא—נראה לך כיצד להאיץ עדכוני קטלוג פי עשרה.

