eSputnik היא פלטפורמת נתוני לקוחות (CDP) המתמקדת במסחר אלקטרוני: מערכות שיווק אומניצ'נליות, המלצות דינמיות, עגלות נטושות. שילובה עם Bitrix באמצעות REST API דורש הבנה של מודל האירועים של eSputnik — ללא סכמת נתונים ברורה, הסנכרון הופך מהר לכאוטי. השלמנו למעלה מ-20 שילובים כאלה. מקרה טיפוסי: חנות עם 50,000 מוצרים שבה פילוח ידני לקח 10 שעות בשבוע. לאחר השילוב — טריגרים אוטומטיים והתאמה אישית בזמן אמת.
תכונות API של eSputnik
eSputnik מספקת REST API v1 עם אימות Basic (שם משתמש/סיסמה לחשבון). כתובת בסיס: https://esputnik.com/api/v1/. ההבדל המרכזי ממערכות ESP אחרות: אירועים כמנגנון הטריגר הראשי. במקום ניהול קמפיינים ישיר, אנו שולחים אירועים (order placed, cart updated, page viewed) — eSputnik בונה אוטומציות בעצמה. זה דומה ל-webhooks אך עם תור וניסיונות חוזרים משלו. השוואה: הגדרת טריגר ידנית ב-MailChimp לוקחת שעות, ב-eSputnik — דקות.
כיצד לסנכרן אנשי קשר באמצעות REST API?
שלב ראשון: לקוח API לעדכון/יצירת אנשי קשר. בקוד שלנו, אנו עוטפים את הקריאה במחלקה ESputnikClient ומעבירים ערוצים (דוא"ל) ושדות (שדות מותאמים אישית). מזהי שדות (id: 1, 2, 3) נלקחים מהגדרות חשבון eSputnik (אנשי קשר → שדות נוספים). חשוב: אם שדה לא מולא, אל תעבירו אותו — eSputnik תדרוס ערך קיים בריק.
class ESputnikClient {
private string $login;
private string $password;
private string $baseUrl = 'https://esputnik.com/api/v1/';
public function upsertContact(array $contactData): array {
$http = new \Bitrix\Main\Web\HttpClient();
$auth = base64_encode($this->login . ':' . $this->password);
$http->setHeader('Authorization', 'Basic ' . $auth);
$http->setHeader('Content-Type', 'application/json');
$http->setHeader('Accept', 'application/json');
$payload = [
'contacts' => [
[
'channels' => [
['type' => 'email', 'value' => $contactData['email']],
],
'fields' => [
['id' => 1, 'value' => $contactData['first_name'] ?? ''],
['id' => 2, 'value' => $contactData['last_name'] ?? ''],
['id' => 3, 'value' => $contactData['phone'] ?? ''],
],
],
],
];
return json_decode($http->post($this->baseUrl . 'contact', json_encode($payload)), true);
}
} מדוע אירועי eSputnik יעילים יותר מטריגרי דוא"ל סטנדרטיים?
מערכות ESP טיפוסיות מאלצות אתכם לבנות פלחים ידנית ולצרף קמפיינים. eSputnik משתמשת באוטובוס אירועים: אתם פשוט שולחים אירוע עם פרמטרים, והפלטפורמה מחליטה מי ומתי יקבל את הדוא"ל. זה מאפשר מערכות כמו "אם המשתמש לא לחץ על המלצה בדוא"ל תוך 3 ימים, שלח SMS עם קופון" ללא כתיבת קוד בצד Bitrix. בנוסף, eSputnik מסירה כפילויות אנשי קשר אוטומטית ומנהלת תדירות שליחה, מה שמפחית סיכון לספאם.
כך אנו שולחים אירועי מסחר אלקטרוני:
public function sendEvent(string $email, string $eventTypeKey, array $params): void {
$http = new \Bitrix\Main\Web\HttpClient();
// ... auth headers
$payload = [
'eventTypeKey' => $eventTypeKey,
'keyValue' => $email,
'params' => array_map(fn($k, $v) => ['name'=>$k,'value'=>$v], array_keys($params), $params),
];
$http->post($this->baseUrl . 'event', json_encode($payload));
}
// Событие: заказ оформлен
$esp->sendEvent($email, 'OrderCreated', [
'orderId' => $orderId,
'orderTotal' => $orderTotal,
'currency' => 'USD',
'items' => json_encode($orderItems), // JSON-строка с товарами
]);
// Событие: товар добавлен в корзину
$esp->sendEvent($email, 'CartUpdated', [
'cartTotal' => $cartTotal,
'items' => json_encode($cartItems),
]);
מקרה בוחן: המלצות דינמיות בדוא"ל
מצב. חנות תזונת ספורט עם 15,000 קונים פעילים. משימה: דוא"לים מותאמים אישית עם המלצות המבוססות על היסטוריית רכישות.
יישום. יצרנו פיד מוצרים בפורמט XML/Google Shopping מקטלוג Bitrix ופרסמנו אותו תחת כתובת URL מאובטחת. eSputnik צורכת את הפיד ומשתמשת בסינון שיתופי לבחירת מוצרים. בעורך הדוא"ל, בלוק "המלצות" ממלא אוטומטית מבחר לכל נמען בזמן פתיחת ההודעה (עיבוד בזמן אמת).
// /bitrix/components/custom/esputnik.feed/component.php
$products = CIBlockElement::GetList(
['SORT' => 'ASC'],
['IBLOCK_ID' => CATALOG_IBLOCK_ID, 'ACTIVE' => 'Y', 'CATALOG_AVAILABLE' => 'Y'],
false,
['nTopCount' => 10000],
['ID', 'NAME', 'DETAIL_PAGE_URL', 'PREVIEW_PICTURE', 'PROPERTY_PRICE_RRP', 'PROPERTY_BRAND']
);
header('Content-Type: application/xml');
// ...
תוצאה: שיעור הקליקים (CTR) עלה מ-2.1% ל-6.8% במשך שלושה חודשים. החזר השקעה (ROI) היה 5:1 בזכות אוטומציה ופילוח. שיעור הפתיחה הממוצע עלה ב-15%.
כיצד להגדיר פיד מוצרים עבור eSputnik?
פיד המוצרים הוא קובץ XML ש-eSputnik טוענת מעת לעת עבור המלצות. אנו מייצרים אותו תוך כדי ריצה באמצעות רכיב Bitrix, ומסננים רק מוצרים פעילים וזמינים. הפיד כולל מזהה, שם, כתובת URL, תמונה, מחיר ומותג. מבנה לדוגמה:
<feed>
<entry>
<id>12345</id>
<name>Протеин Whey Gold</name>
<url>https://example.com/product/12345</url>
<image>https://example.com/upload/iblock/abc.jpg</image>
<price currency="RUR">1990.00</price>
<brand>Optimum Nutrition</brand>
</entry>
</feed>הפיד מתעדכן כל 60 דקות באמצעות סוכן Bitrix. eSputnik תומכת בעד 100,000 מוצרים בפיד — עבור קטלוגים גדולים יותר, אנו משתמשים בטעינה מצטברת באמצעות API.
קבוצות אנשי קשר ופילוח
eSputnik תומכת בפילוח לפי שדות אנשי קשר ואירועים. מ-Bitrix אנו מעבירים שדות: תאריך הזמנה אחרון (לחידוש פעילות), סכום רכישה כולל (פלח VIP), קטגוריות שנרכשו (קמפיינים נושאיים). דוגמת פלח: "משתמשים עם יותר מ-3 רכישות בסכום כולל של > 10,000 ש"ח ב-90 הימים האחרונים."
| משימה | מאמץ |
|---|---|
| לקוח API + סנכרון אנשי קשר | 4–5 שעות |
| אירועי מסחר אלקטרוני (הזמנה, עגלה, צפייה) | 6–8 שעות |
| פיד מוצרים להמלצות | 4–6 שעות |
| הגדרת מערכת טריגרים ב-eSputnik | 4–8 שעות |
דוגמה לטיפול בשגיאות במהלך סנכרון
עבור כשלי רשת, אנו משתמשים בניסיונות חוזרים עם השהיה אקספוננציאלית (מקסימום 3 ניסיונות). אנו מתעדים קריאות שנכשלו בטבלת class ESputnikClient { private string $login; private string $password; private string $baseUrl = 'https://esputnik.com/api/v1/'; public function upsertContact(array $contactData): array { $http = new \Bitrix\Main\Web\HttpClient(); $auth = base64_encode($this->login . ':' . $this->password); $http->setHeader('Authorization', 'Basic ' . $auth); $http->setHeader('Content-Type', 'application/json'); $http->setHeader('Accept', 'application/json'); $payload = [ 'contacts' => [[ 'channels' => [ ['type' => 'email', 'value' => $contactData['email']], ], 'fields' => [ ['id' => 1, 'value' => $contactData['first_name'] ?? ''], ['id' => 2, 'value' => $contactData['last_name'] ?? ''], ['id' => 3, 'value' => $contactData['phone'] ?? ''], ], ]], ]; return json_decode($http->post($this->baseUrl . 'contact', json_encode($payload)), true); } } לניתוח מאוחר יותר.
public function upsertContactWithRetry(array $data, int $retries = 3): array
{
for ($i = 0; $i < $retries; $i++) {
try {
return $this->upsertContact($data);
} catch (\Exception $e) {
if ($i === $retries - 1)
throw $e;
sleep(pow(2, $i));
}
}
} מה כלול
- פיתוח לקוח API עם תמיכה בסנכרון רקורסיבי (טיפול בשגיאות, ניסיונות חוזרים, תיעוד)
- הגדרת אירועי מסחר אלקטרוני: הזמנה בוצעה, עגלה, צפייה במוצר, הרשמה
- יצירת פיד מוצרים עם שדות מותאמים אישית (מותג, קטגוריה, מחיר)
- יצירת פלחים ב-eSputnik וקישור למערכות
- בדיקת תרחישים וניטור משלוחים
- תיעוד ניהול מערכת
אנו מבטיחים העברת נתונים נכונה וטיפול מתאים בכל המצבים (ביטול הזמנה, החזרה). לאחר המסירה, אנו נשארים לתמיכה — מתקנים שגיאות, מעדכנים לגרסאות API חדשות.
צרו קשר — נעריך את החנות שלכם תוך יום אחד ונציע את ארכיטקטורת השילוב האופטימלית. הזמינו פיילוט: נחבר שליחת אירוע אחד ונראה כיצד זה עובד בסביבה שלכם.
תיעוד API של eSputnik: https://esputnik.com/api/v1/docs

