Перейти к содержанию

Остатки товаров⚓︎

Передача остатков в АСНА⚓︎

Передача остатков в АСНА осуществляется следующими методами:

  1. Передача информации о полных остатках
  2. Передача изменений

Передача полных остатков аптеки⚓︎

Ежедневно, желательно в период наименьшей загруженности сервисов, интегрированное с АСНА программное обеспечение должно отправлять полные сведения о наличии товаров в каждой аптеке. Выгрузка полных сведений об остатках должна производиться не чаще одного раза в сутки. Так как объем передаваемой информации о полных остатках большой, пакет не обрабатывается сразу, а ставится в очередь на обработку.

ОГРАНИЧЕНИЕ

Передача полных остатков ограничена одним запросом в 30 минут, но отправлять полные остатки чаще чем раз в сутки нет необходимости. Желательно отправлять полные остатки в период с 05:15 до 08:45 по московскому времени.

ВНИМАНИЕ

Перед обработкой полных остатков и записью их в БД, сервис произведет удаление всех остатков в БД по этой аптеке.

POST /v5/stores/{storeId}/stocks

Описание⚓︎

Передать полные остатки по аптеке storeId по протоколу v5

Параметры запроса⚓︎

Имя Тип Обяз. Описание
storeId GUID Идентификатор аптеки по справочнику АСНА

Заголовки запроса⚓︎

Имя Описание
Authorization Bearer token
Content-Type application/json

Тело запроса⚓︎

Объект запроса⚓︎

Имя Тип Обяз. Описание
date datetime Дата выгрузки остатков в формате ISO8601 с указанием часового пояса
stocks Stock[] Массив строк остатков

Объект запроса Stock (строка остатков)⚓︎

Имя Тип Обяз. Описание
prtId string(50) Уникальный код партии, должен быть уникальным в пределах отправляемого пакета, т.к. это ключ, по которому происходит, обновление записей. Максимум 50 символов.
nnt int Код товара по справочнику АСНА
sku string(50) Код товара по справочнику клиента. Максимум 50 символов.
qnt float Текущее количество в партии (с учетом забронированного товара). Не передавать дробное количество.
doc string(50) Номер документа. Максимум 50 символов.
supInn string ИНН поставщика
supId GUID Идентификатор поставщика по справочнику АСНА
supDate datetime Дата поставки в формате ISO8601 с указанием часового пояса
nds int НДС товара. Все расчеты идут по ставкам НДС из справочника номенклатуры АСНА
gnvls bool Признак ЖНВЛС товара (поле обязательно для ЖНВЛС). Если ПО самостоятельно не контролирует максимально допустимые цены ЖНВЛС, то поле обязательно
dp bool Признак Детское питание
man string(255) Производитель. Максимум 255 символов
series string(50) Cерия товара. Максимум 50 символов
exp datetime Cрок годности в формате ISO8601. Поле не является обязательным, т.к. не у всех товаров есть срок годности, но если у товара есть срок, убедительная просьба его заполнять. Покупатели хотят видеть срок на сайте. Для сервиса Контроль сроков годности поле обязательно.
prcMan decimal Цена производителя
prcOpt decimal Цена оптовая
prcOptNds decimal Цена оптовая (закупочная) с НДС. Для сервисов Подмена аптечных цен, Асна Экономия поле обязательно
prcRet decimal Цена реализации
prcReestr decimal Цена реестра
prcGnvlsMax decimal Максимально допустимая розничная цена для ЖНВЛС (поле обязательно для ЖНВЛС). Если товар не ЖНВЛС, то это поле заполнять не нужно, если товар ЖНВЛС и включен расчет цен, то поле обязательно заполняется значением, и оно не может быть меньше розничной цены аптеки. Если ПО самостоятельно не контролирует максимально допустимые цены ЖНВЛС, то поле обязательно
sumOpt decimal Cумма оптовая без НДС
sumOptNds decimal Cумма оптовая с НДС
mrGnvls decimal Процент наценки для ЖВЛНС
tag int Признак товара. Может принимать значения: 0 - нормальный, 1- сроковый, 2 - уценка, 3 - мятая упаковка

Ссылка на JSON схему для валидации и тестирования

Пример запроса⚓︎

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
POST /v5/stores/BC164E55-B612-4A04-800B-34CCF10F6858/stocks HTTP/1.1
Host: api.asna.cloud
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdGQzk0RDU4N0UzQzg4QUM0M0FDQkQyOEU0Njk4RDZCOTE3RkQyOUUiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJmOGxOV0g0OGlLeERyTDBvNUdtTmE1Rl8wcDQifQ.eyJuYmYiOjE0OTE1NzY2MDcsImV4cCI6MTQ5MTU4MDIwNywiaXNzIjoiaHR0cHM6Ly9zc28uYXNuYS5jbG91ZDoxODgxIiwiYXVkIjpbImh0dHBzOi8vc3NvLmFzbmEuY2xvdWQ6MTg4MS9yZXNvdXJjZXMiLCJhcGkiXSwiY2xpZW50X2lkIjoiRTQ1RDM0OTEtNzlFRS00RUVBLTkyQjItMjJDRUJFNEJCOEI1IiwiY2xpZW50X2FjY2VzcyI6WyJzdG9ja3MuZWRpdCIsInN0b2Nrcy5mdWxsX2FjY2VzcyIsInN0b2Nrcy52aWV3Il0sInNjb3BlIjpbImFwaSJdfQ.OvGjvdbOk6QI3CNRyjOmj5mSrUZ7v1LjWRgH9TjwhNTTKiEaww1iEr8CnSKOfpGUdhkFGiup8kzvW0PIsqrVZHEx2r5gmT9SO6orznDg-ESprgjjiBC-uYSSTzK_WmPZp-cjP4OVt8ovGY3ncNhrTYFmBy0CJh0XBtMmO5IkE9ASxyaw5Ou5by0SaMTF8Vh9ocE0Uaj8xf-m6ivKQYv_4gEsKs6XEjKBN0khfZGOvv1qQJ4iBn-fVtOqPUpv1ypcOskGZhVHo200ZjvPalbemV-51D45k1KZcE_K9qiYK8Y1vX_lzRDSaQI30PACuQc-VpB-WcCMAtVEEuo0paL2fw
Content-Type: application/json
Accept: application/json
Cache-Control: no-cache

{
"date": "2017-04-25T01:29:20.4520214+00:00",
"stocks": [
    {
    "prtId": "fb851e60-b472-4e8f-ba1e-bcbe3df3cf1c",
    "nnt": 14404,
    "sku": "028091",
    "qnt": 5,
    "doc": "№916483",
    "supInn": "2804850309",
    "supId": "cd315d09-4f76-4e31-b869-6a62d85289a1",
    "supDate": "2017-04-20T02:29:31.104986+00:00",
    "nds": 10,
    "gnvls": false,
    "dp": true,
    "man": "Metz - Beer",
    "series": "pbepvhu6xpuj",
    "exp": "2020-01-07T00:00:00+00:00",
    "prcMan": 242.12,
    "prcOpt": 293.6,
    "prcOptNds": 304.72,
    "prcRet": 388.99,
    "prcReestr": 483.22,
    "prcGnvlsMax": 483.22,
    "sumOpt": 1385.09,
    "sumOptNds": 1523.6,
    "mrGnvls": 8.81,
    "tag": 2
    },
    {
    "prtId": "d4340309-c32c-4215-935e-de028a691eff",
    "nnt": 42692,
    "sku": "585703",
    "qnt": 2,
    "doc": "№620730",
    "supInn": "9145332298",
    "supId": "853e47f1-ade0-44e8-a7be-60ede795f7a5",
    "supDate": "2017-04-15T15:30:59.9716512+00:00",
    "nds": 20,
    "gnvls": true,
    "dp": false,
    "man": "O'Connell Inc",
    "series": "8b1l4itzs5pl",
    "exp": "2020-08-27T00:00:00+00:00",
    "prcMan": 668.3,
    "prcOpt": 743.57,
    "prcOptNds": 760.07,
    "prcRet": 972.67,
    "prcReestr": 1134.28,
    "prcGnvlsMax": 1134.28,
    "sumOpt": 1288.25,
    "sumOptNds": 1520.14,
    "mrGnvls": 10.19,
    "tag": 1
    }
 ]
}

Успешный ответ⚓︎

HTTP cтатус Значение
202 Accepted. Принято к обработке. В заголовке Location содержится URL для получения статуса обработки переданного пакета.

Пример ответа⚓︎

1
2
3
HTTP/1.1 202 Accepted
Vary: Accept
Location: https://api.asna.cloud/v5/messages/09006a8b-826d-48a0-91ad-f4d05a454b56/status

Неуспешный ответ⚓︎

HTTP статус Значение
400 Bad Request. Полученные службой данные содержат ошибки. Информация об ошибке возвращается в теле ответа.
401 Unauthorized. Токен авторизации неверный или истек срок его действия
403 Forbidden. У вас нет прав на выполнение данной операции
429 Too Many Requests. Слишком много запросов с одного IP адреса за промежуток времени
500 Internal Server Error. Ошибка сервиса. Если ошибка повторяется, сообщите, пожалуйста, разработчикам сервиса

Передача изменений по остаткам аптеки⚓︎

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

ОГРАНИЧЕНИЕ

Передача изменений остатков ограничена одним запросом в 10 минут.

ВНИМАНИЕ!

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

ИНФОРМАЦИЯ

Перед обработкой изменений по остаткам аптеки и записью их в БД, сервис не будет производить удаление всех остатков в БД по этой аптеке. Будет произведена операция upsert (update для уже имеющихся в БД строк и insert для отсутствующих).

PUT /v5/stores/{storeId}/stocks

Описание⚓︎

Передать изменения по остаткам аптеки storeId по протоколу v5

Параметры запроса⚓︎

Имя Тип Обяз. Описание
storeId GUID Идентификатор аптеки по справочнику АСНА

Заголовки запроса⚓︎

Имя Описание
Authorization Bearer token
Content-Type application/json

Тело запроса⚓︎

Объект запроса⚓︎

Имя Тип Обяз. Описание
date datetime Дата выгрузки остатков в формате ISO8601 с указанием вашего часового пояса
stocks Stock[] Массив строк остатков

Объект запроса Stock (строка остатков)⚓︎

Имя Тип Обяз. Описание
prtId string Уникальный код партии, должен быть уникальным в пределах отправляемого пакета, т.к. это ключ, по которому происходит, обновление записей. Максимум 50 символов.
nnt int Код товара по справочнику АСНА
sku string Код товара по справочнику клиента. Максимум 50 символов.
qnt float Текущее количество в партии (с учетом забронированного товара). Не передавать дробное количество.
doc string Номер документа. Максимум 50 символов.
supInn string ИНН поставщика
supId GUID Идентификатор поставщика по справочнику АСНА
supDate datetime Дата поставки в формате ISO8601 с указанием часового пояса
nds int НДС товара. Все расчеты идут по ставкам НДС из справочника номенклатуры АСНА
gnvls bool Признак ЖНВЛС товара (поле обязательно для ЖНВЛС). Если ПО самостоятельно не контролирует максимально допустимые цены ЖНВЛС то поле обязательно
dp bool Признак Детское питание
man string Производитель. Максимум 255 символов
series string Cерия товара. Максимум 50 символов
exp datetime Cрок годности в формате ISO8601. Поле не является обязательным, т.к. не у всех товаров есть срок годности, но если у товара есть срок, убедительная просьба его заполнять. Покупатели хотят видеть срок на сайте. Для сервиса Контроль сроков годности поле обязательно
prcMan decimal Цена производителя
prcOpt decimal Цена оптовая
prcOptNds decimal Цена оптовая (закупочная) с НДС. Для сервисов Подмена аптечных цен, Асна Экономия поле обязательно
prcRet decimal Цена реализации
prcReestr decimal Цена реестра
prcGnvlsMax decimal Максимально допустимая розничная цена для ЖНВЛС (поле обязательно для ЖНВЛС). Если товар не ЖНВЛС, то это поле заполнять не нужно, если товар ЖНВЛС и включен расчет цен, то поле обязательно заполняется значением, и оно не может быть меньше розничной цены аптеки. Если ПО самостоятельно не контролирует максимально допустимые цены ЖНВЛС то поле обязательно
sumOpt decimal Cумма оптовая без НДС
sumOptNds decimal Cумма оптовая с НДС
mrGnvls decimal Процент наценки для ЖВЛНС
tag int Признак товара. Может принимать значения: 0 - нормальный, 1- сроковый, 2 - уценка, 3 - мятая упаковка

Ссылка на JSON схему для валидации и тестирования

Пример запроса⚓︎

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
PUT /v5/stores/BC164E55-B612-4A04-800B-34CCF10F6858/stocks HTTP/1.1
Host: api.asna.cloud
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdGQzk0RDU4N0UzQzg4QUM0M0FDQkQyOEU0Njk4RDZCOTE3RkQyOUUiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJmOGxOV0g0OGlLeERyTDBvNUdtTmE1Rl8wcDQifQ.eyJuYmYiOjE0OTE1NzY2MDcsImV4cCI6MTQ5MTU4MDIwNywiaXNzIjoiaHR0cHM6Ly9zc28uYXNuYS5jbG91ZDoxODgxIiwiYXVkIjpbImh0dHBzOi8vc3NvLmFzbmEuY2xvdWQ6MTg4MS9yZXNvdXJjZXMiLCJhcGkiXSwiY2xpZW50X2lkIjoiRTQ1RDM0OTEtNzlFRS00RUVBLTkyQjItMjJDRUJFNEJCOEI1IiwiY2xpZW50X2FjY2VzcyI6WyJzdG9ja3MuZWRpdCIsInN0b2Nrcy5mdWxsX2FjY2VzcyIsInN0b2Nrcy52aWV3Il0sInNjb3BlIjpbImFwaSJdfQ.OvGjvdbOk6QI3CNRyjOmj5mSrUZ7v1LjWRgH9TjwhNTTKiEaww1iEr8CnSKOfpGUdhkFGiup8kzvW0PIsqrVZHEx2r5gmT9SO6orznDg-ESprgjjiBC-uYSSTzK_WmPZp-cjP4OVt8ovGY3ncNhrTYFmBy0CJh0XBtMmO5IkE9ASxyaw5Ou5by0SaMTF8Vh9ocE0Uaj8xf-m6ivKQYv_4gEsKs6XEjKBN0khfZGOvv1qQJ4iBn-fVtOqPUpv1ypcOskGZhVHo200ZjvPalbemV-51D45k1KZcE_K9qiYK8Y1vX_lzRDSaQI30PACuQc-VpB-WcCMAtVEEuo0paL2fw
Content-Type: application/json
Accept: application/json
Cache-Control: no-cache

{
   "date":"2017-04-25T01:29:20.4520214+00:00",
   "stocks":[
      {
         "prtId":"fb851e60-b472-4e8f-ba1e-bcbe3df3cf1c",
         "nnt":14404,
         "sku":"028091",
         "qnt":5,
         "doc":"№916483",
         "supInn":"2804850309",
         "supId":"cd315d09-4f76-4e31-b869-6a62d85289a1",
         "supDate":"2017-04-20T02:29:31.104986+00:00",
         "nds":10,
         "gnvls":false,
         "dp":true,
         "man":"Metz - Beer",
         "series":"pbepvhu6xpuj",
         "exp":"2020-01-07T00:00:00+00:00",
         "prcMan":242.12,
         "prcOpt":293.6,
         "prcOptNds":304.72,
         "prcRet":388.99,
         "prcReestr":483.22,
         "prcGnvlsMax":483.22,
         "sumOpt":1385.09,
         "sumOptNds":1523.6,
         "mrGnvls":8.81,
         "tag":2
      },
      {
         "prtId":"d4340309-c32c-4215-935e-de028a691eff",
         "nnt":42692,
         "sku":"585703",
         "qnt":2,
         "doc":"№620730",
         "supInn":"9145332298",
         "supId":"853e47f1-ade0-44e8-a7be-60ede795f7a5",
         "supDate":"2017-04-15T15:30:59.9716512+00:00",
         "nds":20,
         "gnvls":true,
         "dp":false,
         "man":"O'Connell Inc",
         "series":"8b1l4itzs5pl",
         "exp":"2020-08-27T00:00:00+00:00",
         "prcMan":668.3,
         "prcOpt":743.57,
         "prcOptNds":760.07,
         "prcRet":972.67,
         "prcReestr":1134.28,
         "prcGnvlsMax":1134.28,
         "sumOpt":1288.25,
         "sumOptNds":1520.14,
         "mrGnvls":10.19,
         "tag":1
      }
   ]
}

Успешный ответ⚓︎

HTTP cтатус Значение
202 Accepted. Принято к обработке. В заголовке Location содержится URL для получения статуса обработки переданного пакета.

Пример ответа⚓︎

1
2
3
HTTP/1.1 202 Accepted
Vary: Accept
Location: https://api.asna.cloud/v5/messages/09006a8b-826d-48a0-91ad-f4d05a454b56/status

Неуспешный ответ⚓︎

HTTP статус Значение
400 Bad Request. Полученные службой данные содержат ошибки. Информация об ошибке возвращается в теле ответа.
401 Unauthorized. Токен авторизации неверный или истек срок его действия
403 Forbidden. У вас нет прав на выполнение данной операции
429 Too Many Requests. Слишком много запросов с одного IP адреса за промежуток времени
500 Internal Server Error. Ошибка сервиса. Если ошибка повторяется, сообщите, пожалуйста, разработчикам сервиса

Удаление информации по остаткам аптеки⚓︎

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

ВНИМАНИЕ!

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

DELETE /v5/stores/{storeId}/stocks

Описание⚓︎

Удалить информацию по остаткам аптеки storeId по протоколу v5

Параметры запроса⚓︎

Имя Тип Обяз. Описание
storeId GUID Идентификатор аптеки по справочнику АСНА

Заголовки запроса⚓︎

Имя Описание
Authorization Bearer token

Пример запроса⚓︎

1
2
3
DELETE /v5/stores/BC164E55-B612-4A04-800B-34CCF10F6858/stocks HTTP/1.1
Host: api.asna.cloud
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdGQzk0RDU4N0UzQzg4QUM0M0FDQkQyOEU0Njk4RDZCOTE3RkQyOUUiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJmOGxOV0g0OGlLeERyTDBvNUdtTmE1Rl8wcDQifQ.eyJuYmYiOjE0OTE1NzY2MDcsImV4cCI6MTQ5MTU4MDIwNywiaXNzIjoiaHR0cHM6Ly9zc28uYXNuYS5jbG91ZDoxODgxIiwiYXVkIjpbImh0dHBzOi8vc3NvLmFzbmEuY2xvdWQ6MTg4MS9yZXNvdXJjZXMiLCJhcGkiXSwiY2xpZW50X2lkIjoiRTQ1RDM0OTEtNzlFRS00RUVBLTkyQjItMjJDRUJFNEJCOEI1IiwiY2xpZW50X2FjY2VzcyI6WyJzdG9ja3MuZWRpdCIsInN0b2Nrcy5mdWxsX2FjY2VzcyIsInN0b2Nrcy52aWV3Il0sInNjb3BlIjpbImFwaSJdfQ.OvGjvdbOk6QI3CNRyjOmj5mSrUZ7v1LjWRgH9TjwhNTTKiEaww1iEr8CnSKOfpGUdhkFGiup8kzvW0PIsqrVZHEx2r5gmT9SO6orznDg-ESprgjjiBC-uYSSTzK_WmPZp-cjP4OVt8ovGY3ncNhrTYFmBy0CJh0XBtMmO5IkE9ASxyaw5Ou5by0SaMTF8Vh9ocE0Uaj8xf-m6ivKQYv_4gEsKs6XEjKBN0khfZGOvv1qQJ4iBn-fVtOqPUpv1ypcOskGZhVHo200ZjvPalbemV-51D45k1KZcE_K9qiYK8Y1vX_lzRDSaQI30PACuQc-VpB-WcCMAtVEEuo0paL2fw

Успешный ответ⚓︎

HTTP cтатус Значение
204 No Content. Данные удалены

Пример ответа⚓︎

1
HTTP/1.1 204 No Content

Неуспешный ответ⚓︎

HTTP статус Значение
400 Bad Request. Полученные службой данные содержат ошибки. Информация об ошибке возвращается в теле ответа.
401 Unauthorized. Токен авторизации неверный или истек срок его действия
403 Forbidden. У вас нет прав на выполнение данной операции
429 Too Many Requests. Слишком много запросов с одного IP адреса за промежуток времени
500 Internal Server Error. Ошибка сервиса. Если ошибка повторяется, сообщите, пожалуйста, разработчикам сервиса

Получение информации по остаткам аптеки⚓︎

Для периодической проверки остатков, переданных в АСНА, вы можете получить данные по остаткам аптеки, используя следующий запрос:

GET /v5/stores/{storeId}/stocks

Описание⚓︎

Передать изменения по остаткам аптеки storeId по протоколу v5

Параметры запроса⚓︎

Имя Тип Обяз. Описание
storeId GUID Идентификатор аптеки по справочнику АСНА
since datetime Дата/время в формате ISO8601, с которой необходимо получить остатки

Заголовки запроса⚓︎

Имя Описание
Authorization Bearer token
Accept application/json или application/x-json-full

Пример запроса⚓︎

1
2
3
GET /v5/stores/BC164E55-B612-4A04-800B-34CCF10F6858/stocks?since=2017-04-20T02:29:31.104986%2B00:00 HTTP/1.1
Host: api.asna.cloud
Authorization: Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IjdGQzk0RDU4N0UzQzg4QUM0M0FDQkQyOEU0Njk4RDZCOTE3RkQyOUUiLCJ0eXAiOiJKV1QiLCJ4NXQiOiJmOGxOV0g0OGlLeERyTDBvNUdtTmE1Rl8wcDQifQ.eyJuYmYiOjE0OTE1NzY2MDcsImV4cCI6MTQ5MTU4MDIwNywiaXNzIjoiaHR0cHM6Ly9zc28uYXNuYS5jbG91ZDoxODgxIiwiYXVkIjpbImh0dHBzOi8vc3NvLmFzbmEuY2xvdWQ6MTg4MS9yZXNvdXJjZXMiLCJhcGkiXSwiY2xpZW50X2lkIjoiRTQ1RDM0OTEtNzlFRS00RUVBLTkyQjItMjJDRUJFNEJCOEI1IiwiY2xpZW50X2FjY2VzcyI6WyJzdG9ja3MuZWRpdCIsInN0b2Nrcy5mdWxsX2FjY2VzcyIsInN0b2Nrcy52aWV3Il0sInNjb3BlIjpbImFwaSJdfQ.OvGjvdbOk6QI3CNRyjOmj5mSrUZ7v1LjWRgH9TjwhNTTKiEaww1iEr8CnSKOfpGUdhkFGiup8kzvW0PIsqrVZHEx2r5gmT9SO6orznDg-ESprgjjiBC-uYSSTzK_WmPZp-cjP4OVt8ovGY3ncNhrTYFmBy0CJh0XBtMmO5IkE9ASxyaw5Ou5by0SaMTF8Vh9ocE0Uaj8xf-m6ivKQYv_4gEsKs6XEjKBN0khfZGOvv1qQJ4iBn-fVtOqPUpv1ypcOskGZhVHo200ZjvPalbemV-51D45k1KZcE_K9qiYK8Y1vX_lzRDSaQI30PACuQc-VpB-WcCMAtVEEuo0paL2fw

Успешный ответ⚓︎

HTTP cтатус Значение
200 ОК. Успешный запрос. Тело запроса содержит массив остатков

Пример ответа⚓︎

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
[
  {
    "realNetId": 10000211,
    "storeId": "BC164E55-B612-4A04-800B-34CCF10F6858",
    "nnt": 14404,
    "sku": "028091",
    "qnt": 5,
    "doc": "№916483",
    "supInn": "2804850309",
    "supId": "cd315d09-4f76-4e31-b869-6a62d85289a1",
    "supDate": "2017-04-20T02:29:31.103+00:00",
    "nds": 10,
    "gnvls": false,
    "dp": true,
    "man": "Metz - Beer",
    "series": "pbepvhu6xpuj",
    "exp": "2020-01-07T00:00:00+00:00",
    "prcMan": 242.12,
    "prcOpt": 293.6,
    "prcOptNds": 304.72,
    "prcRet": 388.99,
    "prcReestr": 483.22,
    "prcGnvlsMax": 483.22,
    "sumOpt": 1468,
    "sumOptNds": 1523.6,
    "mrGnvls": 8.81,
    "tag": 2,
    "stkDate": "2017-04-25T01:29:20.4520214+00:00",
    "loadDate": "2017-04-26T15:34:04.28+00:00",
    "rv": "AAAAAAAAB+Y="
  },
  {
    "realNetId": 10000211,
    "storeId": "BC164E55-B612-4A04-800B-34CCF10F6858",
    "nnt": 42692,
    "sku": "585703",
    "qnt": 2,
    "doc": "№620730",
    "supInn": "9145332298",
    "supId": "853e47f1-ade0-44e8-a7be-60ede795f7a5",
    "supDate": "2017-04-15T15:30:59.97+00:00",
    "nds": 20,
    "gnvls": true,
    "dp": false,
    "man": "O'Connell Inc",
    "series": "8b1l4itzs5pl",
    "exp": "2020-08-27T00:00:00+00:00",
    "prcMan": 668.3,
    "prcOpt": 743.57,
    "prcOptNds": 760.07,
    "prcRet": 972.67,
    "prcReestr": 1134.28,
    "prcGnvlsMax": 1134.28,
    "sumOpt": 1487.14,
    "sumOptNds": 1520.14,
    "mrGnvls": 10.19,
    "tag": 1,
    "stkDate": "2017-04-25T01:29:20.4520214+00:00",
    "loadDate": "2017-04-26T15:34:04.28+00:00",
    "rv": "AAAAAAAAB+c="
  }
]

Объект ответа (строка остатков)⚓︎

Имя Тип Описание
realNetId int Идентификатор сети
storeId GUID Идентификатор аптеки по справочнику АСНА
prtId string Уникальный код партии, должен быть уникальным в пределах отправляемого пакета, т.к. это ключ, по которому происходит, обновление записей. Максимум 50 символов.
nnt int Код товара по справочнику АСНА
sku string Код товара по справочнику клиента. Максимум 50 символов.
qnt float Текущее количество в партии (с учетом забронированного товара)
doc string Номер документа. Максимум 50 символов.
supInn string ИНН поставщика
supId GUID Идентификатор поставщика по справочнику АСНА
supDate datetime Дата поставки в формате ISO8601 с указанием часового пояса
nds int НДС товара
gnvls bool Признак ЖНВЛС товара (поле обязательно для ЖНВЛС)
dp bool Признак Детское питание
man string Производитель. Максимум 255 символов
series string Cерия товара. Максимум 50 символов
exp datetime Cрок годности в формате ISO8601. Поле не является обязательным, т.к. не у всех товаров есть срок годности, но если у товара есть срок, убедительная просьба его заполнять. Покупатели хотят видеть срок на сайте
prcMan decimal Цена производителя
prcOpt decimal Цена оптовая
prcOptNds decimal Цена оптовая (закупочная) с НДС
prcRet decimal Цена реализации
prcReestr decimal Цена реестра
prcGnvlsMax decimal Максимально допустимая розничная цена для ЖНВЛС (поле обязательно для ЖНВЛС). Если товар не ЖНВЛС, то это поле заполнять не нужно, если товар ЖНВЛС и включен расчет цен, то поле обязательно заполняется значением, и оно не может быть меньше розничной цены аптеки
sumOpt decimal Cумма оптовая без НДС
sumOptNds decimal Cумма оптовая с НДС
mrGnvls decimal Процент наценки для ЖВЛНС
tag int Признак товара. Может принимать значения: 0 - нормальный, 1- сроковый, 2 - уценка, 3 - мятая упаковка
stkDate datetime Дата остатков в формате ISO8601 с указанием часового пояса
loadDate datetime Дата загрузки остатков в формате ISO8601 с указанием часового пояса
rv byte[] Версия записи

Неуспешный ответ⚓︎

HTTP статус Значение
400 Bad Request. Полученные службой данные содержат ошибки. Информация об ошибке возвращается в теле ответа.
401 Unauthorized. Токен авторизации неверный или истек срок его действия
403 Forbidden. У вас нет прав на выполнение данной операции
429 Too Many Requests. Слишком много запросов с одного IP адреса за промежуток времени
500 Internal Server Error. Ошибка сервиса. Если ошибка повторяется, сообщите, пожалуйста, разработчикам сервиса

Фильтрация остатков⚓︎

Для исключения попадания на сайт товаров с некорректными(слишком низкими) ценами, которые, как правило, получаются из-за некорректных привязок справочника товаров аптеки и справочника товаров АСНА, мы фильтруем такие товары.

Если вы подписаны на рассылку мониторинга, то ежедневно вы будете получать уведомления по электронной почте с вложенной инструкцией, если нет то вы можете перейти на веб-интерфейс фильтра по ссылке http://api.asna.cloud/dispersion?storeId={storeId}, где storeId - идентификатор вашей аптеки.

Инструкция по работе с веб-интерфейсом фильтра встроена в веб-интефейс.


Последнее обновление: 17 августа 2021 г. 11:14:40
Созданный: 5 августа 2021 г. 12:36:05

Комментарии

Back to top