Петр Сальников › spbcod Сбер ID
Fullstack-разработчик (Symfony / Битрикс) с опытом DevOps.
Рейтинг
332
№ 3 337 в каталоге
Отзывы
0
Профессионализм
-/10
Коммуникация
- /10
Город
Санкт-Петербург
Опыт работы
28 лет
На сайте с
2023 года
Юридический статус
ИП

Компонент автоматического расчета оптимальной упаковки заказа для разных служб доставки в 1С-Битрикс

Описание

В интернет-магазине при расчете стоимости доставки возникала серьезная проблема: для каждого товара в каталоге были указаны габариты (длина, ширина, высота), но при заказе нескольких товаров операторы и система не могли корректно определить итоговые габариты посылки .

Проблемы, с которыми сталкивались:
- При заказе 3-4 товаров разного размера непонятно, как их упаковать — в одну коробку или несколько
- Разные ТК предъявляют разные требования к расчету объемного веса (формулы /5000, /4000 и т.д.)
- Простое суммирование габаритов или вычисление "средней коробки" по формуле кубического корня давало некорректные результаты и расходилось с реальностью
- Операторы тратили время на ручной подбор коробок
- Клиентам приходила неправильная стоимость доставки, что приводило к спорам и убыткам

Требовалось создать систему, которая:
- Автоматически вычисляет минимально возможные габариты коробки для всего заказа
- Учитывает физические законы упаковки (товары можно поворачивать, ставить друг на друга)
- Поддерживает разные алгоритмы для разных ТК (СДЭК, Почта, Boxberry)
- Рассчитывает объемный вес по формулам каждой ТК
- Позволяет оператору видеть и корректировать результат на странице заказа
- Интегрируется с существующей системой расчета доставки

Решение

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

/local/php_interface/include/packaging/
├── PackageCalculator.php # Основной класс расчета упаковки
├── algorithms/
│ ├── SimpleStacking.php # Простая укладка стопкой
│ ├── AdvancedPacker.php # 3D-упаковка с оптимизацией
│ └── MultiBoxDetector.php # Определение необходимости нескольких коробок
├── TKRules/
│ ├── SdekRules.php # Правила для СДЭК (объемный вес /5000)
│ ├── RussianPostRules.php # Правила для Почты России
│ ├── BoxberryRules.php # Правила для Boxberry
│ └── DellinRules.php # Правила для Деловых линий
├── PackagingAdmin.php # Интерфейс в админке
└── events.php # Регистрация событий

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

Результат

Для бизнеса
✅ Точный расчет доставки — стоимость соответствует реальным габаритам посылки
✅ Экономия на упаковке — оптимальный подбор коробок снижает расход материалов
✅ Исключение споров — клиенты получают корректную стоимость при заказе
✅ Автоматизация — операторам не нужно вручную подбирать коробки

Для операторов
✅ Наглядная информация — на странице заказа видно, в какую коробку упаковывать
✅ Выбор по ТК — разные варианты для разных служб доставки
✅ Предупреждение о нескольких коробках — если заказ нужно разделить
✅ Экономия времени — 30 секунд вместо 5 минут ручного подбора

Технические результаты
✅ Поддержка разных алгоритмов упаковки (от простого до 3D-оптимизации)
✅ Интеграция с правилами всех основных ТК (СДЭК, Почта, Boxberry, Деловые линии)
✅ Автоматическое определение необходимости нескольких коробок
✅ Расчет объемного веса по формулам каждой ТК
✅ Интеграция на страницу заказа в админке
✅ Возможность ручной корректировки оператором

Оценили проект:

Другие проекты

Все проекты →
Веб-разработка и IT Разработка компонента статистики заказов для админки Битрикс (источники трафика, браузеры, география)
Разработка компонента статистики заказов для админки Битрикс (источники трафика, браузеры, география)
62
Веб-разработка и IT Компонент проверки артикулов товаров для 1С-Битрикс (поиск ошибок, дублей, несоответствий)
Компонент проверки артикулов товаров для 1С-Битрикс (поиск ошибок, дублей, несоответствий)
72
Веб-разработка и IT Разработка административной панели управления YML-фидом для Яндекс.Маркета в 1С-Битрикс
Разработка административной панели управления YML-фидом для Яндекс.Маркета в 1С-Битрикс
74
Веб-разработка и IT Разработка кастомного модуля для 1С-Битрикс, который передает данные из форм обратной связи в облачный Битрикс24 и 1С CRM с обогащением данными сквозной аналитики Roistat
Разработка кастомного модуля для 1С-Битрикс, который передает данные из форм обратной связи в облачный Битрикс24 и 1С CRM с обогащением данными сквозной аналитики Roistat
66