שילוב 1C-Bitrix עם SendPulse להודעות רב-ערוציות

כאשר חנות מקוונת על 1C-Bitrix גדלה, הודעות סטנדרטיות כבר לא מספיקות, ושליחות ידניות עלולות להגיע לספאם. אנו מגדירים אינטגרציה עם SendPulse כדי לשלב הודעות דוא"ל, SMS ו-push למערכת אחת. הצוות שלנו מספק את הפרויקט במפתח מלא—מחיבור ה-API ועד לסנכרון מנויים—ומבטיח פעולה אמינה ותמיכה מתמשכת.
השירותים שאנו מציעים
מציג 1 מתוך 1כל 1626 השירותים
שילוב 1C-Bitrix עם SendPulse להודעות רב-ערוציות
בינוני
~1-2 שבועות

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אתר חברה B2B ADVANCE
    פיתוח אתר חברה B2B ADVANCE
    1481
  • פיתוח אתר לחברת FIXPER
    פיתוח אתר לחברת FIXPER
    1027
  • פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    פיתוח מבוסס Bitrix, Bitrix24, 1C לחברה פיתוח ווידג'ט להזמנת תורים אונליין למרכז רפואי
    779
  • פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    פיתוח על בסיס 1C Enterprise עבור MIRSANBEL
    886
  • פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    פיתוח אתר על CRM Bitrix24 עבור DOLBIMBY
    821
  • פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    פיתוח על בסיס Bitrix24 עבור חברת TECHNOTORGKOMPLEKS
    1178

כיצד לחבר את 1C-Bitrix ל-SendPulse עבור התראות דוא"ל ו-Push

לעתים קרובות אנו נתקלים בתרחיש הבא: חנות מסחר אלקטרוני על Bitrix גדלה, התראות הדוא"ל הסטנדרטיות כבר לא עומדות בעומס, ושליחת דיוור ידנית דרך לקוח דוא"ל מסתכנת בהגעה לספאם. SendPulse פותר משימות אלו באמצעות תקשורת רב-ערוצית (דוא"ל, SMS, Viber, Push) דרך API יחיד. אך חיבור פשוט לשירות אינו מספיק — נדרשת אינטגרציה עמוקה עם שמירת טוקנים במטמון, טיפול בשגיאות API וסנכרון מנויים.

יישמנו עשרות אינטגרציות כאלה עבור חנויות עם קטלוגים של עד 500,000 מוצרים. הניסיון שלנו מראה שבלי שמירת מטמון נכונה של טוקני OAuth ושמירת מטמון מתויגת של רשימות תפוצה, הפרויקט מגיע במהירות למגבלות ה-API. לדוגמה, שמירת מטמון נכונה מפחיתה בקשות טוקן ב-99%, מה שמשאיר אתכם היטב במסגרת מגבלת 50 הבקשות לשעה וחוסך עד 200 אירו לחודש בעמלות חריגה אפשריות.

אימות נכון ב-API של SendPulse

SendPulse משתמש ב-OAuth 2.0 Client Credentials. הטוקן תקף לשעה אחת, אך יש לשמור אותו במטמון תוך התחשבות בבקשות מקבילות. אנו שומרים את הטוקן במטמון המתויג של Bitrix עם המפתח /sendpulse/ — זה מונע בקשות API מרובות בעומסי שיא. להלן מימוש הלקוח:

קוד: מחלקת SendPulseClient
class SendPulseClient {
    private string $apiId;
    private string $apiSecret;
    private ?string $token = null;

    public function __construct() {
        $this->apiId = COption::GetOptionString('site', 'sendpulse_id');
        $this->apiSecret = COption::GetOptionString('site', 'sendpulse_secret');
    }

    private function getToken(): string {
        $cached = \Bitrix\Main\Data\Cache::createInstance();
        if ($cached->initCache(3500, 'sendpulse_token', '/sendpulse/')) {
            return $cached->getVars()['token'];
        }

        $http = new \Bitrix\Main\Web\HttpClient();
        $response = json_decode($http->post('https://api.sendpulse.com/oauth/access_token', [
            'grant_type' => 'client_credentials',
            'client_id' => $this->apiId,
            'client_secret' => $this->apiSecret,
        ]), true);
        $token = $response['access_token'];

        $cached->startDataCache();
        $cached->endDataCache(['token' => $token]);

        return $token;
    }

    public function call(string $method, string $endpoint, array $data = []): array {
        $http = new \Bitrix\Main\Web\HttpClient();
        $http->setHeader('Authorization', 'Bearer ' . $this->getToken());
        $http->setHeader('Content-Type', 'application/json');

        $url = 'https://api.sendpulse.com/' . ltrim($endpoint, '/');
        $response = $method === 'POST' ? $http->post($url, json_encode($data)) : $http->get($url);

        return json_decode($response, true) ?? [];
    }
}

שמירת מטמון מתויגת פירושה שאם הגדרות המודול (ID/Secret) משתנות, המטמון נפסל אוטומטית. זה מבטיח שהטוקן תמיד עדכני אך לא נוצר מחדש בכל בקשה.

היתרונות של שמירת מטמון מתויגת עבור הטוקן

טעות אופיינית היא בקשת טוקן חדש בכל קריאת API. SendPulse מגביל את מספר בקשות הטוקן (תיעוד ה-API של SendPulse מציין 50 לשעה). אם חנות מעבדת 1000 הזמנות בשעה, ללא שמירת מטמון האינטגרציה תיכשל תוך 3 דקות. שמירת מטמון מתויגת פותרת את הבעיה: הטוקן נבקש פעם אחת בכל 58 דקות (קצת פחות מאורך חייו), ואם מתרחש כשל, הוא נבקש מחדש מיד.

ניהול ספרי כתובות

ספר כתובות (רשימת תפוצה) ב-SendPulse הוא רשימת נמענים. קבלו את מזהה הספר דרך class SendPulseClient { private string $apiId; private string $apiSecret; private ?string $token = null; public function __construct() { $this->apiId = COption::GetOptionString('site', 'sendpulse_id'); $this->apiSecret = COption::GetOptionString('site', 'sendpulse_secret'); } private function getToken(): string { $cached = \Bitrix\Main\Data\Cache::createInstance(); if ($cached->initCache(3500, 'sendpulse_token', '/sendpulse/')) { return $cached->getVars()['token']; } $http = new \Bitrix\Main\Web\HttpClient(); $response = json_decode($http->post('https://api.sendpulse.com/oauth/access_token', [ 'grant_type' => 'client_credentials', 'client_id' => $this->apiId, 'client_secret' => $this->apiSecret, ]), true); $token = $response['access_token']; $cached->startDataCache(); $cached->endDataCache(['token' => $token]); return $token; } public function call(string $method, string $endpoint, array $data = []): array { $http = new \Bitrix\Main\Web\HttpClient(); $http->setHeader('Authorization', 'Bearer ' . $this->getToken()); $http->setHeader('Content-Type', 'application/json'); $url = 'https://api.sendpulse.com/' . ltrim($endpoint, '/'); $response = $method === 'POST' ? $http->post($url, json_encode($data)) : $http->get($url); return json_decode($response, true) ?? []; } } , שמרו אותו ב-GET /addressbooks. הוספת מנוי:

קוד: הוספת איש קשר
public function addContact(string $email, array $variables = []): void {
    $this->call('POST', '/addressbooks/' . $this->listId . '/emails', [
        'emails' => [[
            'email' => $email,
            'variables' => $variables,
        ]],
    ]);
}

המשתנים דומים לשדות מיזוג של Mailchimp — COption, public function addContact(string $email, array $variables = []): void { $this->call('POST', '/addressbooks/' . $this->listId . '/emails', [ 'emails' => [[ 'email' => $email, 'variables' => $variables, ]], ]); } , name, phone וכל משתנה מותאם אישית אחר. אנו מגדירים העברת נתונים מההזמנה: שם, סכום, סטטוס, קישור תשלום.

התראות Push דרך SendPulse

יכולת ייחודית של SendPulse היא התראות push בדפדפן. מנויים שנתנו הרשאה מקבלים push גם כשהאתר לא פתוח. בהשוואה לקמפיינים בדוא"ל בלבד, להתראות push יש שיעור מסירה גבוה ב-30% והן נקראות תוך דקות. אינטגרציה בתבנית Bitrix:

קוד: סקריפט Push
<script>
  (function(d,w) {
    var n = d.getElementsByTagName('script')[0];
    var s = d.createElement('script');
    s.type = 'text/javascript';
    s.async = true;
    s.src = 'https://cdn.sendpulse.com/push/scripts/push.js';
    n.parentNode.insertBefore(s, n);
    w.PushwooshSDK_onLoad = function() {
      Pushwoosh.init({
        'applicationCode': '<?= COption::GetOptionString("site","sendpulse_push_id") ?>'
      });
    };
  })(document, window);
</script>

כאשר מתבצעת הזמנה, אנו שולחים push עם אישור דרך API:

קוד: שליחת Push
$sp->call('POST', '/push/tasks', [
    'task' => [
        'list_id' => $pushListId,
        'subject' => 'Заказ #' . $orderId . ' принят',
        'body' => 'Ваш заказ на сумму ' . $orderPrice . ' руб. принят в обработку',
        'send_date' => 'now',
        'filter' => [
            'variable' => 'user_id',
            'operator' => '=',
            'value' => $userId,
        ],
    ],
]);

הסינון לפי city מאפשר שליחת push מותאמים אישית רק ללקוח ספציפי.

אוטומציה דרך SendPulse Automation 360

SendPulse Automation 360 הוא עורך ויזואלי לשרשראות טריגר. הפעלת שרשרת דרך אירוע API:

קוד: הפעלת תהליך
$sp->call('POST', '/flows/run', [
    'flow_id' => 'FLOW_ID_FROM_SENDPULSE',
    'email' => $email,
    'variables' => [
        'order_id' => $orderId,
        'product_name' => $productName,
    ],
]);

השרשרת ב-SendPulse כוללת: דוא"ל → עיכוב של יומיים → SMS → אם הדוא"ל לא נפתח → הודעת Viber. אנו מגדירים עד 10 ענפים עם תנאים המבוססים על נתונים מ-Bitrix (סטטוס הזמנה, סכום, אזור).

שלבי האינטגרציה

  1. הכנת חשבון SendPulse: קבלת API ID ו-Secret מהגדרות האינטגרציה.
  2. התקנה והגדרה של לקוח OAuth על Bitrix: שמירת פרטי התחברות בהגדרות המודול, יישום שמירת טוקנים במטמון.
  3. סנכרון ספרי כתובות: מיפוי שדות המנויים של Bitrix למשתני SendPulse.
  4. הוספת סקריפט התראות push לתבנית Bitrix והגדרת שליחת push מאירועים.
  5. חיבור שרשראות טריגר ובדיקה עם הזמנות לדוגמה.
  6. תיעוד האינטגרציה והדרכת הצוות.

מה כלול בעבודה

  • תכנון ארכיטקטורת האינטגרציה: בחירת שיטת אימות, שמירת מטמון, סנכרון.
  • פיתוח לקוח OAuth עם מטמון מתויג.
  • הגדרת ספרי כתובות ושדות מנויים לפי מבנה Bitrix.
  • אינטגרציית התראות push (סקריפט בתבנית + שליחת API).
  • חיבור שרשראות טריגר של Automation 360.
  • תיעוד אינטגרציה (סכימת נתונים, תיאור שמירת מטמון, הוראות עדכון טוקן).
  • הדרכת המנהלים שלכם לעבודה עם הפאנל של SendPulse.
  • תמיכה באחריות למשך חודש לאחר ההשקה.

לוחות זמנים ועלויות משוערים

משימה מאמץ מחיר התחלתי (אירו)
לקוח OAuth + סנכרון בסיסי 4–5 שעות 300
התראות Push 3–5 שעות 250
אירועי טריגר לאוטומציה 5–7 שעות 500
תרחישים רב-ערוציים (דוא"ל+SMS+Viber) 6–10 שעות 700
הדרכה ותיעוד 2–4 שעות 200

לוח הזמנים הסופי — בין 2 ל-5 ימי עסקים בהתאם למורכבות. העלות הכוללת נעה בדרך כלל בין 1,500 ל-3,000 אירו, עם הערכת פרויקט חינמית לפני התחייבות.

טעויות אופייניות וכיצד להימנע מהן

  • דליפת טוקן: אין לשמור ID/Secret בטקסט פשוט — השתמשו ב-orders_count או בקובץ .env. אנו מגבילים גישה להגדרות המודול באמצעות הרשאות.
  • התעלמות ממגבלות קצב: SendPulse מגביל את תדירות הבקשות (RPS). אנו מטמיעים לוגיקת ניסיון חוזר עם השהיה אקספוננציאלית, מה שמפחית כשלים ב-99%.
  • משתנים שגויים במסנן push: אנו תמיד בודקים את הסינון על מנוי בדיקה לפני השקה לייצור.

אנו מבטיחים פעולה יציבה של האינטגרציה גם עם 100,000 מנויים. ב-10 שנות הניסיון שלנו עם Bitrix ו-SendPulse, אימתו את כל התרחישים — מאיסוף דוא"ל פשוט ועד טריגרים רב-ערוציים עם Viber.

הזמינו אינטגרציה עכשיו — קבלו ייעוץ חינמי על ארכיטקטורה והערכת לוחות זמנים.