אוטומציה של אינטגרציית מרקטפלייס עם 1C-Bitrix
סנכרון ידני של מלאי Ozon ו-Wildberries עם 1C-Bitrix עולה 5–10 שעות עבודה ביום, מה שמוביל לאובדן פרודוקטיביות משמעותי. שגיאות תמחור או תקלות בסטטוס הזמנות גורמות לקנסות של עד 15% משווי ההזמנה. אנו מבצעים אוטומציה לתהליך זה באמצעות APIs רשמיים, ובמידת הצורך, באמצעות גרידת נתונים (scraping) של מתחרים. רקורד שלנו: מעל 50 פרויקטים, חיסכון של עד 80% בזמן עבור הלקוחות. האינטגרציה אורכת 3 עד 16 שבועות ומחזירה את עצמה תוך 3–6 חודשים באמצעות הפחתת עלויות עבודה. פרויקט טיפוסי חוסך $2,000–$5,000 בחודש בעבודה ידנית.
המשימה "לשלוף נתונים מ-Ozon/WB" מתפצלת לשני תרחישים. ראשית, אתה מוכר דרך מרקטפלייסים ורוצה לשלוף נתונים מהחשבון שלך (הזמנות, מלאי, אנליטיקה) דרך API רשמי. שנית, אתה אוסף נתונים ציבוריים של מתחרים. תרחישים אלה דורשים ארכיטקטורות שונות ונושאים סיכונים שונים. אנו מיישמים את שניהם במפתח מלא: מתכנון ועד פריסה ותמיכה. אנו מבטיחים פעולה יציבה בכל שלב.
כיצד עובדת אינטגרציית API רשמית?
Ozon ו-Wildberries מספקות APIs מלאים מסוג REST למוכרים. זו הדרך החוקית, וכאן "גרידת נתונים" היא מילה שגויה—זו אינטגרציית API.
Ozon Seller API (https://api-seller.ozon.ru):
| מתודה | URL | תיאור |
|---|---|---|
product.list |
/v2/product/list |
רשימת מוצרים בחשבון |
product.info.list |
/v2/product/info/list |
פרטי מוצר (מחירים, מלאי, סטטוס) |
posting.fbo.list |
/v2/posting/fbo/list |
הזמנות FBO |
posting.fbs.list |
/v3/posting/fbs/list |
הזמנות FBS |
analytics.data |
/v1/analytics/data |
דוחות מכירות |
finance.transaction.list |
/v3/finance/transaction/list |
עסקאות פיננסיות |
אימות: כותרות Client-Id ו-Api-Key. מגבלת קצב: תלויה במתודה, בדרך כלל 1–10 RPS. בחריגה: 429 עם retry-after בגוף התשובה.
Wildberries APIs (https://statistics-api.wildberries.ru, https://suppliers-api.wildberries.ru): WB מפרידה את ה-APIs למספר כתובות בסיס:
-
statistics-api.wildberries.ru— סטטיסטיקות מכירות, מלאי, הזמנות -
suppliers-api.wildberries.ru— ניהול מוצרים, מחירים, מחסנים -
content-api.wildberries.ru— תוכן כרטיסי מוצר
אימות: כותרת Authorization: Bearer {token}. טוקנים נוצרים בחשבון האישי של WB עם הרשאות משתנות.
ארכיטקטורת מודול לשליפת נתונים ב-1C-Bitrix
יש לשלוף נתונים מ-APIs של מרקטפלייסים באופן קבוע ולבנות אותם במבנה. הארכיטקטורה הסטנדרטית משתמשת בסוכני Bitrix (CAgent::AddAgent()) למשימות מתוזמנות:
- כל 15 דקות: מלאי וסטטוסי הזמנות
- כל שעה: הזמנות חדשות, עדכוני מחירים
- פעם ביום: דוחות אנליטיים, עסקאות פיננסיות
הנתונים שנשלפו נשמרים:
- הזמנות →
b_sale_order,b_sale_basketדרךCSaleOrder::Add()או ישירות ל-DB לייבוא בכמות גדולה - אנליטיקה → בלוק HighLoad או טבלאות נפרדות המחולקות לפי תאריך
- נתוני מוצר →
b_iblock_element,b_catalog_price,b_catalog_productדרך API של אינפובלוקים
לאחסון תשובות API גולמיות, צור טבלה:
CREATE TABLE mp_api_raw_log (
id SERIAL PRIMARY KEY,
marketplace VARCHAR(30) NOT NULL,
method VARCHAR(100) NOT NULL,
params JSONB,
response JSONB,
status_code SMALLINT,
created_at TIMESTAMP DEFAULT NOW()
);
CREATE INDEX ON mp_api_raw_log (marketplace, created_at);ב-Bitrix, זה נוצר במתודת CREATE TABLE mp_api_raw_log ( id SERIAL PRIMARY KEY, marketplace VARCHAR(30) NOT NULL, method VARCHAR(100) NOT NULL, params JSONB, response JSONB, status_code SMALLINT, created_at TIMESTAMP DEFAULT NOW() ); CREATE INDEX ON mp_api_raw_log (marketplace, created_at); של המודול דרך DoInstall().
מהם האתגרים בגרידת נתוני מתחרים לעומת אינטגרציית API?
אם אתה צריך נתוני מתחרים (מחירים, מיקומים, דירוגים), אין API רשמי. אינטגרציית API יציבה פי עשרה בעקביות הנתונים מאשר גרידת נתונים, אבל לאיסוף מחירי מתחרים אנו משתמשים בגרידת נתונים.
גישות טכניות:
בקשות HTTP ישירות עובדות עבור חלק מנתוני WB—נקודות קצה מסוימות ($DB->Query(), https://card.wb.ru/cards/v2/detail?nm=...) מחזירות JSON ללא אימות. אלה אינם APIs רשמיים; המבנה יכול להשתנות ללא הודעה מוקדמת.
עבור Ozon, נתונים ציבוריים זמינים דרך https://catalog.wb.ru/...—ה-API הפנימי של הפרונטאנד, שגם הוא לא מתועד.
דפדפן headless (Puppeteer, Playwright) נדרש לדפים עם רינדור JS והגנת אנטי-בוט. WB ו-Ozon משתמשות באופן פעיל בטביעת אצבע וניתוח התנהגותי. גרידת נתונים בייצור דורשת:
- סיבוב פרוקסי מגורים
- User-Agent, viewport וטיימינג אקראיים
- עקיפת Cloudflare/PerimeterX (שני המרקטפלייסים משתמשים בהם)
סיכונים משפטיים. גרידת נתונים ציבוריים היא עמומה מבחינה חוקית. Ozon ו-WB אוסרות איסוף אוטומטי בתנאי השימוש שלהן. חסימות IP הן סטנדרטיות; הפסדים מחסימת חשבונות יכולים להיות משמעותיים (עד $10,000 בהפסד הכנסות). אנו תמיד ממליצים להתחיל עם ה-API הרשמי ולעבור לגרידת נתונים רק כשאין חלופה.
הגדרת סוכן Bitrix לסנכרון תקופתי
הנה מדריך שלב-אחר-שלב:
- צור מחלקת provider שמיישמת שליפת נתונים מה-API.
- רשום סוכן דרך
https://www.ozon.ru/api/composer-api.bx/page/json/v2?url=/product/{slug}עם מרווח של 900 שניות. - הגדר טיפול בתשובות: שמור הזמנות ל-
CAgent::AddAgent(), מלאי לאינפובלוק. - הוסף רישום שגיאות ל-
CSaleOrderלצורך דיבוג. - בדוק על חשבון בדיקה של המרקטפלייס.
דוגמה לרישום סוכן:
CAgent::AddAgent(
"\\YourModule\\SyncAgent::run();",
"your.module",
"N",
900,
"",
"Y",
date("d.m.Y H:i:s"),
30
); איסוף נתונים מדפים ציבוריים
לאיסוף מחירים ומיקומים ציבוריים, אנו משלבים בקשות HTTP ודפדפן headless. הנתונים נשמרים בבלוק HighLoad:
| שדה UF | סוג | מטרה |
|---|---|---|
| UF_MARKETPLACE | string | ozon / wb |
| UF_PRODUCT_ID | integer | מזהה מוצר במרקטפלייס |
| UF_ARTICLE | string | SKU |
| UF_PRICE | double | מחיר נוכחי |
| UF_PRICE_OLD | double | מחיר לפני הנחה |
| UF_RATING | double | דירוג |
| UF_REVIEWS_COUNT | integer | מספר ביקורות |
| UF_POSITION | integer | מיקום בתוצאות חיפוש עבור שאילתה |
| UF_SEARCH_QUERY | string | שאילתה ששימשה ללכידת המיקום |
| UF_COLLECTED_AT | datetime | זמן איסוף |
נרשם דרך mp_api_raw_log ו-CAgent::AddAgent( "\\YourModule\\SyncAgent::run();", "your.module", "N", 900, "", "Y", date("d.m.Y H:i:s"), 30 ); .
מה כלול
- ניתוח ארכיטקטורת Bitrix הנוכחית ודרישות הנתונים
- עיצוב מודול האינטגרציה באמצעות APIs רשמיים
- פיתוח סוכנים ומטפלי אירועים
- הגדרת אחסון נתונים (אינפובלוקים, בלוקי HL, לוגים גולמיים)
- ניטור ותמחור מחדש אוטומטי
- תיעוד תפעולי והדרכה
- תמיכה טכנית במהלך הפריסה
יש לנו מעל חמש שנות ניסיון באינטגרציה והשלמנו 30+ פרויקטי מרקטפלייס. קבל ייעוץ על ארכיטקטורה—צור קשר להערכת פרויקט. מערכת תמחור מחדש אוטומטית המבוססת על נתוני מתחרים יכולה להגדיל מכירות בעד 30% תוך שמירה על מרווח של 20%. פרויקט טיפוסי חוסך 80% מהעבודה הידנית ומחזיר את עצמו תוך 3 חודשים.
לוחות זמנים ליישום
| משימה | לוח זמנים |
|---|---|
| אינטגרציה עם API רשמי של מרקטפלייס אחד (הזמנות + מלאי) | 3–5 שבועות |
| איסוף אנליטיקה דרך API רשמי (2 מרקטפלייסים) | 5–8 שבועות |
| ניטור מחירים ציבורי דרך בקשות HTTP (ללא JS) | 4–6 שבועות |
| מנתח מלא עם דפדפן headless ועקיפת אנטי-בוט | 8–14 שבועות |
| מערכת תמחור מחדש אוטומטית המבוססת על נתוני מתחרים | 10–16 שבועות |
תיעוד סוכני Bitrix: dev.1c-bitrix.ru
בקש הערכת פרויקט—נעזור לך לבחור את תרחיש האינטגרציה האופטימלי. צור קשר ישירות.

