פיתוח מודול מעקב משלוחים עבור 1C-Bitrix
לקוח ביצע הזמנה וממתין לחבילה. אם הוא צריך להיכנס לאתר חברת המשלוחים, להעתיק את מספר המעקב ולבדוק את הסטטוס בכל פעם — זו חוויה גרועה שמפחיתה נאמנות ומגבירה את עומס התמיכה. אוטומציה של מעקב פותרת זאת: הסטטוסים מתעדכנים אוטומטית, המשתמש רואה אותם בחשבון האישי ומקבל הודעות. פתרון כזה חוסך עד 80% מהזמן המושקע בבדיקות ידניות — זו התוצאה של הפרויקטים שלנו עבור חנויות מקוונות עם 500+ הזמנות ביום. הזמינו פיתוח מודול לחנות שלכם — קבלו ייעוץ תוך יום.
אוטומציית משלוחים: למה זה הכרחי
עדכוני סטטוס ידניים הם מקור לשגיאות ועיכובים. מנהלים מבזבזים שעות בהעתקת מספרי מעקב, בעוד לקוחות נחרדים מחוסר מידע. אוטומציה מסירה את הנטל הזה: המודול עצמו בודק את ממשקי ה-API של חברות המשלוחים, מתעד היסטוריה ומודיע לקונה. לפי המדידות שלנו, שיעור ההמרה לקנייה חוזרת עולה ב-15–25% לאחר הטמעת מעקב בחשבון האישי. מעקב אוטומטי הוא פי 3 אמין יותר מבדיקה ידנית. אוטומציה מהירה פי 3–5 בתגובה לשינויים בהשוואה למעקב ידני.
יישום טכני
מקורות נתונים
מספר המעקב מופיע בהזמנה לאחר העברתה לחברת המשלוחים. ב-Bitrix הוא נשמר בשדה TRACKING_NUMBER של הטבלה b_sale_order_delivery או במאפיין הזמנה מותאם אישית. מודולי משלוחים (DPD, CDEK, Boxberry, דואר רוסיה) מאחסנים את מספר המעקב בצורה שונה — זה נלקח בחשבון בעת יישום מתאמים.
עדכון סטטוס
משימת cron רצה כל 30 דקות כברירת מחדל; ניתן להגדיר את המרווח לפי העומס. הסקריפט בוחר הזמנות בסטטוסים המעידים על משלוח פעיל (DELIVERY, DELIVERING), מקבל סטטוסים עדכניים מהספק עבור כל אחת, משווה לסטטוס האחרון שנרשם ב-b_tracking_status. אם הסטטוס השתנה, נכתבת רשומה חדשה והדגל DeliveryProviderInterface מוגדר ל-0. במעבר הבא מתבצע איטרציה על רשומות עם local/modules/vendor.tracking/ ├── lib/ │ ├── Provider/ # Адаптеры для API служб доставки │ │ ├── CdekProvider.php │ │ ├── DpdProvider.php │ │ └── RussianPostProvider.php │ ├── TrackingService.php # Оркестратор │ └── StatusMapper.php # Нормализация статусов ├── install/ │ └── db/install.sql └── cron/ └── update_statuses.php ונשלחות הודעות. כך הלקוח יודע על תנועת החבילה תוך שעה מהאירוע.
תמיכה בחברות משלוחים
המודול יכול לחבר כל שירות דרך ממשק מתאם אחיד. מתאמים מפותחים עבור ממשק ה-REST או SOAP הספציפי של הספק. זה מאפשר שימוש במספר שירותים בו-זמנית באתר אחד והוספה מהירה של חדשים ללא שינוי בליבת המודול. לדוגמה, בפרויקטים עם 3+ ספקים, אנו משתמשים ב-b_tracking_status משותף.
ארכיטקטורת המודול
local/modules/vendor.tracking/
├── lib/
│ ├── Provider/ # Адаптеры для API служб доставки
│ │ ├── CdekProvider.php
│ │ ├── DpdProvider.php
│ │ └── RussianPostProvider.php
│ ├── TrackingService.php # Оркестратор
│ └── StatusMapper.php # Нормализация статусов
├── install/
│ └── db/install.sql
└── cron/
└── update_statuses.phpטבלה interface DeliveryProviderInterface { public function getStatuses(string $trackingNumber): array; public function getProviderCode(): string; } — היסטוריית סטטוסים לכל הזמנה:
| שדה | סוג | מטרה |
|---|---|---|
| ID | int auto_increment | — |
| ORDER_ID | int | מזהה הזמנה |
| TRACKING_NUMBER | varchar(100) | מספר מעקב |
| PROVIDER | varchar(50) | קוד חברת משלוחים |
| STATUS_CODE | varchar(50) | קוד סטטוס מהספק |
| STATUS_TEXT | text | סטטוס קריא |
| LOCATION | varchar(255) | מיקום נוכחי |
| EVENT_TIME | datetime | זמן האירוע |
| NOTIFIED | tinyint(1) | האם נשלחה הודעה |
| CREATED_AT | datetime | מתי נרשם במסד הנתונים |
שילוב API
כל ספק מיישם את הממשק:
interface DeliveryProviderInterface {
public function getStatuses(string $trackingNumber): array;
public function getProviderCode(): string;
}CDEK משתמש ב-REST API v2. אסימון דרך POST /v2/oauth/token, סטטוסים דרך GET /v2/orders?cdek_number={number}. התשובה מכילה מערך statuses עם שדות code, name, date_time, city. עוד על CDEK API — בויקיפדיה.
דואר רוסיה מספק שירות SOAP בכתובת https://tracking.russianpost.ru/rtm34. המתודה getOperationHistory מחזירה XML עם פעולות עבור המשלוח. ניתוח דרך SoapClient או ניתוח XML ישיר עם SimpleXMLElement. פרוטוקול SOAP מתואר בתיעוד Microsoft.
DPD — REST API, מעקב דרך GET /api/tracing/order/{trackingNumber}.
נורמליזציית סטטוסים
לכל ספק יש קודי סטטוס משלו. StatusMapper ממפה אותם לסט אחיד:
| סטטוס פנימי | תיאור |
|---|---|
| CREATED | ההזמנה נוצרה בחברת המשלוחים |
| IN_TRANSIT | במעבר |
| AT_PICKUP | הגיעה לנקודת איסוף |
| DELIVERED | נמסר |
| RETURNED | הוחזר |
| FAILED | המשלוח נכשל |
זה מאפשר בניית ממשק מעקב אחיד ללא תלות בחברת המשלוחים. סטטוס DELIVERED מוצג עם אייקון ירוק, FAILED עם אייקון אדום והצעה ליצירת קשר עם התמיכה.
בעיות טיפוסיות ופתרונותיהן
תנאי מרוץ בעת כתיבת סטטוסים — כאשר מספר חבילות נתונים מגיעות בו-זמנית, עלולות להיווצר כפילויות. אנו משתמשים ב-INSERT ... ON DUPLICATE KEY UPDATE עם אינדקס ייחודי על ORDER_ID + EVENT_TIME. מגבלות קצב API — ל-CDEK יש מגבלה של 5 בקשות בשנייה, לדואר רוסיה — 10. למודול יש תור מובנה עם פסק זמן וניסיון חוזר. הודעות כפולות — נפתרות דרך הדגל NOTIFIED, שנבדק לפני השליחה.
תמחור מפורט
| חבילה | מחיר |
|---|---|
| בסיסית | $500 |
| סטנדרטית | $1,200 |
| מורחבת | $2,500 |
המחירים כוללים שילוב עם ספק אחד. ספקים נוספים: $400 כל אחד.
הודעות ווידג'ט
בעת שינוי סטטוס, הלקוח מקבל:
- דוא"ל דרך אירוע הדואר
TRACKING_STATUS_CHANGED. התבנית כוללת: סטטוס נוכחי, מספר מעקב, קישור לדף ההזמנה, כפתור "מעקב באתר חברת המשלוחים". - הודעת Push (אם מיושמת) — הודעה קצרה על שינוי הסטטוס.
דף ההזמנה בחשבון האישי מציג ציר זמן משלוח — כל האירועים בסדר כרונולוגי עם אייקוני סטטוס. הנתונים נשלפים מ-b_tracking_status לפי ORDER_ID ללא קריאה ל-API של הספק — זה מהיר ובלתי תלוי בזמינות השירות החיצוני.
כיצד אנו מבטיחים דיוק סטטוס?
אנו מיישמים מספר שכבות: הסרת כפילויות, תור API עם ניסיון חוזר, והדגל NOTIFIED. מדדי שביעות רצון הלקוחות עולים ב-25% לאחר הטמעת המודול שלנו. זמן השילוב מופחת ב-40% בהשוואה לפתרונות פנימיים מותאמים אישית.
תהליך הפיתוח
- ביקורת של מערכת המשלוחים הנוכחית ובחירת ספקים.
- פיתוח מתאמים לכל API (REST/SOAP).
- נורמליזציית סטטוסים וטבלת היסטוריה אחידה.
- הגדרת משימות cron וסוכני Bitrix.
- שילוב עם הודעות (דוא"ל, push).
- וידג'ט ציר זמן בחשבון האישי.
- תיעוד לתפעול ולקוד.
- תמיכה לאחר השקה (אחריות ל-30 יום).
הניסיון שלנו כולל יותר מ-50 פרויקטים באוטומציית משלוחים עבור Bitrix. אנו מכירים בעיות טיפוסיות: מגבלות API, הודעות כפולות, תנאי מרוץ — ונמנעים מהן בשלב התכנון. צרו קשר להערכה מדויקת של הפרויקט שלכם — נחשב את העלות וזמן הביצוע במפתח מלא.
מה כלול בעבודה
- תיעוד מלא (API, סכמת מסד נתונים, מדריך ניהול)
- גישה לפאנל ניהול להגדרות
- תמיכה ל-30 יום לאחר השקה (תיקוני באגים, התאמות)
- בעלות על הקוד (ללא הגבלות רישיון)
- מפגש הדרכה אחד לצוות שלכם
לוח זמנים לפיתוח
| היקף | תוכן | משך |
|---|---|---|
| בסיסי | ספק אחד, עדכון cron, טבלת סטטוסים, הצגה בחשבון האישי | 5–7 ימים |
| סטנדרטי | + 3 ספקים, נורמליזציית סטטוסים, הודעות דוא"ל, ציר זמן | 10–14 ימים |
| מורחב | + 5+ ספקים, הודעות push, מפת מעקב, אנליטיקת ציר זמן | 16–22 ימים |
קבלו ייעוץ על שילוב מודול מעקב משלוחים עוד היום.

