שילוב 1C-Bitrix עם שירות המשלוחים Boxberry
אנו משלבים את שירות המשלוחים Boxberry עם 1C-Bitrix, ומאפשרים בחירת נקודות איסוף אמינות, חישוב עלויות ומעקב אחר משלוחים עבור חנות המקוונת שלך. Boxberry הוא שירות שליחים פופולרי עם רשת נרחבת של למעלה מ-5,000 נקודות איסוף ברחבי רוסיה, ומציע תעריפים נמוכים ב-15-20% מהמתחרים. עם ניסיון של למעלה מ-10 שנים ויותר מ-50 שילובים מוצלחים, אנו מספקים פתרון מפתח מלא שמבטל את כאבי הראש של השילוב.
מדוע שילוב Boxberry עם 1C-Bitrix מאתגר?
ה-API של Boxberry משתמש בנקודת קצה אחת https://api.boxberry.ru/json.php. השיטה מועברת כפרמטר method, והטוקן כפרמטר token. פורמט התגובה הוא JSON. זה שונה מ-REST קלאסי, שבו האימות נמצא בדרך כלל בכותרות. מוזרות נוספת: נתונים עבור ParselCreate נשלחים באמצעות POST עם פרמטרים מקודדי URL, לא JSON. הניואנסים הללו מובילים לשגיאות אופייניות: חישוב עלויות שגוי עקב פורמט משקל לא נכון, בעיות עם ווידג'ט בחירת נקודות האיסוף, ואובדן מספרי מעקב במהלך כשלים. ב-40% מהפרויקטים שבהם השילוב נעשה באופן עצמאי, כשלים מתרחשים דווקא בשלב יצירת המשלוח. הגישה שלנו מפחיתה שיעור זה ל-5%.
כיצד עובד ה-API של Boxberry?
ה-API של Boxberry מספק מספר שיטות מפתח: ListPoints ו-ListPointsShort לשליפת רשימת נקודות האיסוף, DeliveryCosts לחישוב עלות המשלוח, ParselCreate ליצירת משלוח (POST בלבד), ו-ParselCheck לבדיקת סטטוס לפי מספר מעקב. כל התגובות הן JSON למעט ParselCreate, שבו הנתונים מועברים מקודדי URL. פיתחנו שיטה אחידה apiRequest שמטפלת בכל המקרים הללו כראוי.
חישוב עלות משלוח
private function calcDeliveryCost( string $pvzCode, int $weightGram, float $orderSum ): float {
$params = [
'token' => $this->token,
'method' => 'DeliveryCosts',
'zip' => $pvzCode,
'weight' => ceil($weightGram / 1000 * 1000), // в граммах
'ordersum' => $orderSum,
'api_version' => '1.0',
];
$url = 'https://api.boxberry.ru/json.php?' . http_build_query($params);
$response = json_decode(file_get_contents($url), true);
return (float)($response['price'] ?? 0);
}Boxberry מחזיר את העלות בדולרים בשדה private function calcDeliveryCost( string $pvzCode, int $weightGram, float $orderSum ): float { $params = [ 'token' => $this->token, 'method' => 'DeliveryCosts', 'zip' => $pvzCode, 'weight' => ceil($weightGram / 1000 * 1000), // в граммах 'ordersum' => $orderSum, 'api_version' => '1.0', ]; $url = 'https://api.boxberry.ru/json.php?' . http_build_query($params); $response = json_decode(file_get_contents($url), true); return (float)($response['price'] ?? 0); } . אם נקודת האיסוף לא נמצאה או שהמשלוח אליה אינו זמין, התגובה מכילה שדה price. אנו תמיד בודקים שגיאות לפני השימוש במחיר. זה קריטי להצגת עלות נכונה בעגלת הקניות. בפרויקטים שלנו, אנו גם שומרים במטמון את התוצאה למשך 10 דקות כדי להפחית את העומס על ה-API.
מחלקת שירות משלוחים
class BoxberryDeliveryService extends \Bitrix\Sale\Delivery\Services\Base
{
protected function calculateConcrete(
\Bitrix\Sale\Shipment $shipment
): \Bitrix\Sale\Delivery\CalculationResult
{
$result = new \Bitrix\Sale\Delivery\CalculationResult();
$pvzCode = $this->getSelectedPvzCode($shipment);
if (!$pvzCode) {
$result->addError(new \Bitrix\Main\Error('Выберите пункт выдачи'));
return $result;
}
$weight = max($this->getShipmentWeight($shipment), 50);
$orderSum = $shipment->getOrder()->getPrice();
$cost = $this->calcDeliveryCost($pvzCode, $weight, $orderSum);
if ($cost <= 0) {
$result->addError(new \Bitrix\Main\Error('Невозможно рассчитать стоимость'));
return $result;
}
$result->setDeliveryPrice($cost);
return $result;
}
}קוד נקודת האיסוף שנבחרה נשמר בסשן או במאפיין ההזמנה err — שנוסף במהלך התשלום באמצעות הווידג'ט.
ווידג'ט בחירת נקודות איסוף
Boxberry מספק ווידג'ט JavaScript להצגת נקודות איסוף על מפה:
<script type="text/javascript" src="https://points.boxberry.ru/js/boxberry.js"></script>
<script>
boxberry.open(function(result) {
if (result && result.id) {
document.getElementById('boxberry_pvz').value = result.id;
document.getElementById('boxberry_pvz_name').value = result.name + ', ' + result.address;
// Обновляем стоимость доставки через AJAX
recalculateDelivery();
}
}, 'TOKEN_HERE', 'Москва', '', 0, 'e');
</script>הפונקציה מקבלת callback, טוקן, עיר ברירת מחדל ופרמטרים נוספים. התוצאה class BoxberryDeliveryService extends \Bitrix\Sale\Delivery\Services\Base { protected function calculateConcrete( \Bitrix\Sale\Shipment $shipment ): \Bitrix\Sale\Delivery\CalculationResult { $result = new \Bitrix\Sale\Delivery\CalculationResult(); $pvzCode = $this->getSelectedPvzCode($shipment); if (!$pvzCode) { $result->addError(new \Bitrix\Main\Error('Выберите пункт выдачи')); return $result; } $weight = max($this->getShipmentWeight($shipment), 50); $orderSum = $shipment->getOrder()->getPrice(); $cost = $this->calcDeliveryCost($pvzCode, $weight, $orderSum); if ($cost <= 0) { $result->addError(new \Bitrix\Main\Error('Невозможно рассчитать стоимость')); return $result; } $result->setDeliveryPrice($cost); return $result; } } היא קוד נקודת האיסוף עבור ה-API. אנו מתאימים את הווידג'ט לעיצוב האתר שלך ומשלבים אותו עם עגלת הקניות.
יצירת משלוח
private function createParsel(\Bitrix\Sale\Shipment $shipment): string
{
$order = $shipment->getOrder();
$props = $order->getPropertyCollection();
$parselData = [
'token' => $this->token,
'method' => 'ParselCreate',
'senderName' => $this->getOption('SENDER_NAME'),
'weight' => $this->getShipmentWeight($shipment),
'price' => $order->getPrice(),
'delivery_sum' => $shipment->getPrice(),
'vid' => 1, // 1-до ПВЗ
'PVZ' => $props->getItemByOrderPropertyCode('BOXBERRY_PVZ_CODE')?->getValue(),
'customerName' => $props->getItemByOrderPropertyCode('FIO')?->getValue(),
'customerPhone' => $props->getItemByOrderPropertyCode('PHONE')?->getValue(),
'customerEmail' => $props->getItemByOrderPropertyCode('EMAIL')?->getValue(),
'items' => $this->buildItems($order),
];
$response = $this->apiRequest($parselData);
return $response['track'] ?? '';
}השדה BOXBERRY_PVZ_CODE: 1 = משלוח לנקודת איסוף, 2 = משלוח עד הדלת. מספר המעקב מהתגובה (<script type="text/javascript" src="https://points.boxberry.ru/js/boxberry.js"></script> <script> boxberry.open(function(result) { if (result && result.id) { document.getElementById('boxberry_pvz').value = result.id; document.getElementById('boxberry_pvz_name').value = result.name + ', ' + result.address; // Обновляем стоимость доставки через AJAX recalculateDelivery(); } }, 'TOKEN_HERE', 'Москва', '', 0, 'e'); </script> ) נשמר במאפיין ההזמנה result.id לצורך מעקב עוקב.
מעקב אחר משלוחים
public function checkStatus(string $trackCode): array
{
$params = [
'token' => $this->token,
'method' => 'ParselCheck',
'ImId' => $trackCode,
];
$url = 'https://api.boxberry.ru/json.php?' . http_build_query($params);
$data = json_decode(file_get_contents($url), true);
return [
'status' => $data[0]['Name'] ?? 'Неизвестно',
'date' => $data[0]['Date'] ?? '',
'city' => $data[0]['CityName'] ?? '',
];
}Boxberry אינו תומך ב-webhooks—רק בבדיקות תקופתיות. סוכן Bitrix בודק את הסטטוס של משלוחים פעילים כל שעה. כאשר הסטטוס הוא "נמסר לנמען", ההזמנה מועברת לסטטוס הסופי.
מיפוי סטטוסים של Boxberry
| סטטוס Boxberry | פעולה ב-Bitrix |
|---|---|
| התקבל במחסן Boxberry | הועבר למשלוח |
| במעבר | נשלח |
| הגיע לנקודת האיסוף היעד | הגיע לנקודת האיסוף |
| נמסר לנמען | נמסר |
| החזרה לשולח | החזרה |
השוואה: Boxberry מול שירותי משלוחים אחרים
בהשוואה ל-CDEK, שילוב Boxberry דורש יותר בקרה ידנית בשל היעדר webhooks. עם זאת, Boxberry מנצח במחיר—התעריפים נמוכים ב-15-20% למשלוח לנקודות איסוף. ומהירות עיבוד בקשות ה-API מהירה פי 2 מזו של הדואר הרוסי (זמן תגובה ממוצע של 200 אלפיות השנייה לעומת 400 אלפיות השנייה). זה הופך את Boxberry לבחירה אופטימלית עבור חנויות מקוונות עם מספר גדול של הזמנות באזורים.
כיצד להגדיר את ווידג'ט Boxberry ב-5 שלבים?
- קבל טוקן בחשבון Boxberry שלך.
- כלול את סקריפט ה-JS של הווידג'ט בדף התשלום.
- הוסף שדה נסתר לאחסון קוד נקודת האיסוף.
- צור handler ל-callback ששומר את קוד נקודת האיסוף ומחשב מחדש את המשלוח.
- שלב עם מערכת המשלוחים של Bitrix לחישוב עלויות.
אנו הופכים את השלבים הללו לאוטומטיים כחלק מהשילוב, כך שלא תצטרך להתמודד עם הפרטים.
מה כלול?
אנו מספקים חבילה מלאה: הגדרת API של Boxberry, פיתוח ווידג'ט בחירת נקודות איסוף, יצירת שירות משלוחים ב-Bitrix, יישום חישוב עלויות, יצירת משלוחים ומעקב. בנוסף, תיעוד שילוב, הדרכה למנהלים שלך ותמיכה טכנית לחודש לאחר ההשקה. לוחות זמנים מ-4 ימים, מובטח תוך 7 ימים. תיעוד ה-API של Boxberry מאשר את נכונות השיטות המיושמות.
לוחות זמנים
| רכיב | משך זמן |
|---|---|
| חישוב עלויות + ווידג'ט נקודות איסוף + יצירת משלוח | 4–5 ימים |
| + בדיקת סטטוס תקופתית + מיפוי | +2 ימים |
| + הדפסת תוויות | +1 יום |
כיצד להזמין את השילוב?
צור קשר ונעריך את המשימה שלך. אנו מבטיחים שילוב מלא ותפקודי תוך 7 ימים, עם תמיכה של 30 ימים לאחר ההשקה. השותפים המוסמכים שלנו של 1C-Bitrix עם ניסיון של למעלה מ-10 שנים יטפלו בכל ההיבטים הטכניים. הזמן שילוב Boxberry עם 1C-Bitrix—קבל משלוח אמין ללא כאבי ראש.
המהנדסים שלנו יישמו עשרות שילובים דומים. צור קשר—נעזור לך להגדיר את Boxberry במהירות וללא הפתעות.

