Определение размеров упаковки для API доставки UPS

Я кодирую пользовательскую коммерческую CMS в PHP.
Я интегрировал ИБП XML API для получения тарифов на доставку и в настоящее время работаю. Я использую класс Mark Sandborn PHP http://code.google.com/p/ups-php/

API требует ввода конечной длины пакета, ширины, высоты и веса. В моей базе данных продукта есть эта информация для каждого соответствующего продукта, поэтому нет проблем, когда кто-то покупает только один предмет. Немного другая история, когда несколько продуктов добавляются в корзину... Окончательный вес пакета по-прежнему прост, так как я могу просто взять сумму всех весов продукта.

Однако каковы наилучшие методы оценки конечной длины пакета, ширины и высоты для перехода к ИБП, когда в тележке находятся несколько продуктов?

Поправка
Мне кажется, что любой разработчик, работающий с API ИБП в среде магазина, должен иметь дело с этой же проблемой. Более того, чем решение проблемы с рюкзаком, я надеюсь, что я неправильно понимаю, как работает API, и что на самом деле есть простой способ справиться с этим или даже с тем, чтобы передать это ИБП для расчета.

Ответ 1

В основном вы пытаетесь найти то же программное обеспечение, которое использует бизнес при разработке 2D-фигур. Сначала они получают плоскую материальную поверхность, а затем, с объектами, которые они хотят получить, оптимизируйте расположение, чтобы материал не терялся.

Это непростая задача; Я бы сказал, что это огромная задача, даже если все ваши объекты являются идеальными.

И я думаю, вы могли бы написать целую книгу об этом, как это сделали некоторые люди. Если вы все еще хотите сделать это автоматически, а не пытаться вручную, прочитайте эту статью в Википедии.

И здесь существует старая, но все же полезная дискуссия форума об этом для PHP. Они также предлагают оптимальный вариант try-and-see, который я считаю лучшим вариантом.