841
правка
Изменения
API
,→Установка статуса согласования заказа
|[[Файл:prestashop.png|center|x60px]]
|style="text-align: center;"|[https://courierexe.ru/download/api/prestashop.zip Скачать]
|Поддерживает версии 1.5.2.0 и выше. Инструкция в архивеПодробнее см. [[PrestaShop|описание]].
|-
|[[Файл:OpencartOCStore.png|center|x60px]]
* при запросе измененных статусов ОБЯЗАТЕЛЬНО нужно подтверждать успешное получение запросом [[#Передача только изменившихся статусов|commitlaststatus]].
* вы должны знать номера заказов, которые вы отправили. Не нужно перебирать номера всех заказов или брутфорсом перебирать все возможные номера.
* нужно проверять с каким ответом возвращаются ваши АПИ-запросы. Если мы отвечаем ошибкой, то даже запрос на создание нового заказа учитывается в количестве запросов.
Мы абсолютно уверены, что данные ограничения на порядки превосходят необходимые объемы предоставления сервиса для решения любых задач. Если у вас возникают проблемы, вы не знаете, как уложиться в эти рамки — спросите у нас, мы обязательно поможем!
* '''order''' — Контейнер для описания одного заказа, обязательный элемент. В одном контейнере '''neworder''' может быть много контейнеров '''order''' для создания нескольких заказов одним запросом.
:* '''''orderno''''' — Номер заказа. Если присваивается клиентом — указывается здесь. Если не присваивается — можно оставить пустым, система сгенерирует свой номер, и вернет его в ответе. Система проверяет '''у клиента''' наличие заказов с указанным номером в '''пределах текущего календарного года''', которые '''не являются недоставленными''', и в случае их существования — заказ создан не будет, а в ответе вернется ошибка 17 «Such number exists». Если не указан штрихкод (поле barcode), и значение поля подходит для использования его в качестве штрихкода, данное значение будет скопировано в поле «Штрихкод». Это накладывает ограничения в частности, на длину указанного поля (25 знаков, чтобы работали стандартные печатные формы).
* '''barcode''' — Штрихкод заказа. Если клиент штрихкодирует свои отправления и штрихкод отличается от номера заказа, в этом поле указывается штрихкод. Если ШК содержит кириллицу или малое количество символов, то формируется ШК в формате EAN13.
"tag1212": "1"
</source>
Для клиентов из '''Узбекистана''' необходимо указывать код ИКПУ и код упаковки в следующем формате:
<source lang="json">
"ikpu":"123123123","packageCode":"123456"
</source>
<?xml version="1.0" encoding="UTF-8"?>
<attachments>
<item name="doc1.docx" timestamp="2025-01-01 12:00:00" size="35654">JVBERi0xLjMNJVBERixLjMN JUBQREYwMTIzNDU2Nzg5IDI NMyAwIG9iag08PA0vVHlwZSAUwLJdLwIDKxTn+AScMjKqor7Xm3sp1yj1k6BzlPdX2Qsiit6yg3g1fCI4YVAgclUOIY5tDra2LvAcIS U3VidHlwZSAvSW1hZ2UNL1d pZHRoIDE4MDgNL0hlaWdodCA5/+8PsL/sXb0+aoper/9kL/4Ov/YE9QsHwyg7YZTtKICy0YVIYb4Nt7L1tPUMfaX9NpuTsvFCtBAvYG ggNCAwIFINL0JpdHNQZXJDb 21wb25lbnQgMQ0vRGVjb2RlUeJVZoZ2tm6+fZVqAavZpeLizVLtct1a+xvG0+bTSkw3Ac8PhdNfL4smrT2hSgPJLfyaVGyA2ndyW22t ENL0NvbHVtbnMgMTgwOA0sFtTP5knktPNumSZ56QsFRPJkaU8ExDxAcMYMDIoBiIoR4/dDjHMbMW/EW4fiB1pvWmV2ONWIl1Xdub Xg1ob0qWX9W4qagsqzGhjRLsEGeJGVXg9oVC+XkJa9esrhGUmC0tuKEla+AplVO/OtHwXcW0FWui1z7 6KHrtobuWV0xa9sCEiSvb91w3ePHOvfcveo5xt9o4ZevHF7ZOeKxV5qmVx2MI44a1L+Mhk5YuGT12xd Ibsb7r+j9bff/unQlv0al6HBnoD5G89q4+tkjgDtvwwARmqm2aa2Jgvmth8mrXquTNtl2u467vbF/5r vnMt9uesu21Me1bjeNJGlVfAaCtw+/jfenJ/fWjqa7ygExx+P g0vSW1hZ2VNYXNrIHRydWUNLL0BcTGroxrKexQXIQ1ImfEW7ZRJZa+O XhEZWNvZGUNPj4Nc3RyZWFt DQ<ip7xJmmNESMxrgu/item>dquBbGypjJpFDJVRH1rVPR1Ifl4aFS5IEdDWZFSdyBBWKWhVSVu517ZgzOCFAwp wwbFph29g4fTaxnvn/3X78x+Tt56ZNffArgULt+HByvy7+yz6U6XWMawCi3+6gJXN0S+jf4t+HT34wg <item name="photo2.jpg" size="74861">VBERi0xLjMN km7/HDp55YTSWMoCMgZsvZkBrXtIv4WA7xgkT4YpYpxjwLvnsWKkGE+pDbxER0UUWlpVFRY4oilTfM4 JUBQREYwMTIzNDU2Nzg5IDI NMyAwIG9iag08PA0vVHlwZSAMIzgCPgxjOlZ87ceA7ceRJrgpipFGyugPQ4OTI2S8lWJoqTpHJlJbNOeYM7zTcoVxSNyJXiYWSAMklT vWE9iamVjdA0vU3VidHlwZS AvSW1hZ2UNL1dpZHRoIDEzNj q/xd+3fd3/USq2V1rJ7RyBLHsuDSiLwgaOFc5LUCRGI+QWuBAsIwPlZrgRpSMseJyTzD15PKiIRE7bc gNL0hlaWdodCAxMzMzDS9MZ W5ndGggNCAwIFINL0JpdHNQZ Rggk5ijXAPpqISetD4wVm0AD2LHuBZdaxmK3HOKIZoG0QLmiZdVqspXnFIJwVyCKhWiDCI4bzH8Y76w XJDb21wb25lbnQgMQ0vRGVj b2RlUGFybXMgPDwNL0sgLTEN TAnwM67HIqMISOkmJXY8mlYhpiNa7g2oTBkKxo4wgnvETQIUUrlFOn9KdOreDiKQx071rN4N61yRAi1 L0NvbHVtbnMgMTM2OA07EGRhSOgoeLYv+k41+KZ1SVBXAuDjB+xuxnQmm8wJDcP5IRn+Pg0 vSW5penzbR/ivm7qleHK5o790w8ejXchI vOHIPWtWwYhtAO34LdDXqFqWxZEBLNstMCwwITBTWirxk12zuUppp</item>
</attachments>
</source>
* '''latitude''' — Широта
* '''longitude''' — Долгота
* '''uid''' — Уникальный идентификатор ПВЗ в системе Measoft. Создается автоматически при получении данных о ПВЗ от агентов.
* '''count''' — Количество записей в ответе
* '''totalcount''' — Общее количество записей, отвечающее параметрам запроса
'''''Обратите внимание:''''' В реальном ответе сервера в теге calc присутствует атрибут «price». Он оставлен для обратной совместимости, не используйте его. Пользуйтесь вложенным тегом price.
=== Коды и описание ошибок ===
{|class=wikitable
!Код ошибки
!Английское описание
!Русское описание
!Примечание
|-
|15||tarif not found||Тариф не найден||Ошибка получения тарифов: для клиента не указан тариф
|-
|19||field [town to] cannot be empty||Поле [город получателя] не может быть пустым||Необходимо указать город получателя или ПВЗ
|-
|20||field [weight] is incorrect||Некорректное значение [масса]||Значение массы некорректное, например, не является числом. Его необходимо исправить
|-
|21||town from not found||Город отправителя не найден||Системе не удалось найти указанный населенный пункт отправителя
|-
|22||town to not found||Город получателя не найден||Системе не удалось найти указанный населенный пункт отправителя
|-
|23||field [weight] cannot be empty||Поле [масса] не может быть пустым||Необходимо указать значение массы отправления, поле [weight]
|-
|36||subtown not found||Город в регионе не найден||Не настроено направление доставки до города в регионе: не добавлен регион или указанный город отсутствует в списке региона
|-
|37||zoneprice not found||Тариф зоны не найден||Отсутствуют зоны тарификации или для них не указаны стоимости
|-
|38||tarif not found - 1||Тариф не найден 1||Результаты расчета отсутствуют: общая ошибка в случае, если других ошибок нет, но результат пустой
|-
|39||tarif not found - 2||Тариф не найден 2||Ошибка получения тарифов: для клиента не настроен тариф или тарификация от количества заказов
|-
|82||field [weight] exceeded limit PVZ||Значение [weight] превышает ограничение ПВЗ||Указанное значение массы больше, чем максимально допустимое для указанного ПВЗ
|-
|83||attribute [paytype] not allowed PVZ||Значение [paytype] не допустимо для ПВЗ||В ПВЗ не допустим указанный тип оплаты
|-
|}
== Получение информации о клиенте ==
* '''distance''' — Дистанция по заказу
* '''status''' — Статус заказа.
== Установка статуса согласования заказа ==
Для возможности клиентом установки статуса согласования заказа необходимо включить переменную [[Личный кабинет курьерской службы#Заказы|Разрешить менять статус согласования]]
'''Пример запроса установки статуса согласования заказа'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<setapprovalstatus>
<auth extra="8" login="login" pass="pass" />
<order ordercode="1234561">
<confirmstate>1</confirmstate>
<message>Сообщение статуса</message>
</order>
<order ordercode="1234562">
<confirmstate>2</confirmstate>
<message>Согласовано</message>
</order>
<order ordercode="1234563">
<confirmstate>3</confirmstate>
<message>Не согласовано</message>
</order>
</setapprovalstatus>
</source>
* '''order''' — Контейнер заказа. Обязателен как минимум один элемент.
:* '''ordercode''' — Внутренний код заказа.
* '''confirmstate''' — Код статуса заказа. Все статусы с кодами можно получить запросом [[#Получение списка статусов согласования заказа|Получение списка статусов согласования заказа]]
* '''message''' — Дополнительный комментарий, который отобразится в поле ''Инфо о доставке''.
== Получение списка статусов согласования заказа ==
'''Пример запроса списка статусов согласования заказа'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8"?>
<approvalstatuses>
<auth extra="8" login="login" pass="pass" />
</approvalstatuses>
</source>
'''Пример ответа списка статусов согласования заказа'''
<source lang="xml">
<?xml version="1.0" encoding="UTF-8" ?>
<approvalstatuses count="6">
<status>
<code>1</code>
<name>Неизвестно</name>
</status>
<status>
<code>2</code>
<name>Согласование запрошено</name>
</status>
<status>
<code>3</code>
<name>Доставка полностью согласована</name>
</status>
<status>
<code>4</code>
<name>Согласовано с изменением времени</name>
</status>
<status>
<code>5</code>
<name>Перенос на другую дату</name>
</status>
<status>
<code>6</code>
<name>Отказ</name>
</status>
</approvalstatuses>
</source>
== Генерация коротких ссылок ==
</source>
<div style="color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; padding: 3px 10px 10px;">'''Обратите внимание! '''# При использовании iFrame могут не работать некоторые функции, например, подписка на push-уведомления на странице трекинга или отслеживания.# Если язык не указать, то на страницах калькулятора и трекинга отображается свой переключатель языка. Если язык указан, то переключатель не отоборажаетсяотображается.
Поддерживаемые языки и их коды:
:'''2''' — английский
:'''4''' — узбекский
</div>
== Оформление манифеста ==
<place>
<number>1</number>
<seal>7890AABBB</seal>
</place>
<place>
<number>2</number>
<seal>123456ABC</seal>
</place>
</places>
</address>
<address>
<code>67890</code>
<place>2</place>
</address>
*'''trn_code''' - код перевозчика. Обязательный элемент.
*'''sentdate''' - дата отправки манифеста. Не обязательный элемент.
*'''addresses''' - корневной корневой элемент для списка заказов.*:'''address''' - корневной корневой элемент для заказа.*::'''code''' - наш внутренний номер заказа. Обязательный элемент.*::'''place''' - номер места адресазаказа. Обязательный элемент, если переданы места.*'''places''' - корневной корневой элемент для списка мест.*::'''place''' - корневной корневой элемент для места.*::'''number''' - номер заказаместа. Обязательный элемент.*::'''seal''' - номер пломбы. Необязательный элемент.