Метод для получения габаритов товара плагинами расчета доставки

8

Огромная просьба!

Пожалуйста, добавьте метод для получения габаритов товара плагинами расчета доставки.

Судя по документации, сейчас плагины могут получать только вес, из-за чего расчет стоимости в большинстве случаев получается неправильным.

Это создает огромные проблемы:

  1. Часть клиентов уходят, потому что видят завышенную цену доставки;
  2. Части клиентов показывается заниженная цена доставки, и по оплаченным заказам приходится покрывать разницу из своей прибыли;
  3. Менеджеру постоянно приходится перепроверять стоимость доставки с помощью калькулятора на сайте службы доставки.

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

  • маленькие тяжелые товары (например, изделия из металла)
  • легкие объемные товары (например, мягкие игрушки)

Разумеется, установить корреляцию между объемом и весом (как, например, сделано в плагине СДЭК) в таком случае нереально.

4 комментария

  • +1

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

    Дело в том, что задача поиска наименьших возможных габаритов упаковки для 2+ товаров ресурсоемкая и, насколько помню, имеет решение только полным перебором всех вариантов укладки (т.е. NP-сложная). Представляю себе расчет для заказа канцтоваров, скажем 100 позиций по несколько штук каждой :(

    И да. Не мое дело, конечно, но по-моему нет большой беды, если 10 клиентов переплатят за доставку, а один недоплатит.

    • +1
      Andrey Burym Andrey Burym 25 декабря 2017 23:30 #

      в упрощенном виде не так сложно. Из двух больших сторон нужно выбрать максимальные, третью просуммировать. Например
      товар_1: 520 х 64 х 410 - 2 шт
      товар_2: 210 х 350 х 80 - 1шт
      Сперва сортируем габариты, получаем
      [[64,410,520], [80,210,350]]
      нулевые элементы суммируем умножив на кол-во экземпляров,
      из первых и вторых находим максимальные. Результат:
      208 х 410 х 520

      + конечно, возможна ситауция, когда товар, которого 2шт, по площади равен 1/2 S товара, которого 1 шт. Тогда при укладке второй товар не займет две высоты своего меньшего размера, но это уже не "упрощённый вариант"...

      • +1

        хорошее решение, но неверное. если первого товара будет не 2, а 5, то суммировать меньшие габариты не лучшая идея.

        • +1
          Andrey Burym Andrey Burym 27 декабря 2017 00:47 #

          СДЕК предлагает брать большее из, не помню точно, высоты и длины и суммировать ширину. Что, впрочем, не важно. Дело в том, что габариты пишутся "для людей", например радиатор отопления будет описан как:
          длина (вдоль стены) - 95 см
          высота (от пола к потолку) - 70 см
          ширина (перпендикуляр к стене) - 28 см.
          Но это же не означает, что при перевозке три радиатора займут высоту 210 см.
          При перевозке это будет место с основанием 95х70 и высотой 84 см.
          А где у радиатора ширина, а кто-то введёт 95 в качестве ширины...
          Аналогично и другие габариты независимо от кол-ва экз. Например шкаф в сборе, ширина 110см, высота 185, глубина 75. Пять штук. Они поедут стоя, но их объем мы подсчитаем как 110х185х(75*5) и здесь будет ошибкой суммировать ширину, указанную "для людей"
          Это не решение объёма перевозок, т.к. объём груза может быть равен объёму фуры, но холодильники не поставишь в два ряда высоты и не уложишь набок. И это не решение складирования, т.к. могут существовать ограничения на высоту рядов, напр 4, и тогда 10 коробок 50-50-50 см займут площадь не 50х50, а 150х50...
          Поэтому не важно, что мы суммируем, ширину или толщину, лишь бы это было наименьшим. Этот "алгоритм" даёт приемлемое приближение к "плотной упаковке", достаточное для расчёта стоимости доставки. В интернет-магазине мы вряд ли получим более точное.

          Добавить комментарий

          Чтобы добавить комментарий, зарегистрируйтесь или войдите