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

 

Все возможные атрибуты для performer:

  • externalId
  • login (обязательный – по нему ищем водителя при апдейте)
  • password  (обязательный для нового водителя)
  • name (обязательный)
  • email (обязательный)
  • phone
  • comments
  • priceForOneHour (обязательный)
  • breakShift (обязательный только если включены фиксированные обеды)
  • areaOfControl (обязательный)
  • allowDailyDrivingLimit
  • dailyDrivingLimit
  • allowDailyWorkingLimit
  • dailyWorkingLimit
  • scheduleZonesId

Все возможные атрибуты для availability:

...


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

Название поляТипДлинаОбязательноеПримерыОписание
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Нет

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

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

dailyDrivingLimit

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

allowDailyWorkingLimit

Логический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

...

 

Значения для startDayShift и endDayShift:

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

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

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

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

  

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

...

2.2fromВремя[00:00;23:59]Да
Время начала рабочего дня водителя: с ... часов
2.3toВремя[00:00;23:59]Да
Время окончания рабочего дня водителя: до ... часов
2.4startDayShift Число255Нет08:00

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

  • -1 (предыдущий день)
  • 0 (текущий день)
  • если не задан, то считается что выбран текущий день.
2.5endDayShiftЧисло255Нет20:00

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

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

Нет

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

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

3.1nameТекст255НетАНазвание территории
4startLocation
255Нет
Блок информации об адресе начала рабочего дня. Если start location не используются, не заполнять данный блок

...

  • name – имя локации
  • address – адрес локации
  • latitude - долгота
  • longitude - широта

 

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

 

причина

ошибка

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"

 

 

.
4.1addressТекст255Даул.Панфилова 42, Химки, РоссияАдрес начала рабочего дня.
4.2latitudeЧисло[-90;90]Нет55.896023Долгота
4.3longitude Число[-180;180]Нет37.431775Широта
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 timeZone="Greenwich Mean Time" timeZoneOffset="GMT+0:00" currency="POUND" distanceUnits="MILE" speedUnits="MILES_PER_HOUR" durationUnits="MINUTE" weightUnits="Kg" volumeUnits="m3"/>

           <performers>                   

           <performer name="Driver_API_3782387" phone="00000" email="Driver_API_3782387@gmail.com"

...


<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>

           </performer>           

          </performers>

        </performersDetails>

       </apiRequest>

Ответ, если все прошло хорошо:

 

...


            </availabilities>
            <zones>
               <zone name="Center" />
            </zones>
         </performer>
      </performers>
   </performersDetails>
</apiRequest>


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

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

...

   <performers>

      <performer>

         <name>Driver_API_3782387</name>

         <login>Driver_API_3782387121</login>

      </performer>

   </performers>

</apiResponse>

 

Экспорт водителей

rest/2/distribution-api/objects/exportPerformers

 

Содержит параметр sessionID

 rest/2/distribution-api/objects/exportPerformers?sessionID=a5fad852a18149468d1b9845bbd8e1a8

 

Возвращает ответ

<apiResponse version="1.0">

   <performersDetails>

      <units timeZone="GMT+01:00" timeZoneOffset="GMT+1:00" currency="POUND" distanceUnits="MILE" speedUnits="MILES_PER_HOUR" durationUnits="MINUTE" weightUnits="units"/>

      <performers>

         <performer name="Andy Marey" externalId="2675d0e99a1047e6bd0ebafc326bb939" email="andy@magenta.com" login="andy" passwordHash="42767516990368493138776584305024125808" maxWorkingHours="40" allowedOvertimePerWeek="0" priceForOneHour="0" dailyDrivingLimit="480" allowDailyDrivingLimit="false" dailyWorkingLimit="660" allowDailyWorkingLimit="false" breakShift="0" areaOfControl="FrogwellZone">

            <homeLocation name="Frogwell" address="Drake Crescent, Chippenham, Wiltshire, SN14, GB" latitude="51.453891" longitude="-2.148895"/>

            <availabilities>

               <availability weekDay="thursday" from="06:00" to="22:00" fixedDayStart="false"/>

            </availabilities>

         </performer>

      <performersDetails>

...


   <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"