Автоматизация отдела доставки с помощью PHP и JavaScript

Данный скрипт легко установить на свой хостинг, поддерживающий PHP, или использовать локально с помощью эмуляторов PHP типа Denwer. Вы сможете при помощи открытого API Яндекс.Карт составлять оптимальный маршрут для своих курьеров, будете знать требуемое время и общий километраж.

На написание данной статьи меня сподвигнул этот стартап:

Вспомнил, что когда то давно, когда у меня были свои водители для доставки по Ростов-на-Дону, сделал тогда себе нехитрый скрипт (php + javascript) для составления оптимального плана доставки, который при необходимости легко разделить на нескольких водителей.

Скачиваете дистрибутив (php + javascript):

И заливаете все содержимое к себе на сайт в отдельную папку, скажем в папку route, далее в адресной строке браузера набираете ваш_сайт.ru/route/, появится такое окно:

Загружаете csv файл c кодировкой utf-8, его в excel можно сделать, нажав "сохранить как" и выбрав там "Текст CSV(.csv)".

В этом списке должно быть всего два поля, полный адрес (включая город) и время стоянки по адресу в минутах. Первой записью должен быть адрес вашего склада, остальные адреса в произвольном порядке. Я например такой список формировал автоматом своей crm.

Нажав кнопку "найти оптимальный маршрут", вы через минуту работы javascript кода получите такой результат:

Ниже будет список оптимальной последовательности адресов:

Можно кликнуть по ссылке "открыть маршрут" и в режиме навигатора начать двигаться по адресам.

Этим скриптом я также начислял водителям компенсацию за использование их автомобиля, заранее рассчитав с конкретным водителем стоимость одного км пробега, исходя из расхода топлива по городу и стоимости планового ТО.

0
92 комментария
Написать комментарий...
Evgeny Latyshev

Денис, а подобная автоматизация с Гуглом может работать? не пробовали?

Ответить
Развернуть ветку
Георгий Рыбаков

Вопрос хоть и не мне, попробую ответить. У Google есть Directions API. (https://developers.google.com/maps/documentation/directions/intro#DirectionsRequests) Через него можно прокладывать маршруты между точками, в т.ч. и оптимальные (при указании optimize:true). Это относится к автомобильным, пешеходным и прочим. Из ограничений: количество запросов в сутки на ключ ограничено (при бесплатном использовании). Из плюшек: есть либы для работы под все основные ЯП.

Когда девушка работала по этой теме, запилил решение на Django + bootstrap/jQuery. Интересовали пешие сотрудники (полевые), поэтому тогда остановился именно на API от Google. Расчет маршрутов по дням (в разные дни - разные маршруты), вывод времени перемещения между точками и расстояние). Расчет как от заданной (первой) начальной точки, так и автоперебор для определения стартовых точек (с привязкой к ближайшим станциям метро).

Можно посмотреть: http://mroute.pythonanywhere.com, логопасс: tanya:tanya (если при расчете будет падать - не пугаться, проблемы с адресами - есть нюансы).

Репо открыто: https://github.com/grybakov/MerchRoutes, по аналогии можно запилить под свое.

Ответить
Развернуть ветку
89 комментариев
Раскрывать всегда