Функциональность Pickup & Delivery



Иногда, для построения оптимальной логистики нашим клиентам не хватает возможности развозки только с одного склада. Например:

  1. У компании есть центральный склад, с которого происходит развоз товара по конечным клиентам. При этом, часть товара нужно забрать из магазинов, чтобы в тот же день развести по клиентам;
  2. У компании есть центральный склад + набор дополнительных складов, с которых также можно забирать товар. Машина стартует с центрального склада и по ходу маршрута может заезжать на дополнительные склады для дозагрузки.

В этих случаях сбор и доставка должны рассматриваться как один групповой заказ. Именно для таких операций в Maxoptra существует функциональность Pickup & Delivery, позволяющая состыковывать подобные заказы в одном рейсе

Примечание Данная опция отключена по умолчанию. Для подключения обращайтесь в службу поддержки Maxoptra.

Групповой заказ в Максоптре

В большинстве случаев заказы импортируются в Максоптру через систему CRM (система управления информацией о клиентах) заказчика. Для более эффективного управления заказами типа Pickup & Delivery, мы вводим в обиход Максоптры новое понятие под названием «Групповой заказ», которое означает группу связанны заказов, объединенных одним общим номером (идентификатором). Таким образом, вам не нужно присваивать идентификатор для каждого отдельного связанного заказа в группе – вам достаточно указать один идентификатор группового заказа

Примечание

  • Идентификатор группового заказа должен быть уникальным в рамках одного аккаунта (для всех РЦ одного аккаунта);
  • В данный момент групповой заказ может включать в себя только два заказа разных типов (1 сбор + 1 доставка). В дальнейшем функциональность будет расширена более сложными комбинациями заказов. 

Методы API

Для поддержания функциональности Pickup & Delivery, были произведены следующие изменения в методах API.

МетодИзменение
save (существующий)

Добавлены два новых поля:

  • <consignmentReference>
  • <consignmentLinkType>

См. раздел save.

getConsignment (новый)

При использовании данного метода будет возвращаться информация о заказах, входящих в групповой заказ, по его идентификатору.

Подробнее см. в разделе getConsignment.

deleteConsignment (новый)

Данный метод применяется для удаления всех заказов, входящих в групповой заказ, по его идентификатору.  

Подробнее см. в разделе deleteConsignment.

Рассмотрим, как работает API для заказов типа Pickup & Delivery на нескольких примерах.

Мы рекомендуем придерживаться исключительно нижеописанного алгоритма действий при работе с API для заказов типа Pickup & Delivery.

Пример 1. Импорт и планирование единичных заказов

Это обычный алгоритм сохранения и планирования единичных заказов. Пропишите необходимую информацию о заказе в методе save, за исключением двух новых полей– ConsignmentReference и LinkType. После этого вы можете запланировать заказ(ы) либо через интерфейс Максоптры (Экран планирования), либо с помощью метода start.

Пример 2. Импорт и планирование заказов типа Pickup & Delivery 

Для правильной конфигурации заказов типа Pickup & Delivery через API, необходимо провести некоторую подготовительную работу. Независимо от того, как связанные заказы представлены в вашей CRM, их нужно «перевести» на язык, понятный для Максоптры, т.е., привести заказы к виду группового заказа “сбор + доставка”.

1. Первый шаг – это формирование правильного запроса через метод API save. Сначала вы, как обычно, прописываете всю обязательную информацию о заказах. Будьте внимательны при указании адреса и времени доставки (сбор должен быть раньше доставки).

Кроме того, следует указать, что данные заказы входят в группу заказов. Для этого пропишите данные в новые поля:

  • ConsignmentReference – здесь указывается номер (идентификатор) группового заказа. Этот номер вы должны сгенерировать сами. Можно взять из вашей CRM.
    Примечание Идентификатор группового заказа должен быть уникальным в рамках аккаунта.

  • LinkType – здесь указывается тип связи между заказами, а именно – “PickupAndDelivery”. Данное поле является обязательным, если присутствует ConsignmentReference. Если LinkType не указан, то групповой заказ не будет сгенерирован, и связанные заказы будут рассматриваться как единичные.

Рассмотрим пример API запроса и ответа по методу save.

У нас есть два заказа из CRM:

1)  Заказ номер 2311_1 необходимо забрать по адресу Вятская улица 16, Москва, дата 19.03.2019, время 05:00-23:59;

2)  Заказ номер 2311_2 необходимо отвезти по адресу Васильевская улица 35, Москва, дата 19.03.2019, время 05:00-23:59.

Пример запроса save для заказов Pickup & Delivery
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<apiRequest>
<sessionID>52EBB98234EE0B247BCBA21C038CCA48</sessionID>
<orders>
<order>
<orderReference>2311_1</orderReference>
<areaOfControl>Москва</areaOfControl>
<date>19.03.2019</date>
<location>
 <name>Вятская улица 16</name>
 <address>Вятская улица 16, Москва </address>
 </location>
 <consignmentReference>111</consignmentReference>
  <consignmentLinkType>PickupAndDelivery</consignmentLinkType>
 <collection>true</collection>
 <dropWindows>
          <dropWindow>
             <start>19.03.2019 05:00</start>
             <end>19.03.2019 23:59</end>
          </dropWindow>
       </dropWindows>
<priority>1</priority>
<additionalInstructions></additionalInstructions>
</order>
 <order>
<orderReference>2311_2</orderReference>
<areaOfControl>Москва</areaOfControl>
<date>19.03.2019</date>
<location>
 <name>Васильевская улица</name>
 <address>Васильевская улица 35, Москва</address>
 </location>
 <consignmentReference>111</consignmentReference>
  <consignmentLinkType>PickupAndDelivery </consignmentLinkType>
   <collection>false</collection>
 <dropWindows>
          <dropWindow>
             <start>19.03.2019 05:00</start>
             <end>19.03.2019 23:59</end>
          </dropWindow>
       </dropWindows>
<priority>1</priority>
<additionalInstructions></additionalInstructions>
</order>
</orders>
</apiRequest>
Пример ответа save
<?xml version='1.0'encoding='UTF-8' standalone='yes' ?>
<apiResponse version="1.0">
<orders>
<order>
<orderReference>2311_1</orderReference>
<status>Created</status>
</order>
<order>
<orderReference>2311_2</orderReference>
<status>Created</status>
</order>
</orders>
</apiResponse>
Пример ошибки 1
<order>
<orderReference>2311_1</orderReference>
<status>Error</status>
<errors>
<error>
<errorCode>1214</errorCode>
<errorMessage>
<![CDATA[
"Invalid value for parameter: Consignment has more than two orders"]]>
</errorMessage>
</error>
</errors>
</order>
Пример ошибки 2
</order>
<order>
<orderReference>2311_3</orderReference>
<status>Error</status>
<errors>
<error>
<errorCode>1214</errorCode>
<errorMessage>
<![CDATA["Invalid value for parameter: Link type is not specified"]]>
</errorMessage>
</error>
</errors>
</order>

2. После того, как заказы были заимпортированы в Максоптру, их можно запланировать в обычном порядке с помощью метода start и отпланировать с помощью метода unallocate. Заказы, принадлежащие к одному групповому заказу, будут планироваться и отпланироваться вместе.

3. Для того, чтобы удалить один из заказов в группе, воспользуйтесь методом delete. В этом случае удалится только один заказ, а второй останется в качестве единичного заказа.

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

Примечание Удаление группового заказа возможно лишь пока он не был запланирован.

5. Для получения информации о заказах, входящих в групповой заказ, используйте новый метод getConsignment.

Импорт через .csv-файл

В csv-файле импорта заказов были добавлены два поля:

  • consignmentReference – идентификатор группового заказа (из CRM);
  • consignmentLinkType – тип связи между заказами (“PickupAndDelivery”).

Пример csv-файла с новыми колонками:

Примечания

  • Поле orderReference можно не заполнять, достаточно заполнить consignmentReference;
  • Значения поля capacity для двух заказов одной группы должны быть одинаковыми, поскольку это один и тот же груз.

Также см. Импoрт заказов. Параметры и требования к файлу импорта.

Создание "групповых заказов" вручную

В форме Заказа было добавлено новое поле под названием Групповой заказ (см. раздел Параметры заказа).

Для того, чтобы назначить пару Pickup & Delivery заказов:

1.Нажмите на кнопку +Добавить связь напротив поля Групповой заказ

Откроется следующий раздел:

В поле Идентификатор группового заказа указан номер группового заказа. Номер генерируется автоматически. Если же групповой заказ импортируется через API или csv-файл, вы должны указать идентификатор сами (из своего CRM). 

2. В поле Связанный заказ выберите соответствующий заказ из выпадающего меню. 

3. Если вы не нашли нужный заказ в списке, вы можете создать его здесь же. Для этого нажмите на кнопку Создать новый рядом с полем Связанный заказ.

Откроется пустая форма Заказа, которую необходимо заполнить. Номера Идентификатора группового заказа и связанного заказа уже указаны.

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

Примечание: В групповой заказ могут включаться только два связанных заказа.

4. Сохраните изменения.

Заказы Pickup & Delivery на экране планирования

Связанные заказы с одним групповым идентификатором будут планироваться/отпланироваться/ перепланироваться вместе в одном рейсе; сборы будут планироваться до доставок. С помощью иконки «цепочка»  (Связанные заказы) в меню действий с картой можно визуализировать связь двух заказов на карте.


Запустите автопланирование. Система запланирует связанные заказы в один рейс. При ручном перетаскивании из таблицы Незапланированных заказов на график Гантта, оба связанных заказа будут запланированы в один рейс. Любое передвижение одного из связанных заказов на экране планирования (в графике или на карте) автоматически отразится на втором заказе.

В случае неверной последовательности заказов сбора и доставки, заказы будут подсвечиваться розовым и сопровождаться предупреждением: Неверный порядок Pickup&Delivery заказов.



См. также

Параметры заказа

Импoрт заказов. Параметры и требования к файлу импорта.

save

getConsignment

deleteConsignment

Панель инструментов