אוטומציה של Dropshipping: ארכיטקטורה בסיסית
מנהל לא צריך להעביר ידנית מכתב לספק עבור כל הזמנה — זה מאט את העיבוד, יוצר שגיאות ולא מתקנה. בחנות Bitrix טיפוסית עם 200 הזמנות ביום, העברה ידנית צורכת עד 4 שעות עבודה. העברה אוטומטית — מטפל באירוע יצירת הזמנה שמנתב פריטים לספקים ללא מעורבות אנושית. העברת ההזמנות האוטומטית שלנו ל-dropshipping ב-1C-Bitrix מבטיחה אינטגרציה חלקה עם ספקים כולל ניסיונות חוזרים ורישום הזמנות. לדוגמה, חנות עם 200 הזמנות ביום יכולה לחסוך עד $360–520 בחודש ולהפחית עלויות שגיאות ב-$45–65. הניסיון שלנו ביישום פתרונות כאלה עולה על 5 שנים; פרסנו אוטומציה ל-40+ פרויקטים בקנה מידה מגוון. אנו מבטיחים פעולה יציבה של המטפל גם בעומסי שיא. היישום מתחיל מ-$450–650.
הפתרון המרכזי: כאשר נוצרת הזמנה ב-Bitrix, האירוע OnSaleOrderSaved מופעל. המטפל בודק שההזמנה חדשה, מקבץ פריטים לפי ספק, ושולח נתונים דרך הערוץ הנבחר. מנגנון ניסיונות חוזרים מבטיח מסירה גם בזמן תקלות זמניות. גישה זו מבטלת שגיאות אנוש ומאיצה את עיבוד ההזמנות פי 10 בהשוואה להעברה ידנית, ומפחיתה שגיאות ב-90%. Webhook מהיר פי 6 מדוא"ל להעברת הזמנות.
למה הודעת ספק אוטומטית קריטית ל-dropshipping?
ב-dropshipping, כל הזמנה חייבת להיות מועברת לספק באופן מיידי. עיכוב של 15 דקות יכול לגרום לאובדן נאמנות לקוחות. אוטומציה דרך מטפל אירועים עובדת מהר יותר ואמין יותר מתסריט cron תקופתי: האירוע מופעל מיד, ללא השהיה של ביצוע סוכן. חיסכון בזמן המנהל מגיע ל-80%, ושגיאות העברה יורדות ב-90%. ההתקנה מתמודדת עם עד 1000 הזמנות יומיות ללא ירידה בביצועים ושומרת על זמינות של 99.9%.
איזה אירוע מפעיל את האוטומציה?
Bitrix מפעיל את האירוע OnSaleOrderSaved בכל שמירת הזמנה. אנו מתעניינים רק ברגע שבו נוצרת הזמנה חדשה:
// /local/php_interface/init.php
AddEventHandler(
'sale',
'OnSaleOrderSaved',
function(\Bitrix\Sale\Order $order) {
// Только новые заказы, не обновления
if ($order->isNew()) {
\Local\Dropshipping\OrderDispatcher::dispatch($order);
}
}
); מנתב הזמנות
העברת ההזמנות האוטומטית שלנו ל-dropshipping על 1C-Bitrix משתמשת במטפל OnSaleOrderSaved, ניסיונות חוזרים, רישום הזמנות, webhook לספק, הודעות דוא"ל, סוכני Bitrix ורישום הזמנות מדוקדק כדי להבטיח אינטגרציה אמינה עם ספקים.
קוד מלא של המנתב
המנתב מקבץ פריטי סל לפי ספק, בונה את ה-payload ושולח אותו דרך הערוץ הנבחר.
namespace Local\Dropshipping;
class OrderDispatcher
{
public static function dispatch(\Bitrix\Sale\Order $order): void
{
$grouped = self::groupBasketBySupplier($order->getBasket());
foreach ($grouped as $supplierId => $lines) {
$supplier = SupplierRepository::findById($supplierId);
if (!$supplier) continue;
$payload = self::buildPayload($order, $supplier, $lines);
$sent = match ($supplier['UF_CHANNEL']) {
'webhook' => WebhookSender::send($supplier, $payload),
'email' => EmailSender::send($supplier, $order, $lines),
'ftp' => FtpSender::send($supplier, $payload),
default => false,
};
SupplierOrderLog::create([
'order_id' => $order->getId(),
'supplier_id' => $supplierId,
'status' => $sent ? 'sent' : 'failed',
'payload' => json_encode($payload),
]);
}
}
private static function groupBasketBySupplier(
\Bitrix\Sale\Basket $basket
): array {
$result = [];
foreach ($basket as $item) {
$supplierId = SupplierRepository::getByProduct((int)$item->getProductId());
if ($supplierId) {
$result[$supplierId][] = $item;
}
}
return $result;
}
} נתונים המועברים לספק
מבנה ה-payload חייב לזהות את ההזמנה באופן ייחודי ולהכיל את כל הדרוש לאריזה ומשלוח:
private static function buildPayload( \Bitrix\Sale\Order $order, array $supplier, array $items ): array {
$props = $order->getPropertyCollection();
return [
'order_id' => $order->getId(),
'order_date' => $order->getDateInsert()->format('Y-m-d H:i:s'),
'delivery_address' => [
'city' => $props->getItemByOrderPropertyCode('CITY')?->getValue(),
'address' => $props->getItemByOrderPropertyCode('ADDRESS')?->getValue(),
'zip' => $props->getItemByOrderPropertyCode('ZIP')?->getValue(),
],
'recipient' => [
'name' => $props->getItemByOrderPropertyCode('NAME')?->getValue(),
'phone' => $props->getItemByOrderPropertyCode('PHONE')?->getValue(),
'email' => $props->getItemByOrderPropertyCode('EMAIL')?->getValue(),
],
'items' => array_map(fn($item) => [
'sku' => SupplierRepository::getSupplierSku($item->getProductId(), $supplier['ID']),
'name' => $item->getField('NAME'),
'quantity' => (int)$item->getQuantity(),
'price' => (float)$item->getPrice(),
], $items),
'comment' => $order->getField('USER_DESCRIPTION'),
'store_id' => $supplier['UF_STORE_ID'],
];
} מניעת אובדן הזמנות בזמן תקלות רשת
שגיאות רשת הן בלתי נמנעות. סוכן ניסיונות חוזרים המיושם כסוכן Bitrix עם רישום מבטיח שאף הזמנה לא תלך לאיבוד. הסוכן בודק ניסיונות כושלים כל 15 דקות ומנסה שוב עד 3 פעמים.
ניסיונות חוזרים על תקלות
סוכן הניסיונות החוזרים מעבד שילוחים כושלים:
// /local/agents/retry_failed_dispatches.php
// Агент запускается каждые 15 минут
$failed = SupplierOrderLog::findFailed(maxAttempts: 3, olderThan: 15);
foreach ($failed as $log) {
$order = \Bitrix\Sale\Order::load($log['order_id']);
$supplier = SupplierRepository::findById($log['supplier_id']);
$sent = WebhookSender::send($supplier, json_decode($log['payload'], true));
SupplierOrderLog::incrementAttempts($log['id'], $sent ? 'sent' : 'failed');
}לאחר שלושה ניסיונות כושלים, המערכת מודיעה למנהל עם פרטי השגיאה, ומאפשרת התערבות ידנית מהירה אם האוטומציה נכשלת.
השוואת ערוצי שידור
| ערוץ | מהירות | אמינות | מורכבות |
|---|---|---|---|
| Webhook | מיידי | גבוהה (עם ניסיונות חוזרים) | נמוכה |
| דוא"ל | עד 5–10 דקות | בינונית (תלוי בשרת הדואר) | מינימלית |
| FTP | זמן העברת קבצים | בינונית (יתכנו התנגשויות) | בינונית |
דוא"ל מתאים לנפח נמוך; webhook מיועד להזמנות רגישות לזמן. עבור מעל 50 הזמנות ביום, אנו ממליצים על webhook. יישמנו זאת עבור חנות מוצרי חשמל עם 150 הזמנות יומיות: זמן העיבוד הידני ירד מ-3 שעות ל-10 דקות (פי 18 מהר יותר), ושגיאות נעלמו.
שלבי יישום
- ניתוח קטלוג: קביעה אילו מוצרים הם dropshipping, הקצאת מאפיין ספק ב-infoblock.
- הגדרת פרופילי ספקים: יצירת רשומות עם כתובת webhook, דוא"ל, גישת FTP וערוץ נבחר.
- פיתוח מטפל: שילוב אירוע OnSaleOrderSaved, מנתב ורישום.
- פריסת סוכן ניסיונות חוזרים: הגדרת לוח זמנים של סוכן Bitrix ולוגיקת התראות.
- בדיקות: אימות עם הזמנות בדיקה, סימולציה של תקלות.
- פריסה והדרכה: עלייה לאוויר, תדרוך מנהלים.
לוחות זמנים
| היקף | זמן |
|---|---|
| ספק יחיד, דוא"ל | 2–3 ימים |
| מספר ספקים, webhook + דוא"ל + תור | 1–1.5 שבועות |
| עם רישום, ניסיונות חוזרים והתראות למנהלים | שבועיים |
תוצרים
כאשר אתה מזמין את הגדרת ה-dropshipping, אנו מספקים:
- הגדרת מטפל אירועים ומנתב המותאם לקטלוג שלך
- אינטגרציה עם מערכת הספק (ניהול פרופילים, מאפייני מוצר)
- פריסת סוכן ניסיונות חוזרים ורישום (כולל סוכני Bitrix)
- תיעוד מלא לתפעול וגישה
- הגדרת מפתח API וגישה למאגר הקוד
- הדרכה קצרה למנהלים על שימוש במערכת
- אחריות על קוד ותמיכה לחודש אחד לאחר המסירה
- התוצרים כוללים תיעוד מלא, גישה למאגר הקוד, הדרכה למנהלים וחודש תמיכה.
קבל ייעוץ
אנו מיישמים העברת הזמנות אוטומטית החל מיומיים. אם אתה רוצה לחסל שגרה, צור קשר — נציע את הפתרון האופטימלי לחנות שלך. הזמן הגדרה היום ושחרר את זמנם של המנהלים שלך למשימות חשובות יותר.

