# Импорт заказов
# Запрос для импорта нескольких заказов
METHOD POST
URI /v1/order/import/
AUTH Bearer <token>
# Параметры
[order, order...]
где order
имеет следующие атрибуты
Название | Тип | Обязательный | Описание |
---|---|---|---|
id | string(255) | true | Идентификатор в экспортирующей системе |
external_id | integer(11) | false | Идентификатор в принимающей системе |
status | range in 'new', 'approved', 'completed', 'removed' | true | Статус заказа new - новый неразобранный заказ approved - назначен курьер для доставки (заказ обработан оператором) completed - доставлено removed - отменено (диспетчером или клиентом) |
created_at | datetime | false | Дата создания |
total | float | true | Сумма заказа (стоимость доставки включена) |
delivery_cost | float | false | Стоимость доставки |
coins | float | false | Кол-во баллов, которые использовались для оплаты заказа |
payment_type | range | false | Способ оплаты, возможные варианты можно посмотреть здесь |
shipping_date_from | datetime | true | Время доставки от |
shipping_date_to | datetime | true | Время доставки до |
comment | string | false | Комментарий |
ask_for_checkout | range in 'bill', 'agreement' | false | Запрос документов bill - запрос счёта agreement - запрос договора |
count_of_returned_bottles | integer | false | Кол-во бутылей к возврату |
order_item_list | array | true | Массив из заказанных позиций |
client | object | true | Объект содержащий клиента |
shipping_address | object | true | Объект содержащий адрес доставки |
Атрибуты объекта клиент client
, если он существует в системе можно посмотреть здесь
Атрибуты объекта клиент client
, если заказ от не зарегистрированного пользователя
Название | Тип | Обязательный | Описание |
---|---|---|---|
username | string(255) | true | Имя клиента |
phone | string(12) | true | Телефон клиента, например +79191991919 |
string(255) | false | Электронная почта клиента |
Атрибуты объекта адрес доставки shipping_address
Название | Тип | Обязательный | Описание |
---|---|---|---|
user_address_id | integer(11) | false | Идентификатор в принимающей системе |
city | string(255) | true | Город |
street | string(255) | true | Улица |
house | string(10) | true | Дом |
entrance | string(10) | false | Подъезд |
floor | string(10) | false | Этаж |
room | string(10) | false | Номер квартиры или офиса |
str | string(255) | true | Адрес не структурировано, а единой строкой |
Массив из заказанных позиций order_item_list
включает в себя заказанные позиции [order_item, order_item...]
со следующими атрибутами
Название | Тип | Обязательный | Описание |
---|---|---|---|
product_id | string(255) | true | Идентификатор продукта в экспортирующей системе |
price | decimal(10,2) | true | Цена продукта |
quantity | integer(11) | true | Кол-во заказанных продуктов |
order_product_id | integer(11) | false | Идентификатор позиции продукта в заказе в системе Aqua-delivery |
id | string(255) | false | Идентификатор позиции заказа в экспортирующей системе |
name | string(255) | false | Название продукта |
# Ключевые моменты
***
Если не будет найден продукт в нашей системе по items.product_id, то в заказ он не будет добавлен
Те продукты, которые не будут найдены в нашей системе по items.product_id будут удалены из заказа
Так же если не будет заполнено какое-то из required полей, то данный заказ или пользователь будет проигнорирован для импорта, а в ответ вернётся сообщение об ошибке.
id - идентификатор отправляющей системы, external_id - идентификатор внешней системы.
Если внешний идентификатор (external_id) ещё не сохранён, то атрибут можно не выводить или оставлять пустым. Но после импорта его обязательно необходимо сохранять и выгружать для избежания дублирования.
order_product_id - нужен для тех случаев когда один и тот же товар представлен в наборах, например клиент заказал 1 набор с водой и еще дополнительно воду. В наборе вода стоит дешевле и представлена отдельной позицией в заказе
Например:
1С выгружает:
id - идентификатор клиента в 1С
external_id - идентификатор клиента AquaDelivery, сохранённый в 1С
AquaDelivery выгружает:
id - идентификатор клиента в AquaDelivery
external_id - идентификатор клиента 1С, сохранённый в AquaDelivery
Атрибут coins используется для оплаты заказа баллами, в момент импорта, со счета клиента, будет снято столько баллов, сколько указано в данном атрибуте coins. Если у клиента на счете не будет столько баллов сколько указано, то такой заказ не будет импортирован в нашу систему
Изменить атрибут coins в заказе невозможно
# Ответ при импорте нескольких заказов
Ответ будет содержать объект обработанных заказов либо сообщение об ошибке
ключами этого объекта будут Идентификаторы в экспортирующей системе external_id
и под каждым ключом будет описание что произошло,
если при импорте не будет ошибок, то атрибут success
будет содержать true
,
а в атрибуте data
будет массив с объектом который был импортирован,
если при импорте произошла ошибка, то атрибут success
будет содержать false
, а в атрибуте data
будут указаны ошибки
Например так
{
"success": true,
"data": {
"external_id_1": {
"success": true,
"data": {}
},
"external_id_2": {
"success": false,
"data": {}
}
}
}
# Пример
Запрос
[
{
"id": "657f9553-ff97-11e9-80d3-001e4f377cd7",
"external_id": null,
"payment_type": "cash",
"comment": "comment",
"shipping_date_from": "2019-11-06T11:00:00Z",
"shipping_date_to": "2019-11-06T18:00:00Z",
"status": "new",
"total": 710,
"delivery_cost": 30,
"coins": 710,
"order_item_list": [
{
"name": "Вода 19 л. Ваш бренд",
"id": "78e66cef-ae2c-11e6-9bf1-f8a9634f667f",
"external_id": 1,
"product_id": "78e66cef-ae2c-11e6-9bf1-f8a9634f667f",
"price": 355,
"quantity": 2,
"order_product_id": 1435
}
],
"shipping_address": {
"city": "Сыктывкар",
"street": "Кутузова",
"house": "19",
"entrance": null,
"floor": null,
"room": null,
"str": "город Сыктывкар улица Кутузова дом 19"
},
"client": {
"id": "jqLbQR3be8jlJZIh4dBrUCyyIhFzuAKK",
"external_id": 68,
"account_number": 68,
"type": "fiz",
"username": "Василий Тестовый",
"addresses": [
{
"id": "78e66cef-ae2c-11e6-9bf1-f8a9634f667f",
"external_id": null,
"city": "Сыктывкар",
"street": "Кутузова",
"house": "19",
"entrance": null,
"floor": null,
"room": null,
"str": "город Сыктывкар улица Кутузова дом 19"
}
]
}
}
]
Ответ
{
"success": true,
"data": {
"657f9553-ff97-11e9-80d3-001e4f377cd7": {
"success": true,
"data": [
{
"id": "50894",
"external_id": "657f9553-ff97-11e9-80d3-001e4f377cd7",
"status": "approved",
"client": {
"id": 68,
"external_id": "jqLbQR3be8jlJZIh4dBrUCyyIhFzuAKK",
"username": "Василий Тестовый",
"comment": null,
"email": "ognev@baitek.org",
"account_number": 68,
"type": "fiz",
"phones": [
"9083280832"
],
"addresses": [
{
"id": 2647,
"external_id": null,
"name": "Кутузова, д. 21, эт. 1, кв./оф. 1, под. 2, г. Сыктывкар – Орбита ближняя (Париж)",
"city": "Сыктывкар",
"street": "Кутузова",
"house": "21",
"room": "1",
"entrance": "2",
"floor": "1",
"district_id": 1,
"str": "Кутузова, д. 21, эт. 1, кв./оф. 1, под. 2, г. Сыктывкар Орбита ближняя (Париж)"
}
],
"requisites": {
"bank_account": {
"inn": "1234512345",
"kpp": "1234512345",
"account_number": "1234512345",
"correspondent_account": "1234512345",
"bik": "1234512345",
"bank_name": "1234512345"
}
},
"legal_address": [
"г. Сыктывкар,ул. Кутузова,д. 21"
],
"product_price_list": {
"36": {
"product_id": 36,
"external_product_id": null,
"price": "101.00",
"active": false
}
},
"coins_amount": 90,
"loyalty_system_is_active": true
},
"account_number": 68,
"total": 710,
"delivery_cost": 30,
"coins": 710,
"payment_type": "cash",
"created_at": "2019-11-07 00:54:05",
"shipping_address": null,
"shipping_date_from": "2019-11-06 14:00:00",
"shipping_date_to": "2019-11-06 21:00:00",
"order_item_list": [
{
"name": "Вода 19 л. Ваш бренд",
"quantity": 2,
"price": 355,
"product_id": 28,
"order_product_id": 1435
}
],
"comment": "comment",
"ask_for_checkout": null,
"count_of_returned_bottles": 0
}
]
}
}
}