Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
Создание и поддержка сайтов web-aim.ru
Готовое решение для создания
корпоративного сайта
8 800 201-07-68
8 800 201-07-68
Заказать звонок
E-mail
hello@web-aim.ru
Написать нам
Услуги
  • Сайт
    • Интернет-магазин с индивидуальным дизайном
    • Интернет-магазин на шаблоне
    • Корпоративный сайт на шаблоне
    • Корпоративный сайт с индивидуальным дизайном
    • Личный кабинет
  • Поддержка и развитие
    • Интеграция Битрикс24
    • Интеграция с 1С
    • Интеграция с МойСклад
    • Технология: композитный сайт
    • Техподдержка
  • CRM
    • Интернет-магазин + CRM
    • Коробочная версия Битрикс24.CRM
Портфолио
  • CRM
  • Интернет-магазин
  • Корпоративные сайты
  • Техподдержка
О нас
  • О Компании
  • Работа в WEB-AiM
  • Партнеры
  • Новости
  • Мероприятия
  • Сертификаты
  • Как мы работаем
  • Отзывы
  • Реквизиты
Блог
Контакты
Партнерская программа
8 800 201-07-68
8 800 201-07-68
Заказать звонок
E-mail
hello@web-aim.ru
Заказать звонок
Создание и поддержка сайтов web-aim.ru
Услуги
  • Сайт
    Сайт
    • Интернет-магазин с индивидуальным дизайном
    • Интернет-магазин на шаблоне
    • Корпоративный сайт на шаблоне
    • Корпоративный сайт с индивидуальным дизайном
    • Личный кабинет
  • Поддержка и развитие
    Поддержка и развитие
    • Интеграция Битрикс24
    • Интеграция с 1С
    • Интеграция с МойСклад
    • Технология: композитный сайт
    • Техподдержка
  • CRM
    CRM
    • Интернет-магазин + CRM
    • Коробочная версия Битрикс24.CRM
Портфолио
  • CRM
  • Интернет-магазин
  • Корпоративные сайты
  • Техподдержка
О нас
  • О Компании
  • Работа в WEB-AiM
  • Партнеры
  • Новости
  • Мероприятия
  • Сертификаты
  • Как мы работаем
  • Отзывы
  • Реквизиты
Блог
Контакты
Партнерская программа
Написать нам
    Создание и поддержка сайтов web-aim.ru
    Услуги
    • Сайт
      Сайт
      • Интернет-магазин с индивидуальным дизайном
      • Интернет-магазин на шаблоне
      • Корпоративный сайт на шаблоне
      • Корпоративный сайт с индивидуальным дизайном
      • Личный кабинет
    • Поддержка и развитие
      Поддержка и развитие
      • Интеграция Битрикс24
      • Интеграция с 1С
      • Интеграция с МойСклад
      • Технология: композитный сайт
      • Техподдержка
    • CRM
      CRM
      • Интернет-магазин + CRM
      • Коробочная версия Битрикс24.CRM
    Портфолио
    • CRM
    • Интернет-магазин
    • Корпоративные сайты
    • Техподдержка
    О нас
    • О Компании
    • Работа в WEB-AiM
    • Партнеры
    • Новости
    • Мероприятия
    • Сертификаты
    • Как мы работаем
    • Отзывы
    • Реквизиты
    Блог
    Контакты
    Партнерская программа
      8 800 201-07-68
      Заказать звонок
      E-mail
      hello@web-aim.ru
      Написать нам
      Создание и поддержка сайтов web-aim.ru
      Телефоны
      8 800 201-07-68
      Заказать звонок
      Создание и поддержка сайтов web-aim.ru
      • Услуги
        • Услуги
        • Сайт
          • Сайт
          • Интернет-магазин с индивидуальным дизайном
          • Интернет-магазин на шаблоне
          • Корпоративный сайт на шаблоне
          • Корпоративный сайт с индивидуальным дизайном
          • Личный кабинет
        • Поддержка и развитие
          • Поддержка и развитие
          • Интеграция Битрикс24
          • Интеграция с 1С
          • Интеграция с МойСклад
          • Технология: композитный сайт
          • Техподдержка
        • CRM
          • CRM
          • Интернет-магазин + CRM
          • Коробочная версия Битрикс24.CRM
      • Портфолио
        • Портфолио
        • CRM
        • Интернет-магазин
        • Корпоративные сайты
        • Техподдержка
      • О нас
        • О нас
        • О Компании
        • Работа в WEB-AiM
        • Партнеры
        • Новости
        • Мероприятия
        • Сертификаты
        • Как мы работаем
        • Отзывы
        • Реквизиты
      • Блог
      • Контакты
      • Партнерская программа
      Написать нам
      • 8 800 201-07-68
        • Телефоны
        • 8 800 201-07-68
        • Заказать звонок
      • hello@web-aim.ru

      Реверс-инжиниринг расчета стоимости доставки

      Главная
      —
      Статьи
      —
      Кейс
      —Реверс-инжиниринг расчета стоимости доставки
      Кейс
      15 апреля 2020

      Реверс-инжиниринг (обратная разработка) − исследование готового устройства или программы, а также документации на него с целью понять принцип его работы. Например, чтобы обнаружить недокументированные возможности (в том числе программные закладки), сделать изменение или воспроизвести устройство, программу или иной объект с аналогичными функциями, но без прямого копирования. (Википедия)


      ТЗ: “Настроить расчет курьерской доставки собственной службой, исходя из параметров предоставленной оценочной сетки”.

      И так у нас есть данные по стоимости некоторых доставок, довольно много. Надо автоматизировать расчет, чтоб по вводным параметрам стоимость сама считалась.

      Простым языком это означает, что надо автоматизировать расчет стоимости доставки товара клиенту на сайте.

      На данном этапе расчет производится внешней дружественной организацией. При поступлении заказа ТУДА сообщается вес и адрес, а ОТТУДА в ответ говорят стоимость услуги. Результат транслируется покупателю.

      Есть набор данных в табличном виде от полученных ранее результатов запросов на расчет стоимости доставки грузов.

      Полный алгоритм расчета неизвестен.

      Глава первая «Дано, и что с этим делать»

      В более развернутом виде это означает: «у нас есть данные по стоимости некоторых доставок, довольно много. Надо автоматизировать расчет, чтоб по вводным данным стоимость сама считалась»

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

      Имеем только накопленные данные.

      Доставок было 3 разновидности: 

      • «Локальная» – фиксированный перечень близлежащих населенных пунктов.
      • «Ближняя» – дистанция не превышает 100 км.
      • «Дальняя» – дистанция более 100 км.
      • Еще есть услуги грузчиков.

      Часть первая «Локальная доставка»

      t1.png

      Глядя на эту таблицу, понимаем, что линейность прослеживается, но линия ломаная.

      Начальный вес 0-300 кг стоит 350 р. Следующие 300 кг прибавляют к стоимости 150 р. Пока неплохо. Если использовать термин таксистов «подача машины 200 р» и по 150 р за каждые 300 кг. Но дальше хуже – от полутора тонн шаг сетки увеличивается до 500 кг, а шаг стоимости становится 200 р. за каждые 500 кг. В последнем столбце мы видим прирост еще в 500 кг, но стоимость увеличивается уже на 250 р.

      Увы, линейности нет, есть ломаная с двумя изломами. В данном случае проще и более гибко будет всё же использовать табличные данные. Их не так много, а заказчик в дальнейшем сможет поменять значения, если изменится тарификация. Ему не придется предварительно посещать курсы математики и программирования.

      Более того, не известно, что будет, если покупатель вдруг купит больше 4500 кг. А он же может.

      Часть вторая «Ближняя доставка»

      Опять табличка (фрагмент)

      tabl.png

      Вроде понятно, берем стоимость как «по месту» и прибавляем дистанцию из колонки, умноженную на 25.

      Но опять все не настолько линейно.

      Серые строки на вид стоили несколько дороже своих соседей. Это становится более заметно, если отсортировать таблицу по дистанции.

      Правая колонка вне таблицы уже была добавлена мной для изучения этого вопроса.

      В ней мы считаем 

       _указанную_стоимость_ доставки_ – _стоимость_локальной_доставки_ + 25 * _дистанцию_

      Оказывается, есть «биение» в 5 р., наверняка связанное с округлением стоимости до 10 р. 

      А серые строки дороже на 200 ± 5 р.

      На этом этапе можно было бы попробовать прикрутить карту с автоматическим расчетом маршрута (это, кстати, очень дорого для коммерции). Но анализ прописанных в таблице расстояний  показал, что дистанция считается не от точки со складом, а от края зоны «локальной доставки».

      Т.е. у нас где-то есть склад. От него до пункта назначения 30 км. Но если у нас по пути населенный пункт из «локальной доставки» и от его края до целевого пункта 5 км, то наценка добавляется за 5 км дополнительного пути. Ну, как бы всё логично, стоимость доставки до края «Локального тарифа» + еще проехать 5 км. Пусть так, но автоматизация с картой точно отпадает. Берем на заметку.

      Здесь нам пока тоже непонятно, что будет, если клиент закажет больше 4500 кг.

      Часть третья «Дальняя доставка»

      Снова табличка (фрагмент)

      t3.png

      Тут вроде всё просто. Всего 2 градации по весу, только почему-то уже максимальный вес 4 т, ну и ладно. 

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

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

      Задаем вопрос заказчику, он идет спрашивать логистов. Оказывается, это платные участки дорог по пути. Берем на заметку, что и такое бывает.

      Часть четвертая «Грузчики»

      Табличка? ☺

      t4.png

      Выглядит не сразу очевидно. С лифтом дороже. Т.е. еще и лифт поднимать…

      Потом приходит понимание.

      Вторая колонка – стоимость за этаж. Её надо умножать на количество этажей.

      Лифт – это как два этажа. Надо сначала до него дотащить, потом из него вытащить.

      С выгрузкой вроде, всё понятно.

      Глава вторая «Думаем, что с этим всем делать»

      Мы имеем перечень городов. В 1С-Битрикс для этого есть местоположения.

      У городов есть «дистанция» − имеющая отношение к реальности, но с большими оговорками.

      У городов есть «дополнительная стоимость», если по пути платная дорога или другие виды «дополнительных расходов» ☺

      «Дистанцию» и «дополнительную стоимость» мы добавляем к местоположениям.

      Сюда их будет вносить менеджер по мере поступления заказов из новых местоположений.

      Имеющиеся местоположения мы любезно заполняем за счет заказчика. Качественно, долго (но очень быстро), нудно, дорого. ☺

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

      С грузчиками то же самое – по весу разбиваем на итерации. Суммируем результат.

      Давно я не брал в руки шашек… Но придется рисовать блок-схему.

      Рисуем так, чтоб еще и заказчику было более-менее понятно, поэтому «переменные» записываем словами через подчеркивание.

      Также корректируем таблички. В них разрывы диапазонов веса. 

      0-300 р. 301-600 р.

      Это не нормально, потому как 300,5 кг куда девать-то?

      Обговариваем этот пробел, соединяем диапазоны. Получаем 0-300, 300-600 

      Долго составляем подробное ТЗ для программиста.

      Обговариваем нюансы.

      Кодим, отлаживаем, работает!

      Если покупатель из населенного пункта, где есть данные о дистанции, то доставка считается автоматически.

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


      Программист Сергей, WEB-AiM


      WEB-AiM − решим любую, даже самую сложную, задачу.
      Записывайтесь на консультацию, обсудим ваш проект.
      Назад к списку
      • Кейс 15
      • Аудит 9
      • Битрикс24 28
      • Маркетинг 37
      • Ценные советы 20
      8 800 201-07-68
      8 800 201-07-68
      Заказать звонок
      E-mail
      hello@web-aim.ru
      Заказать звонок
      hello@web-aim.ru
      © 2023 WEB-AiM
      Политика конфиденциальности This site is protected by reCAPTCHA and the Google Privacy Policy Terms of Service
      Подписаться на рассылку