#
API для обмена заказами с 1с
Прием заказов организован через работу http сервисов, идет общение между сервисами в формате json. При обращении указывается адрес для обращения, порт и имя публикации, далее следует стандартный метод обращения [/hs/AquaDeliveri/getOrdersURL] Как пример итоговой адресной строки строки http://92.241.102.242:8888/demodelivery/hs/AquaDeliveri/getOrdersURL
#
Параметры
В качестве параметров запроса передается массив заказов, которые необходимо создать/обновить в текущей системе [order, order...] . Ниже пример запроса с расшифровкой параметров
[
{
"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
}
]
}
}
}
Название | Тип 2 | Обязательный 3 | Описание 3 |
---|---|---|---|
id | string(255 | true | Идентификатор в экспортирующей системе (внешнее приложение или сайт) |
external_id | integer(11) | false | Идентификатор в принимающей системе (1с) |
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 | Комментарий |
count_of_returned_bottles | integer | false | Кол-во бутылей к возврату |
order_item_list | array | true | Массив из заказанных позиций |
client | object | true | Объект содержащий клиента |
shipping_address | object | true | Объект содержащий адрес доставки |
Атрибуты объекта клиент client , если он существует в системе можно посмотреть здесь
Атрибуты объекта клиент client , если заказ от не зарегистрированного пользователя
Название | Тип 2 | Обязательный 3 | Описание 3 |
---|---|---|---|
username | string(255 | true | Имя клиента |
phone | string(12)(11) | true | Телефон клиента, например +79191991919 |
emai | string(255) | false | Электронная почта клиента |
Атрибуты объекта адрес доставки shipping_address
Название | Тип 2 | Обязательный 3 | Описание 3 |
---|---|---|---|
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...] со следующими атрибутами
Название | Тип 2 | Обязательный 3 | Описание 3 |
---|---|---|---|
product_id | string(255) | true | Идентификатор продукта в экспортирующей системе (внешнее приложение, сайт) |
price | decimal(10,2) | true | Цена продукта |
quantity | integer(11) | true | Кол-во заказанных продуктов |
id | string(255) | false | Идентификатор позиции заказа в 1с |
name | string(255) | false | Название продукта |
#
Ключевые моменты
Если не будет найден продукт в нашей системе по items.id , то в заказ будет добавлена пустая строка.
Так же если не будет заполнено какое-то из required полей, то данный заказ или пользователь будет проигнорирован для импорта, а в ответ вернётся сообщение об ошибке.
id - идентификатор отправляющей системы, external_id - идентификатор внешней системы.
Если внешний идентификатор external_id ещё не сохранён, то атрибут можно не выводить или оставлять пустым. Но после импорта его обязательно необходимо сохранять и выгружать для избежания дублирования.