Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


запрос importPerformers

Запрос используется для импорта водителей (Performers) в систему. Для импорта водителей по API используется структура application/xml и HTTP-метод POST.


URL: [account-name].maxoptra.com/rest/2/distribution-api/objects/importPerformers 


Список поддерживаемых атрибутов:

Название поляТипДлинаОбязательноеПримерыОписание
1performer
   




Блок информации о водителе
1.1

externalId

Текст255НетПетр УваровВнешний идентификатор водителя.
1.2login Текст
 
255Даdriver03Логин водителя для входа в систему. Логин должен быть уникальным для каждого водителя.
1.3password  Текст
 
255Да12345678Пароль пароль для входа в систему
1.4nameТекст255ДаПетр УваровИмя водителя
1.5emailТекст255Даdriver03@gmail.comАдрес электронной почты водителя
1.6phoneТекст255Нет+75554378200Номер телефона водителя
1.7commentsТекст255Нет
Комментарии

Высокий, носит очки
Дополнительная информация о водителе
1.8priceForOneHourЧисло255Да100Стоимость одного часа работы
1.9breakShiftЧисло255Да
Обязательно, если включены фиксированные обеды. Сдвиг обеда
30Величина на которую обед может быть автоматически сдвинут при составлении маршрута. Данный параметр обязателен только если аккаунт настроен на работу со статическими обедами.
1.10areaOfControlТекст255Да
Распределительный центр
НогинскНаименование распределительного центра, которому принадлежит водитель
1.11

allowDailyDrivingLimit

Логическийtrue / falseНет
Лимит на вождение за смену. Значения: true / false.

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

  • 1 (иcпользуется)
  • 0 (не используется)
1.12

dailyDrivingLimit

Число[1;4320]Нет
Значение лимита за смену (указывается
360Максимально допустимая длительность вождения в минутах
)
1.13

allowDailyWorkingLimit

Логическийtrue / falseНет
Продолжительность работы за смену. Значения: true / false.

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

  • 1 (иcпользуется)
  • 0 (не используется )
1.14

dailyWorkingLimit

Число[1;4320]Нет720
Продолжительность
Максимально допустимая длительность рабочего дня за смену
(указывается
в минутах
).
1.15

scheduleZonesId

Число
 
255Нет
Идентификатор территории планирования, которую может обслуживать данный водитель
1.16allowRunTimeLimitЛогическийtrue / falseНет

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

  • 1 (иcпользуется)
  • 0 (не используется )
1.17runTimeLimitЧисло[1;4320]Нет
Максимально допустимая длительность рейса в минутах
2availability
  


Да
Блок информации о графике работы водителя
2.1weekDayТекст
 
255ДаmondayДень работы. Возможные значения: sunday, monday, tuesday, wednesday, thursday, friday, saturday
2.2fromВремя[00:00;23:59]Да
Начало

Время начала рабочего дня водителя: с ... часов
2.3toВремя[00:00;23:59]Да
Окончание

Время окончания рабочего дня водителя: до ... часов
2.4startDayShift Число
 
255Нет
Значение 0 или -1,
08:00

День начала рабочей смены относительно заданного в атрибуте “weekDay” дня недели. Возможные значения:

  • -1 (предыдущий день)
  • 0 (текущий день)
  • если не задан
-
  • , то считается что выбран текущий день.

-1: предыдущий день

0:  текущий день

2.5endDayShiftЧисло
 
255Нет

Значение 0 или 1 или 2, если не задан - считается что текущий день

0:  текущий день

1: следующий день

2: плюс два дня
20:00

День окончания рабочей смены относительно заданного в атрибуте “weekDay” дня недели. Возможные значения:

  • 0 (текущий день)
  • 1 (следующий день)
  • 2 (текущий день + 2)
  • 3 (текущий день + 3)
  • 4 (текущий день + 4)
  • если не задан, то считается что выбран текущий день.
2.6breakFrom   Число[00:00;23:59]Да
Обязательный при указании breakTo
*10:00Время начала обеда. Данный параметр обязателен только, если аккаунт настроен на работу со статическими обедами. Данный параметр обязателен, если заполнен параметр “breakTo”. Означает - Обед с ...
2.7breakTo     Число[00:00;23:59]Да
Обязательный при указании breakFrom
*10:45Время окончания обеда. Данный параметр обязателен только, если аккаунт настроен на работу со статическими обедами. Данный параметр обязателен, если заполнен параметр “breakFrom”. Означает - Обед до ...
2.8fixedDayStart 
 

[0;1]Нет
Фиксированное начало рабочего дня
3zone
   


Нет

Блок, в котором указывается территория, в которой может работать водитель (см.Территории / Группы территорий)

Примечание Данный раздел не обязателен для включения в API запрос. НО если вы все-таки влкючили его в запрос, вы должны заполнить его ОБЯЗАТЕЛЬНО!

3.1nameТекст255НетАНазвание территории
4
start location
startLocation
255Нет
Блок информации об адресе начала рабочего дня. Если start location не используются, не заполнять данный блок.
4.1
startLocation
addressТекст255Да
Адрес локации
ул.Панфилова 42, Химки, РоссияАдрес начала рабочего дня.
4.2latitudeЧисло[-90;90]Нет55.896023Долгота
4.3longitude Число[-180;180]Нет37.431775Широта
5home location  
4.4onlyWithDeliveriesЛогическийtrue/falseНет
False является эквивалентом значения Посетить перед первой Доставкой в форме водителя . False используется по умолчанию.
5homeLocation

Нет
Блок информации об адресе возврата в конце дня. Если home location не используются, не заполнять данный блок.
5.1addressТекст255Даул.Панфилова 42, Химки, РоссияАдрес
локации
возврата в конце дня.
5.2latitudeЧисло[-90;90]Нет55.896023Долгота
5.3longitude Число[-180;180]Нет
Широта

...

37.431775Широта
5.4onlyWithCollectionsЛогическийtrue/falseНет
False является эквивалентом значения Посетить после последнего сбора в форме водителя . False используется по умолчанию.
5.5endDayOnLastOrderЛогическийtrue/falseНет
Используется, если маршрут заканчивается на последнем заказе. False используется по умолчанию. Если не указан адрес возврата в конце дня (address), маршрут закончится в распределительном центре (areaOfControl).


Метод importPerformers ищет по логину водителя. Если логин найден, то содержание всех полей обновляется. Если нет, то в системе создается новый водитель.

Значение полей dailyDrivingLimit и dailyDrivingLimit имеют смысл только при наличии включенных полей allowDailyDrivingLimit и allowDailyWorkingLimit соответственно 


Пример (перечислены все доступные поля):

Code Block
languagexml
<?xml

...

 version="1.0"

...

 encoding="UTF-8"

...

?>

...

    <apiRequest>

        <sessionID>6345e0588e384fc4acc3a2e63e9a4d39</sessionID >

              <performersDetails>

<units />

           <performers>                   

...


<apiRequest>
   <sessionID>6345e0588e384fc4acc3a2e63e9a4d39</sessionID>
   <performersDetails>
      <units />
      <performers>
         <performer name="Водитель Иванов"

...

 phone="555-437-82"

...

 email="ivanov_magenta_voditel@gmail.com"

...

 login="Driver_API_3782387121"

...

 password="

...

12345678"

...

 comments

...

=

...

"Высокий, носит очки."

...

 priceForOneHour

...

=

...

"10.5"

...

 breakShift="30"

...

 dailyDrivingLimit="720"

...

 allowDailyDrivingLimit="1"

...

 dailyWorkingLimit="720"

...

 allowDailyWorkingLimit="1"

...

 areaOfControl="chippenhamzone"

...

 scheduleZonesId="71"

...

 externalId="1234567890qwerty"

...

>
            <startLocation address="10 Bishops Park Road, London, SW6 6DZ" latitude="" longitude="" onlyWithDeliveries="false" />

...


            <homeLocation address="Drake Crescent, Chippenham, Wiltshire, SN14, GB"

...

 latitude="51.453891"

...

 longitude="-2.148895" onlyWithCollections="true"/>

...

                 <availabilities>

...


            <availabilities>
               <availability weekDay="monday"

...

 from="05:00"

...

 to="19:00"

...

 breakFrom="10:00"

...

 endDayShift="0"

...

 breakTo="10:45" />

...


               <availability weekDay="thursday"

...

 from="04:30"

...

 to="19:00"

...

 breakFrom="10:00"

...

 breakTo="10:45" />

...


               <availability weekDay="friday"

...

 from="06:30"

...

 to="19:00"

...

 breakFrom="10:00"

...

 breakTo="10:45" />

...


               <availability weekDay="saturday"

...

 from="05:00"

...

 to="19:00"

...

 breakFrom="10:00"

...

 breakTo="10:45" />

...


               <availability weekDay="sunday"

...

 from="05:00"

...

 to="19:00"

...

 breakFrom="10:00"

...

 breakTo="10:45" />

...


            </availabilities>

...

<zones>

...


            <zones>
               <zone name="Center" />

...


            </zones>

...

           </performer>           

          </performers>

        </performersDetails>

...


         </performer>
      </performers>
   </performersDetails>
</apiRequest>


Ответ при успешном импорте:

Code Block
language

 

...

xml
<?xml version="1.0" encoding="UTF-8"?>
<apiResponse version="1.0">

...

   <performers>

      <performer>

         <name>Водитель Иванов</name>

         <login>Driver_API_3782387121</login>

      </performer>

   </performers>

</apiResponse>

...


   <performers>
      <performer>
         <name>Водитель Иванов</name>
         <login>Driver_API_3782387121</login>
      </performer>
   </performers>
</apiResponse>


Возможные ошибки:

 

причина

ошибка

1

При указании некорректного sessionID

1009 - "Provided credentials are invalid"

2

При отсутствии обязательного параметра

1230 - "Parameter is required: %name%", name – имя отсуствующего параметра

3

При некорректном вводе email

1232 - "Invalid value for e-mail: %wrongname%"

4

При вводе некорректных значений

1107 - "Field type is incorrect: %name% = %valuename%. Expected %expectedtype% type"

5

При вводе несуществующего DC

1203 - "Area Of Control was not found"

6

При запросе к DC, на которое у пользователя нет прав

1019 - "User with provided credentials doesn't have AoC access or AoC doesn't exist"

7

При отсутствии одного из полей breakFrom или breakTo, когда одно из них задано

1231 - "Invalid value for break, both values breakFrom and breakTo are required"

8

Пустое значение password при редактировании водителя

1233 - "The value for password is empty"

9Водитель и депо принадлежат разным территориям1217 - "Invalid value for scheduleZonesString"
10В случае не корректного сочетания начальной и конечной точки маршрута1317 - "Invalid parameters in start\end point sections"