Огромная просьба!
Пожалуйста, добавьте метод для получения габаритов товара плагинами расчета доставки.
Судя по документации, сейчас плагины могут получать только вес, из-за чего расчет стоимости в большинстве случаев получается неправильным.
Это создает огромные проблемы:
- Часть клиентов уходят, потому что видят завышенную цену доставки;
- Части клиентов показывается заниженная цена доставки, и по оплаченным заказам приходится покрывать разницу из своей прибыли;
- Менеджеру постоянно приходится перепроверять стоимость доставки с помощью калькулятора на сайте службы доставки.
Для ассортимента в несколько сотен или тысяч наименований невозможно нормально рассчитывать стоимость доставки только по весу, так как в ассортименте всегда будут:
- маленькие тяжелые товары (например, изделия из металла)
- легкие объемные товары (например, мягкие игрушки)
Разумеется, установить корреляцию между объемом и весом (как, например, сделано в плагине СДЭК) в таком случае нереально.
4 комментария
Все равно где-то (в настройках магазина или плагина) придется держать реестр используемых упаковок. Можно разве что при поиске подходящей упаковки учитывать не только вес товара, но и суммарный объем товаров в заказе.
Дело в том, что задача поиска наименьших возможных габаритов упаковки для 2+ товаров ресурсоемкая и, насколько помню, имеет решение только полным перебором всех вариантов укладки (т.е. NP-сложная). Представляю себе расчет для заказа канцтоваров, скажем 100 позиций по несколько штук каждой :(
И да. Не мое дело, конечно, но по-моему нет большой беды, если 10 клиентов переплатят за доставку, а один недоплатит.
в упрощенном виде не так сложно. Из двух больших сторон нужно выбрать максимальные, третью просуммировать. Например
товар_1: 520 х 64 х 410 - 2 шт
товар_2: 210 х 350 х 80 - 1шт
Сперва сортируем габариты, получаем
[[64,410,520], [80,210,350]]
нулевые элементы суммируем умножив на кол-во экземпляров,
из первых и вторых находим максимальные. Результат:
208 х 410 х 520
+ конечно, возможна ситауция, когда товар, которого 2шт, по площади равен 1/2 S товара, которого 1 шт. Тогда при укладке второй товар не займет две высоты своего меньшего размера, но это уже не "упрощённый вариант"...
хорошее решение, но неверное. если первого товара будет не 2, а 5, то суммировать меньшие габариты не лучшая идея.
СДЕК предлагает брать большее из, не помню точно, высоты и длины и суммировать ширину. Что, впрочем, не важно. Дело в том, что габариты пишутся "для людей", например радиатор отопления будет описан как:
длина (вдоль стены) - 95 см
высота (от пола к потолку) - 70 см
ширина (перпендикуляр к стене) - 28 см.
Но это же не означает, что при перевозке три радиатора займут высоту 210 см.
При перевозке это будет место с основанием 95х70 и высотой 84 см.
А где у радиатора ширина, а кто-то введёт 95 в качестве ширины...
Аналогично и другие габариты независимо от кол-ва экз. Например шкаф в сборе, ширина 110см, высота 185, глубина 75. Пять штук. Они поедут стоя, но их объем мы подсчитаем как 110х185х(75*5) и здесь будет ошибкой суммировать ширину, указанную "для людей"
Это не решение объёма перевозок, т.к. объём груза может быть равен объёму фуры, но холодильники не поставишь в два ряда высоты и не уложишь набок. И это не решение складирования, т.к. могут существовать ограничения на высоту рядов, напр 4, и тогда 10 коробок 50-50-50 см займут площадь не 50х50, а 150х50...
Поэтому не важно, что мы суммируем, ширину или толщину, лишь бы это было наименьшим. Этот "алгоритм" даёт приемлемое приближение к "плотной упаковке", достаточное для расчёта стоимости доставки. В интернет-магазине мы вряд ли получим более точное.