שילוב Yandex.Market Partner API – ניהול מוצרים אוטומטי
תארו לעצמכם: יש לכם 15,000 מוצרים, המחירים משתנים כל שעה, ומנהל מבזבז 4 שעות ביום בעדכון ידני של לוח הבקרה של Yandex.Market. שגיאות הזנה ידניות משפיעות על 5–8% מהפריטים. לאחר שילוב דרך Partner API, הכל אוטומטי: מוצרים נטענים תוך 2 דקות, מחירים מסונכרנים לפי לוח זמנים, והזמנות מעובדות ללא התערבות אנושית. יישמנו למעלה מ-50 פרויקטים כאלה עבור חנויות עם מחזור חודשי שנע בין $5000M–500k. עם הצוות המנוסה שלנו, אתם מקבלים שילוב חלק מובטח.
Yandex.Market מספקת את Partner API—קבוצה של שיטות REST לניהול מוצרים, מחירים, מלאי והזמנות. ה-API תומך בשלושה מודלים תפעוליים: FBS (המוכר מאחסן סחורה), FBO (סחורה במחסן של Market), ו-DBS (המוכר אחראי על משלוח). במאמר זה, אנו צוללים לפרטים הטכניים: אימות, העלאת מוצרים, עדכוני מחירים ומלאי, ועיבוד הזמנות דרך webhooks.
למה לבצע אוטומציה של פעולות Yandex.Market?
ניהול מוצרים ידני בשוק מקוון הוא לא רק גוזל זמן אלא גם מועד לשגיאות. בהתבסס על הנתונים שלנו, אוטומציה דרך ה-API מפחיתה את זמן עדכון הקטלוג פי 10–15. לדוגמה, העלאה ידנית של 100 מוצרים לוקחת 30 דקות; דרך ה-API זה לוקח 2 דקות. שגיאות הזנה ידניות מתרחשות ב-5–8% מהמקרים (מחיר שגוי, מלאי שגוי), בעוד שסנכרון אוטומטי שומר על שגיאות מתחת ל-0.1%. יתר על כן, ה-API מאפשר ייצוא ישיר של הזמנות למערכת החשבונאות שלכם, ומבטל הזנת נתונים כפולה. זה חוסך עד $900–1.3k לחודש עבור קטלוגים גדולים.
אילו נתונים מסונכרנים דרך ה-API?
ה-Partner API מספק נקודות קצה עבור ישויות מפתח:
- מוצרים: יצירה, עדכון, מחיקה; שדות חובה—offerId, name, price, count. עד 1,000 מוצרים לבקשה.
- מחירים ומלאי: עדכונים שוטפים (למשל, שעתיים) דרך POST /campaigns/{id}/offer-prices/updates ו-PUT /campaigns/{id}/offers/stocks.
- הזמנות: שליפת הזמנות חדשות, שינוי סטטוסים, ביטולים. Webhooks מודיעים בזמן אמת על שינויים.
שימו לב למגבלות ה-API: לא יותר מ-5,000 בקשות ביום לכל קמפיין. אנו ממליצים על עיבוד בקבוצות.
איך אנו משלבים: פרטים טכניים
אימות
ה-Partner API משתמש ב-OAuth2 tokens. הרשאה דרך Yandex OAuth:
class YandexMarketClient {
private string $accessToken;
private int $campaignId;
private int $businessId;
public function request(string $method, string $path, array $data = []): array {
return Http::withHeaders([
'Authorization' => "OAuth oauth_token={$this->accessToken}",
'Content-Type' => 'application/json',
])->{strtolower($method)}(
"https://api.partner.market.yandex.ru{$path}",
$data
)->json();
}
} העלאת/עדכון מוצרים
public function updateOffers(array $products): void {
$offers = array_map(fn($product) => [
'offerId' => $product['sku'],
'name' => $product['name'],
'category' => $product['category_name'],
'pictures' => $product['images'],
'vendor' => $product['brand'],
'description' => $product['description'],
'price' => ['value' => $product['price'], 'currencyId' => 'RUR'],
'count' => $product['stock'],
'barcodes' => [$product['barcode']],
], $products);
$this->request('PUT', "/businesses/{$this->businessId}/offer-mappings", [
'offerMappings' => array_map(fn($o) => ['offer' => $o], $offers)
]);
} סנכרון מחירים ומלאי
// Обновление цен
public function updatePrices(array $items): void
{
$offers = array_map(fn($item) => [
'id' => $item['sku'],
'price' => [
'value' => $item['price'],
'currencyId' => 'RUR',
'vat' => 'VAT_20',
],
], $items);
$this->request('POST', "/campaigns/{$this->campaignId}/offer-prices/updates", ['offers' => $offers]);
}
// Обновление остатков FBS
public function updateStocks(array $items, int $warehouseId): void
{
$skus = array_map(fn($item) => [
'sku' => $item['sku'],
'items' => [['count' => $item['stock'], 'type' => 'FIT']],
], $items);
$this->request('PUT', "/campaigns/{$this->campaignId}/offers/stocks", ['skus' => $skus, 'warehouseId' => $warehouseId]);
} עיבוד הזמנות
public function getNewOrders(): array
{
$resp = $this->request('GET', "/campaigns/{$this->campaignId}/orders", ['status' => 'PROCESSING', 'substatus' => 'STARTED', 'pageSize' => 50] );
return $resp['orders'] ?? [];
}
public function acceptOrder(int $orderId): void
{
$this->request('PUT', "/campaigns/{$this->campaignId}/orders/{$orderId}/status", ['order' => ['status' => 'PROCESSING', 'substatus' => 'READY_TO_SHIP']] );
} התראות Push להזמנות
Yandex.Market תומכת בהתראות push דרך הגדרות בלוח המוכר:
Route::post('/webhooks/yandex-market', function (Request $request) {
$events = $request->input('data');
foreach ($events as $event) {
match($event['type']) {
'ORDER_STATUS_CHANGED' => ProcessYandexOrderStatus::dispatch($event['orderId']),
default => null,
};
}
return response()->json(['status' => 'ok']);
}); תהליך השילוב שלנו
- ניתוח: אנו לומדים את מערכת החשבונאות הנוכחית שלכם, קטלוג המוצרים ותהליכים עסקיים.
- עיצוב: בחירת המודל (FBS/FBO/DBS) ועיצוב ארכיטקטורת חילופי הנתונים.
- יישום: כתיבת קוד לסנכרון מוצרים, מחירים, מלאי והזמנות; הגדרת webhooks.
- בדיקות: אימות בסביבת ה-sandbox של Yandex.Market, ולאחר מכן בסביבת הייצור.
- פריסה והדרכה: פריסת הפתרון, קיום סמינר מקוון לצוות שלכם, ומסירת תיעוד.
מה כלול בפתרון המפתח בידיים
רכיבי פתרון המפתח בידיים
| רכיב | תיאור |
|---|---|
| תיעוד | מפרט API, הוראות למנהלים |
| גישה | OAuth tokens, campaignId, businessId, הגדרת webhook |
| קוד שילוב | מודולים לחילופי מוצרים, מחירים, מלאי והזמנות |
| בדיקות | כל התרחישים: הזמנה, ביטול, החזרה |
| הדרכה | סמינר מקוון של 1–2 שעות לצוות שלכם |
| תמיכה | חודש של תמיכה טכנית מובטחת לאחר ההשקה |
ידני מול אוטומטי: השוואה
עדכוני מוצרים ידניים ב-Yandex.Market (דרך לוח הבקרה) לוקחים כ-30 דקות לכל 100 פריטים. שילוב אוטומטי דרך ה-API לוקח 1–3 דקות עבור כל הקטלוג. שילוב API מהיר פי 15 מהזנה ידנית. שגיאות הזנה ידניות מתרחשות ב-5–8% מהמקרים; סנכרון אוטומטי שומר על שגיאות מתחת ל-0.1%.
מלכודות שילוב נפוצות (ואיך אנו נמנעים מהן)
בהתבסס על הניסיון שלנו, בעיות נפוצות כוללות:
- חריגה ממגבלות API: ניסיון להעלות מעל 1,000 מוצרים בבת אחת מחזיר שגיאת 429. פתרון: חלוקה לקבוצות של 1,000.
- פורמט נתונים שגוי: למשל, פורמט barcode שגוי או שדות חובה חסרים. אנו תמיד מאמתים מבני בקשות.
- פגיית OAuth token: Tokens פגים לאחר שנה. אנו מיישמים חידוש token אוטומטי.
- שינויי גרסאות API: Yandex עשויה לעדכן את ה-API. אנו עוקבים אחר תיעוד ה-Partner API ומתאימים את עצמנו בהתאם.
לוחות זמנים ושלבים הבאים
שילוב עם Yandex.Market Partner API: 12–16 ימי עסקים. צרו קשר להערכת פרויקט—אנו נציע את הפתרון האופטימלי ולוח זמנים מדויק. הזמינו שילוב, והמוצרים שלכם תמיד יהיו מעודכנים ב-Yandex.Market.







