Автоматическая передача заказов поставщику при дропшиппинге на Битрикс

Автоматизация дропшиппинга: базовая архитектура Менеджер не должен вручную пересылать письмо поставщику при каждом заказе — это замедляет обработку, порождает ошибки и не масштабируется. В типичном интернет-магазине на Битрикс с 200 заказов в сутки ручная передача отнимает до 4 часов рабочего вре
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Автоматическая передача заказов поставщику при дропшиппинге на Битрикс
Простой
~1 день

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1017
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    759
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    879
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    802
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1161

Автоматизация дропшиппинга: базовая архитектура

Менеджер не должен вручную пересылать письмо поставщику при каждом заказе — это замедляет обработку, порождает ошибки и не масштабируется. В типичном интернет-магазине на Битрикс с 200 заказов в сутки ручная передача отнимает до 4 часов рабочего времени. Автоматическая передача — обработчик события создания заказа, который без участия человека маршрутизирует позиции поставщикам. Наш опыт внедрения таких решений превышает 5 лет, мы запустили автоматизацию для 40+ проектов разного масштаба. Гарантируем стабильную работу обработчика даже при пиковых нагрузках. Экономия на операционных затратах может достигать $360–520 в месяц для магазина с 200 заказами в день.

Суть решения: при создании заказа в Битрикс срабатывает событие OnSaleOrderSaved. Обработчик проверяет, что заказ новый, группирует товары по поставщикам и отправляет данные через выбранный канал. Механизм повторных попыток гарантирует доставку даже при временных сбоях. Такой подход исключает человеческий фактор и ускоряет обработку заказов в несколько раз.

Почему автоматическое уведомление поставщика — базовая необходимость для дропшиппинга?

При дропшиппинге каждый заказ должен быть мгновенно передан поставщику. Задержка в 15 минут может привести к потере лояльности клиента. Автоматизация через обработчик событий работает быстрее и надёжнее, чем периодический cron-скрипт: событие отстреливается сразу, без задержки на выполнение агента. Экономия времени менеджеров достигает 80%, а количество ошибок при передаче снижается на 90%.

Событие и точка вызова

Битрикс генерирует событие OnSaleOrderSaved при каждом сохранении заказа. Нас интересует только момент создания нового заказа:

// /local/php_interface/init.php AddEventHandler( 'sale', 'OnSaleOrderSaved', function(\Bitrix\Sale\Order $order) { // Только новые заказы, не обновления if ($order->isNew()) { \Local\Dropshipping\OrderDispatcher::dispatch($order); } } ); 

Диспетчер заказов

Полный код диспетчера

Код диспетчера группирует товары корзины по поставщику, формирует 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'], ]; } 

Как избежать потери заказов при сетевых сбоях?

Сетевые ошибки неизбежны. Агент повторных попыток с логированием гарантирует, что ни один заказ не потеряется. Агент проверяет неудачные попытки каждые 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'); } 

После трёх неудачных попыток система отправляет уведомление менеджеру с деталями ошибки. Это позволяет быстро вмешаться и решить проблему вручную, если автоматика не справилась.

Сравнение каналов передачи

Канал Скорость Надёжность Сложность
Вебхук Мгновенно Высокая (с повторными попытками) Низкая
Email До 5–10 мин Средняя (зависит от почтового сервера) Минимальная
FTP Время передачи файла Средняя (возможны конфликты) Средняя

Email подходит для небольшого объёма, вебхук — для критичных по времени заказов. Если у вас более 50 заказов в день, рекомендуем вебхук. На практике мы реализовали такое решение для интернет-магазина бытовой техники с 150 заказами в день: затраты времени на ручную обработку сократились с 3 часов до 10 минут, ошибки исчезли.

Этапы внедрения автоматизации

  1. Анализ каталога: определяем, какие товары относятся к дропшиппингу, назначаем в инфоблоке свойство поставщика.
  2. Настройка профилей поставщиков: создаём записи с адресом вебхука, email, FTP-доступом и выбранным каналом.
  3. Разработка обработчика: интеграция события OnSaleOrderSaved, диспетчер, логирование.
  4. Развёртывание агента повторных попыток: настройка расписания и логики уведомлений.
  5. Тестирование: проверка на тестовых заказах, симуляция сбоев.
  6. Деплой и обучение: запуск в продакшн, краткий инструктаж менеджеров.

Сроки реализации

Состав Срок
Один поставщик, email 2–3 дня
Мультипоставщик, вебхук + email + очередь 1–1.5 недели
С логированием, повторами и уведомлениями менеджеру 2 недели

Что входит в работу

При заказе настройки мы предоставляем:

  • Конфигурацию обработчика события и диспетчера под ваш каталог.
  • Интеграцию с системой поставщиков (ведение профилей, свойств товаров).
  • Развёртывание агента повторных попыток и логирования.
  • Документацию по эксплуатации и доступам.
  • Краткое обучение менеджеров работе с системой.
  • Гарантию на код и поддержку в течение месяца после сдачи.

Получите консультацию

Реализуем автоматическую передачу заказов под ключ от 2 дней. Если вы хотите избавиться от рутины, свяжитесь с нами — мы предложим оптимальное решение для вашего магазина. Закажите настройку сегодня и освободите время ваших менеджеров для более важных задач.