WooCommerce · СДЭК Фулфилмент · Собственный плагин

Плагин многоскладского фулфилмента для WooCommerce и СДЭК

Магазину требовалась логистика с несколькими складами фулфилмента вместо расчета от одного фиксированного склада. Разработан отдельный плагин WooCommerce: он подбирает состав отправлений по доступным остаткам, рассчитывает полную доставку и сохраняет один покупательский заказ при отгрузке из разных складов.

  • WordPress
  • WooCommerce
  • PHP
  • JavaScript
  • MySQL
  • WooCommerce Store API
  • Checkout Blocks
  • HPOS
  • Action Scheduler
  • СДЭК API
  • DaData

Изображение проекта

Управление складскими отправлениями и оплатой в административном интерфейсе WooCommerce

Задача

Организовать полный цикл многоскладского заказа: сопоставить товары магазина с каталогом фулфилмента, выбрать склады и тарифы, предотвратить одновременную продажу одного остатка, распределить оплату между посылками и передать каждую часть в СДЭК без дублирования заказов.

Что реализовано

  • отдельный WordPress-плагин с собственными настройками подключений, складов, отправителей и соответствий тарифов, без изменения ядра WooCommerce и стороннего модуля доставки
  • API-клиенты СДЭК Фулфилмент, доставки СДЭК и DaData; загрузка справочников с полной пагинацией и диагностикой подключений
  • сопоставление товаров и вариаций WooCommerce с карточками фулфилмента, обновление остатков по складам и выявление неоднозначных соответствий
  • алгоритм распределения: полное покрытие корзины, минимум отправлений, срок получения всего заказа и стоимость доставки; разделение количества одной позиции между складами
  • расчет упаковки и тарифов для каждого отправления, общий итог доставки и сохранение причин выбора или исключения вариантов
  • атомарный локальный резерв по товару и складу для всех частей заказа, учет конкурирующих заказов и управление сроком удержания неоплаченных заказов
  • интеграция с Cart/Checkout Blocks и Store API: адресные подсказки DaData, собственная карта ПВЗ, доставка до двери, состав отправлений и повторная проверка остатков перед оформлением
  • совместимость с HPOS и сохранение отправлений через WooCommerce CRUD; отдельные идентификаторы, товары, суммы и состояния каждой посылки
  • распределение стоимости товаров, скидок, налогов и доставки с точностью до копейки; предоплата и оплата при получении с проверкой общей суммы заказа
  • передача через Action Scheduler, поиск ранее созданного заказа по внешнему идентификатору и запрет повторного создания при неопределенном результате API
  • синхронизация резерва, сборки, доставки и треков; административные действия для обновления состояния, повторной передачи и отмены в допустимых состояниях
  • отображение посылок в заказе покупателя и письмах, журнал событий и обоснование складского распределения для менеджера
  • переключение новых заказов на собственный механизм с сохранением старого модуля для исторических отправлений

Моя роль

Аудит действующей доставки, проектирование модели отправлений и резервов, разработка плагина с нуля, интеграция с API СДЭК и DaData, реализация оформления заказа и административного управления, переключение рабочего магазина на новый механизм.

Результат

Создан и установлен в рабочем магазине самостоятельный плагин, который объединяет складское планирование, оформление заказа и обмен с фулфилментом. Покупатель оформляет один заказ и видит полную стоимость доставки; менеджер получает отдельные данные и управление по каждому отправлению.

Проверены односкладское и разделенное оформление, локальные резервы, распределение сумм и контроль конкурирующих остатков. Через методы плагина выполнены создание и отмена контрольного заказа в API фулфилмента. Фактические отгрузки, накладные, взыскание оплаты и поздние состояния доставки выделены в отдельную приемку заказчика.

Подтверждение

  • Разработка подтверждается исходным кодом плагина и протоколами проверок. Данные магазина, покупателей и отправлений не раскрываются.

Нужен собственный плагин или интеграция фулфилмента? Написать в Telegram

Есть похожая задача?

Пришлите описание проекта, текущую проблему, желаемый срок и бюджет, если он уже определен.

Telegram: @dmitrydevelopmentEmail: web@dmitrydevelopment.com
Телефон / WhatsApp / Viber:+381 64 118 22 24WhatsAppViber