save

запрос save

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

Не рекомендуется создавать более 1000 заказов за один запрос.

Примечание Если вы хотите создать целое расписание из заранее назначенных заказов, вам следует сначала создать отдельные заказы с помощью метода save, а потмом назначить из на нужные даты и машины с помощью метода import.


Входные данные запроса save

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

Секция аутентификации

1

sessionID

Текст


Да


Идентификатор сессии, полученный от сервера после запроса авторизации.

Срок жизни сессии – 5 минут. Если в течении этого времени в рамках сессии были проведены запросы, то срок жизни сессии увеличивается еще на 5 минут

Секция заказов

1

orderReference

Текст

64

Нет

mID6890394

Внешняя ссылка (Поле "Идентификатор заказа" в приложении). Идентификатор заказа не должен содержать символ «*», если в дальнейшем планируется использование метода getOrderStatuses

Примечание Все идентификационные номера заказов, передаваемые в систему с помощью данного метода, должны быть уникальными!

2

areaOfControl

Текст

255

Да

Ногинск

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

Если настроены территории, при создании заказов достаточно указать только адрес расположения клиента, а Максоптра, используя территории, отнесёт тот или иной заказ к соответствующему распределительному центру.

3

date

Дата


Да

12.12.2019

Дата временного окна доставки/сбора.
Формат - “DD.MM.YYYY”.

4

client



Нет



4.1

name

Текст

255

Нет

ИП Нестерова

Наименование заказчика

4.2

contactPerson

Текст

255

Нет

Нестерова Н.П.

Контактное лицо (имя и фамилия)

4.3

contactNumber

Текст

255

Нет

+70000000001

Телефонный номер заказчика или контактного лица

4.4contactEmailТекст255Нетnn75max@gamail.com

Адрес электронной почты клиента.

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

4.5enableSMSNotificationЛогическийtrue/falseНет
Отправлять/не отправлять СМС-уведомления клиентов на уровне заказа. Активировано по умолчанию.
4.6enableEMAILNotificationЛогическийtrue/falseНет
Отправлять/не отправлять Email-уведомления клиентов на уровне заказа. Активировано по умолчанию.

5

location



Да



5.1

name

Текст

255

Да

ИП Нестерова (Вятская 15)

Название местоположения клиента. Поле обязательно, если не указан globalId.

5.2

address

Текст

255

Да*

Москва, ул. Вятская 15

или

помощь.стебель.ставка

Адрес клиента (точки где должна быть произведена разгрузка для заказов вида доставка или погрузка для заказов вида сбор). Поле обязательно если не указан globalId.

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

5.3

latitude

Число

[-90;90]

Нет

55.794178

Географическая широта адреса клиента, если в заказа передаются широта и долгота, то заказ будет расположен строго в соответствии с этими данными

5.4

longitude

Число

[-180;180]

Нет

37.582843

Географическая долгота адреса клиента, если в заказа передаются широта и долгота, то заказ будет расположен строго в соответствии с этими данными

5.5

globalId

Текст

255

Нет

72483236700

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

См. также Идентификатор расположения клиента.

5.6isVerifiedЛогическийtrue/falseНет
Поле отвечает за проставление галочки "местонахождение проверено" в "расположениях клиента". true - галочка установлена, false - не установлена.
5.7enableSMSNotificationЛогическийtrue/falseНет
Отправлять/не отправлять СМС-уведомления клиентов на уровне локации. Активировано по умолчанию.
5.8enableEMAILNotificationЛогическийtrue/falseНет
Отправлять/не отправлять Email-уведомления клиентов на уровне локации. Активировано по умолчанию.
5.9consignmentReferenceЧисло111

Да

(для заказов Pickup & Delivery)

2486238149881481216

Номер группового заказа. Предоставляется из CRM клиента.

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

См. подробне в разделе Функциональность Pickup & Delivery.

5.10consignmentLinkTypeТекстPickupAndDelivery

Да

(для заказов Pickup & Delivery)

PickupAndDelivery

Тип связи между заказами. Данное поле явлется обязательным, если указан ConsignmentReference. Если тип связи не указан, то групповой заказ не формируется, и связанные заказы рассматриваются системой как два одиночных заказа.

См. подробне в разделе Функциональность Pickup & Delivery.

6schedulingZoneNameТекст255НетАПоле отвечает за привязку к территории. Если поле не заполнено, происходит привязка к территории по координатам.

7

vehicleRequirements



Нет



7.1.vehicleRequirement

Нет

7.1.1

name

Текст

255

Нет

Загрузка сзади

Наименование требования к транспортным средствам.

8

dropWindows



Да


Конструкция, содержащая информацию о допустимых окнах для разгрузки/погрузки товара на территории клиента. Каждая должна содержать в себе минимум одну конструкцию dropWindow, ее описание приведено ниже. Если заказ имеет несколько допустимых окон, то заказ должен содержать несколько конструкций dropWindow вложенных в одну dropWindows.

Для многодневного планирования заказов следует указать временные окна с разными датами.

ПРИМЕЧАНИЕ!

В Максоптре доступна опция под названием Time window auto-replacement (Автозамена временных окон), которая позволяет использовать временные окна расположения клиента по умолчанию. Тогда (при включенной опции) поля dropWindows становятся необязательными. Если вам нужно подключить данную опцию, обратитесь в службу технической поддержки Максоптры.

В случае же, если вы хотите указать временные окна, отличающиеся от времени работы расположения клиента, используйте поля dropWindows.

8.1

dropWindow



Да


Конструкция, содержащая информацию об одном окне для разгрузки/погрузки товара на территории клиента. Должна содержать в себе 2 параметра: start и end, описание параметров приведено ниже.

Для многодневного планирования заказов укажите временные окна с разными датами.

8.1.1

start

Дата и время


Да

12/12/2019 8:00

Начало временного окна для работы в пункте назначения. Формат - “DD/MM/YYYY HH:MM”.

8.1.2

end

Дата и время


Да

12/12/2019 20:00

Окончание временного окна для работы в пункте назначения. Формат зависит от локализации в конфигурации аккаунта. Например, для Англии формат - “DD/MM/YYYY HH:MM”. Для России - “ДД.ММ.ГГГГ ЧЧ:ММ”

9

priority

Число

1

Нет

3

Приоритет заказа. Возможные значения: 1, 2, 3. Значения определяют приоритет по следующей шкале:

1 – Низкий

2 – Средний

3 – Высокий

Если значение будет пропущено, то в системе заказу автоматически будет проставлен "Средний" приоритет.

Подробне см. в разделе Уровни приоритетности заказов.


10

durationDrop

Время


Нет

00:15

Продолжительность разгрузки/погрузки у клиента, формат: ЧЧ:ММ

11

price

Число

255

Нет

3500.00

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

12

capacity

Число


Нет

1000

Первая единица измерения заказа, конфигурируется для каждого аккаунта отдельно. По умолчанию - Вес заказа

13

volume

Число


Нет

100

Вторая единица измерения заказа, конфигурируется для каждого аккаунта отдельно. По умолчанию - Объем заказа

14

collection

Логический

true/false

Нет


Признак определяющий вид заказа. Возможные значения: true/false.

Если указан true, создается заказ вида сбор, Если указан false, создается заказ вида доставка.

В случае отсутствия значения, автоматически будет проставлено значение false и создан заказ вида доставка.

15

additionalInstructions

Текст

255

Нет

Проверить целостность упаковки

Дополнительные инструкции

16

orderItems






16.1

orderItem





Товары - это отдельные позиции, входящие в один заказ (см.Параметр "Товары"). Раздел orderItems метода save состоит из нескольких полей: name, barcode, externalId, costPerUnit, quantity, description (см. ниже). Ни одно из этих полей не является обязательным. Если в заказе несколько товаров, каждый товар должен быть записан в отдельном тэге.

16.1.1

name

Текст

255

Нет

Шампанское "Лев Голицин", полусладкое

Наименование товара

16.1.2

barcode

Текст

255

Нет

3573994003328

Штрих-код товара (если есть).

16.1.3externalIdТекст255НетЛГШ05Внешний идентификатор заказа (если есть).
16.1.4costPerUnitТекст255Нет259.00Цена за единицу товара (напр. за штуку, кг, коробку и т.д.)
16.1.5quantityТекст255Нет20Запланированное колчиество товаров в составе заказа, которое необходимо доставить клиенту.
16.1.6descriptionТекст255НетНе бросатьДополнительные сведения о товаре

17

dynamicAttributes



Нет


Данная секция может включать в себя перечень уникальных полей которые были добавлены для конкретного аккаунта через дополнительную конфигурацию

17.1

attribute






17.1.1

Атрибут “name”


255


Номер EMEI

Название дополнительного поля

17.1.2

Атрибут “value”


255


490154203237518

Значение для дополнительного поля

18

stopSequence

Текст


Нет

any

Предпочтительное положение в рейсе при составлении расписания. Возможные значение:

  • first – заказ должен выполняться первым
  • last – заказ должен выполняться последним
  • any – заказ может находиться на любой позиции в рейсе. Данное значение указывается по умолчанию

Редактирование заказов через API

Через API вы можете редактировать запланированные, но НЕЗАФИКСИРОВАННЫЕ заказы. До того, как расписание будет зафиксировано, вы можете поменять любые параметры заказа, не влияющие на планирование. Данный параметр обновится в Максоптре автоматически.

Редактируемые параметры заказов через API:

  • Товары
  • Дополнительные указания
  • Заказчик
  • Контактное лицо
  • Телефон контакта
  • E-mail контакта
  • Динамические атрибуты

Нередактируемые параметры заказов через API:

  • Идентификатор заказа (наименование заказа) - На самом деле, вы можете отредактировать номер заказа, но в этом случае система просто создаст новый заказ с теми же параметрами.
  • Склад (распределительный центр)
  • Куда (адрес заказа)
  • Дата
  • Приоритет
  • Требования к ТС
  • Территория
  • Порядок в маршруте
  • Временные окна операции
  • Вес/Объём
  • Продолжительность операции
  • Тип заказа (сбор/доставка)

Если вы попытаетесь обновить через API поля, которые не разрешены к редактированию у запланированных заказов, появится ошибка: 1103 - "Заказ с таким идентификатором уже запланирован". Вам придется отпланировать заказ, отредактировать его, а затем запланировать заново.

Подробнее см. в разделе Редактирование запланированных заказов.


Пример запроса save

Заголовки:

Метод: POST

URL: [account-name].maxoptra.com/rest/2/distribution-api/orders/save

Структура: application/xml


XML (тело запроса):

<?xml version="1.0" encoding="UTF-8"?>
<apiRequest>
   <sessionID>8aa519d2c0af4f37a27a42a995528199</sessionID>
   <orders>
      <order>
         <orderReference>Test 001</orderReference>
         <areaOfControl>РЦ Самара</areaOfControl>
         <date>25.12.2014</date>
         <client>
            <name>ООО "Александр"</name>
            <contactPerson>Александр</contactPerson>
            <contactNumber>+7 927 123 45 67</contactNumber>
            <contactEmail>sergey@mail.ru</contactEmail>
         </client>
         <location>
            <name>Офис ООО "Александр"</name>
            <address>Россия, Самара, проспект Ленина, 14</address>
            <latitude>53.696</latitude>
            <longitude>-2.653</longitude>
            <globalId>1234567890</globalId>
            <isVerified>true</isVerified>
         </location>
         <schedulingZoneName>Center</schedulingZoneName>
         <vehicleRequirements>
            <vehicleRequirement name="Заморозка" />
            <vehicleRequirement name="Side-loading" />
         </vehicleRequirements>
         <dropWindows>
            <dropWindow>
               <start>25.12.2014 08:00</start>
               <end>25.12.2014 12:00</end>
            </dropWindow>
            <dropWindow>
               <start>25.12.2014 13:00</start>
               <end>25.12.2014 19:00</end>
            </dropWindow>
            <dropWindow>
               <start>26.12.2014 08:00</start>
               <end>26.12.2014 12:00</end>
            </dropWindow>
            <dropWindow>
               <start>26.12.2014 13:00</start>
               <end>26.12.2014 19:00</end>
            </dropWindow>
         </dropWindows>
         <priority>1</priority>
         <durationDrop>02:10</durationDrop>
         <capacity>55</capacity>
         <volume>1</volume>
         <collection>false</collection>
         <additionalInstructions>Дополнительные рекоммендации</additionalInstructions>
         <stopSequence>Последний</stopSequence>
         <orderItems>
            <orderItem>
               <name>Пакет1</name>
               <barcode>6543216884</barcode>
            </orderItem>
            <orderItem>
               <name>Пакет2</name>
               <barcode>6111111114</barcode>
               <externalId>test_1</externalId>  
               <costPerUnit>50</costPerUnit>  
               <quantity>10</quantity>   
               <description>Оставить перед дверью</description>
            </orderItem>
            <orderItem>
               <name>Пакет3</name>
               <barcode>666666686454666</barcode>
               <externalId>test_2</externalId>  
               <costPerUnit>30</costPerUnit>
               <quantity>20</quantity>
               <description>Не кантовать!</description>
            </orderItem>
         </orderItems>
         <dynamicAttributes>
            <attribute name="Manager" value="Антон Васильев" />
            <attribute name="Code" value="1234" />
         </dynamicAttributes>
      </order>
   </orders>
</apiRequest>

ответ save

Для создания и редактирования заказа в текущем решении API использует структуру application/xml  в качестве структуры ответа.

Выходные данные ответа save

#

Название поля

Описание

1

orderReference

Внешняя ссылка (Поле «Идентификатор заказа» в Максоптре)

2

status

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

3

errors


3.1

error


3.1.1

errorCode

Код ошибки. Возможные значения представлены в разделе "Коды ошибок и предупреждений".

3.1.2

errorMessage

Описание ошибки. Возможные значения представлены в разделе "Коды ошибок и предупреждений".

4

warnings


4.1

warning


4.1.1

warningCode

Код предупреждения Возможные значения представлены в разделе "Коды ошибок и предупреждений".

4.1.2

warningMessage

Описание предупреждения. Возможные значения представлены в разделе "Коды ошибок и предупреждений".


Пример ответа save

<?xml version="1.0" encoding="UTF-8"?>
<apiResponse>
   <orders>
      <order>
         <orderReference>Order 001</orderReference>
         <status>Created</status>
         <errors>
            <error>
               <errorCode />
               <errorMessage />
            </error>
         </errors>
         <warnings>
            <warning>
               <warningCode />
               <warningMessage />
            </warning>
         </warnings>
      </order>
   </orders>
</apiResponse>


*Следует отметить что предупреждения не влияют на создание заказа и несут в себе исключительно информационную нагрузку.



См. также

Методы API. Заказы

import

Статусы заказов

Статусы операций создания, редактирования и удаления заказов

Коды ошибок и предупреждений

Редактирование запланированных заказов

Управление настройками уведомлений

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

Параметр "Товары"