Заказ и получение кодов маркировки через API

Описание процессов#

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

ЭтапОписание
АвторизацияПолучение токена авторизации
Создание заказаСоздание заказа
Создание позиций заказаСоздание позиций заказа
Обработка заказаОтправка заказа
Отслеживание статуса заказаОтслеживание статуса заказа
Отслеживание статуса кодовПроверка синхронизации кодов маркировки по заказу
Получение кодовПолучение кодов маркировки по заказу

Получение токена авторизации#

URL : /passport/token/

Method : POST

Content type : application/x-www-form-urlencoded

Тело запроса :

ПараметрОбязательныйКомментарий
grant_typeДаЗначение: password
client_idДаЗначение: public_client
client_secretДаЗначение: public_client_secret
usernameДаЛогин пользователя
passwordДаПароль пользователя

Ответ (JSON) :

{
"access_token": "2uqE3pE9Jkq3rMK00OG30SWJI",
"expires_in": 36000,
"token_type": "Bearer",
"scope": "read write",
"refresh_token": "Qdn8lzNCsz4X7daMx76Gse7y9"
}

Пример (cURL) :

curl -X POST \
https://example.com/passport/token/ \
-H 'cache-control: no-cache' \
-H 'content-type: application/x-www-form-urlencoded' \
-d 'grant_type=password&client_id=public_client&client_secret=public_client_secret&username=test&password=test'

Взаимодействие с API#

Для обращения к API необходимо передавать данные в заголовках запроса

ЗагаловокОбязательныйКомментарий
X-Auth-TokenДаBearer {access_token}
X-Company-IdНетID компании
X-Stock-IdНетID склада
X-Product-GroupНетshoes

Пример (cURL) :

curl -X GET \
'https://example.com/bp/product/products/' \
-H 'x-auth-token: Bearer nEugdesBzGWUwmewt2Dh4lIJSra' \
-H 'x-company-id: 11' \
-H 'x-stock-id: 9df70a3a-7ad0-4ced-98eb-806c0989ааf9'

Создание заказа#

URL : /bp/processes/order/

Method : POST

Content type : application/json

Тело запроса :

ПараметрОбязательныйТипКомментарий
dataДаOrderDataОсновная информация о заказе
extraНетDocumentExtraДополнительная информация

Структура OrderData :

ПараметрОбязательныйТипКомментарий
contact_personДаstringКонтактное лицо
release_method_typeДаStringМетод выпуска товаров
Возможные варианты:
«IMPORT» - Импорт в РФ
«PRODUCTION» - Производство в РФ
«REMAINS» - Маркировка остатков
create_method_typeДаStringСпособ изготовления СИ
Возможные варианты:
«SELF_MADE» - Самостоятельно
«CEM» - ЦЭМ
production_order_idНетStringИдентификатор производственного заказа
remains_importНетBoolТовар был импортирован до даты запрета оборота немаркированных товаров
remains_availableНетBoolТовар был произведен до даты запрета оборота немаркированных товаров
contract_dateНетDateДата договора с оператором (не используется)
contract_numberНетStringНомер договора с оператором (не используется)

Структура DocumentExtra :

ПараметрОбязательныйТипКомментарий
nameНетStringПроизвольное имя документа

Пример запроса (JSON) :

{
"data": {
"remains_available": false,
"remains_import": false,
"production_order_id": null,
"contract_number": null,
"contract_date": null,
"print_status": "Available",
"contact_person": " Иванов Иван Иванович",
"release_method_type": "IMPORT",
"create_method_type": "SELF_MADE"
},
"extra": {
"name": "Test"
}
}

Параметры ответа :

ПараметрТипКомментарий
document_idStringУникальный ID Документа
statusStringСтатус документа
createdStringДата создания
dataОбъект OrderDataОсновная информация о заказе
extraОбъект DocumentExtraДополнительная информация
external_idStringID заказа в СУЗ

Пример ответа (JSON) :

{
"document_id": "6306149a-c846-4d73-85ca-8063c2022673",
"doctype": "order__request",
"status": "draft",
"created": "2020-04-24T14:11:44.822409",
"company": "11",
"parent": null,
"data": {
"remains_available": false,
"remains_import": false,
"print_status": "Available",
"contact_person": "Иванов Иван Иванович",
"release_method_type": "IMPORT",
"create_method_type": "SELF_MADE",
"production_order_id": null,
"contract_number": null,
"contract_date": null
},
"extra": {
"name": "Test"
},
"direction": "Out",
"external_id": null,
"external_status": null,
"last_es_update": null,
"product_group": "shoes"
}

Получение одного заказа по ID#

URL : /bp/processes/order/{id}/

Method : GET

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

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

URL : /bp/processes/order/{id}/

Method : PATCH

Content type : application/json

Тело запроса и ответ аналогичны созданию заказа

Удаления заказа#

URL : /bp/processes/order/{id}/

Method : DELETE

Создание позиций заказа#

URL : /bp/processes/order/{id}/children/create/

Method : POST

Content type : application/json

Тело запроса :

ПараметрОбязательныйТипКомментарий
dataДаОбъект OrderChildDataОсновная информация о заказе

Структура OrderChildData :

ПараметрОбязательныйТипКомментарий
gtinДаstringGTIN товара
quantityДаNumberКол-во довом маркировки
serial_number_typeДаStringТип генерации серийного номера
Возможные варианты:
«OPERATOR» - Оператором ИС МП
«SELF_MADE» - Самостоятельно
serial_numbersДа, если serial_number_type = «SELF_MADE»ArrayМассив серийных номеров
template_idДаNumberНомер шаблона кода маркировки
Возможные варианты:
«1» - Лёгкая промышленность, обувь

Пример запроса (JSON) :

{
"data": {
"serial_numbers": null,
"gtin": "000000000000",
"quantity": 10,
"serial_number_type": "OPERATOR",
"template_id": 1
}
}

Параметры ответа :

ПараметрТипКомментарий
document_idStringУникальный ID Позиции заказа
createdStringДата создания
dataОбъект OrderChildDataОсновная информация о позиции заказе

Получение одного позиции заказа по ID#

URL : /bp/document/document/{id}/

Method : GET

Ответ на запрос аналогичен ответу на запрос создания позиции заказа

Редактирование позиции заказа#

URL : /bp/document/document/{id}/

Method : PATCH

Content type : application/json

Тело запроса и ответ аналогичны созданию позиции заказа

Удаления заказа#

URL : /bp/document/document/{id}/

Method : DELETE

Отправка заказа#

Отправка заказа на обработку в СУЗ

URL : /bp/processes/order/{id}/execute/

Method : POST

Отслеживание статуса заказа#

Для получения статуса заказа, можно использовать запрос GET /bp/processes/order/{id}/

Возможные статусы заказа :

СтатусЗначение
draftЧерновик
request_createdЗаказ в обработке
completedЗавершен (коды маркировки получены)
failedОтклонен

Проверка синхронизации кодов маркировки по заказу#

Для того чтобы проверить сколько осталось несинхронизированных кодов по заказу, можно отправить запрос на получение кодов маркировки, передав в параметре documents айди документа, полученный при создании заказа, и в параметре status передать значение NotRegistered. Если в ответе, в поле count вернеться 0, значит все коды синхронизированны.

Получение кодов маркировки по заказу#

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

Получение кодов маркировки#

URL : /bp/code/code/

Method : GET

Параметры запроса :

ПараметрОбязательныйКомментарий
page_sizeНетКол-во элементов на странице
pageНетНомер страницы
orderingНетСортировка
documentsНетID докумена
statusНетСтатус кода маркировки
gtinНетGTIN
serialНетСерийный номер
cisНетЧитаемая часть кода маркировки

Возможные статусы кода маркировки :

СтатусЗначение
NotRegisteredНе синхронизован с ГИС МТ
EmittedВыпущен
AppliedНанесен
IntroducedВведен в оборот
RetiredВыведен из оборота
DisaggregationДезагрегирован

Пример запроса (cURL) :

curl -X GET \
'https://example.com/bp/code/code/?page_size=25&page=1&ordering=-id&documents=a8872d28-5b5e-448f-843a-583f51edbcba&status=NotRegistered'

Параметры ответа :

ПараметрТипКомментарий
countNumberОбщее колвичество найденных кодов маркировки
resultsArray MarkingCodeМассив с кодами маркировки

Структура MarkingCode :

ПараметрТипКомментарий
idStringУникальный ID кода маркировки в системе
gtinStringGTIN
serialStringСерийный номер
cisStringЧитаемая часть кода маркировки
codeStringКод маркировки вместе с крипточастью
statusStringСтатус кода маркировки
emission_dateDateTimeДата эмиссии кода маркировки
emission_typeStringТип эмиссии
external_statusStringСтатус кода в ГИС МТ
last_es_updateDateTimeДата последней синхронизации кода с ГИС МТ
product_groupStringТоварная группа
order_idStringНомер заказа в СУЗ