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

FAQ⚓︎

Решение проблем при работе с API⚓︎

ВОПРОС

Отправленные данные не появляются на сервисах АСНА.

При каждом вызове API сервис возвращает HTTP статус (код ответа, КодОтвета в 1С), именно он служит индикатором успешной или неуспешной передачи. Как правило, при успешном вызове, сервис возвращает статусы 200, 201, 202. Если при вызове сервис вернул 400 статус (Bad Request), то с большой вероятностью вы отправляете данные, которые не проходят первичную валидацию на сервере. При этом сервис возвращает в теле ответа информацию об ошибках в полученных данных и данные не поступают на дальнейшую обработку.

Если в теле ответа вы получили сообщение Missing required data или {«»:[«The input was not valid.»]}, то это говорит о том что JSON, который вы отправляете на сервис, не является валидным с точки зрения стандарта.

  • Проверьте ваш JSON на наличие ошибок и соответствие стандарту через онлайн-валидаторы, такие как JSON Formatter & Validator и JSONLint.
  • Убедитесь в том что JSON не содержит символа запятая в качестве разделителя дробной и целой части в числах, т.к. в стандарте запятыми разделяются поля. Убедитесь в том что в значениях полей типа string не содержатся двойные кавычки, т.к. в стандарте этот символ используется для указания начала и конца значения текстового поля. Если же в значении текстового поля необходимо передать символ двойной кавычки, то этот символ необходимо экранировать символом .
  • Убедитесь в том что необязательные поля, которые вы не заполняете по тем или иным причинам, либо отсутствуют в сформированном JSON, либо имеют значение null. Убедитесь в том, что кодировка текста в передаваемых данных UTF-8. Данные должны пересылаться без маркера BOM.
  • Внесите необходимые исправления и, при необходимости, снова проверьте онлайн-валидатором.

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

  • Для проверки вы можете использовать JSON схему, которая прилагается в виде ссылки в каждом разделе документации, связанном с передачей данных. Произвести валидацию по схеме вы можете по ссылке JSON Schema Lint. В левое окно загружается схема, в правое ваш JSON. Не забудьте указать версию спецификации схемы - draft-04.
  • Внесите соответствующие изменения и повторите отправку.

Видео-инструкция по валидации данных с помощью схемы⚓︎

ВОПРОС

При передаче данных на сервисы АСНА возвращается 400 «Missing required data».

Этот статус и сообщение сервисы АСНА возвращают, если не могут десериализовать присланные данные. Проверьте что кодировка JSON utf-8, а также наличие HTTP-заголовка Content-Type со значением application/json. Если json загружается в тело запроса из файла, то убедитесь что в тело запроса не попадает BOM (несколько байт перед началом json), например для utf-8 BOM EF BB BF.

ВОПРОС

Я получил токен на сервере авторизации и передаю его при вызовах API, но в ответ приходит HTTP статус 401.

Авторизационный токен действителен в течение некоторого времени (на данном этапе это время составляет 60 минут), это сделано для того, чтобы даже перехватив токен, злоумышленник не смог им пользоваться постоянно . Кроме того, короткоживущий токен позволяет быстро отключить от API клиентов, которые по тем или иным причинам прекратили сотрудничество с АСНА. В случае получения 401 статуса, клиентское ПО должно получить новый токен на сервере авторизации. Этот процесс подробно описан в разделе Авторизация в АСНА REST API документации.

ВОПРОС

Мы не видим своей аптеки на сайте asna.ru

Для того, чтобы аптека появилась на сайте asna.ru, необходимо выполнение следующих условий:

  • Аптека должна выполнить интеграцию по протоколу АСНА Web API в части выгрузки полных остатков и изменений по остаткам, а также бронирования товара.
  • Аптека должна регулярно выгружать по протоколу полные остатки (раз в сутки) и изменения остатков (раз в 10 минут), если было товародвижение за этот интервал времени. При отсутствии выгрузки полных остатков более 24 часов, аптека убирается с сайта.
  • На Портале настроек АСНА-Экономия у данной аптеки должны быть выполнены настройки в разделе Центр управления параметрами АСНА-Экономия: включено бронирование товара и выставлены параметры брони.

После включения настроек аптека появится на сайте после синхронизации настроек (1-2 часа). Для проверки даты остатков вы можете использовать АСНА-бот.

Если все три пункта выполнены, но аптеки на сайте нет, то обратитесь, пожалуйста, в техподдержку отдела веб-сервисов.

Авторизация⚓︎

ВОПРОС

Не могу подключиться к серверу авторизации. В чем причина?

Сервер авторизации работает по адресу sso.asna.cloud, используя порт 5000 для протокола HTTPS и порт 6000 для протокола HTTP. Всегда используйте протокол HTTPS для работы с сервером авторизации, за исключением ситуаций, когда это физически невозможно. Если при подключении по HTTPS на порт 5000 возникают проблемы, а подключение к серверу авторизации по HTTP (порт 6000) работает, то убедитесь что ваше ПО использует для подключения по HTTPS один из следующих протоколов - TLS 1.0, TLS 1.1, TLS 1.2. Протоколы SSL 2.0, SSL 3.0 не поддерживаются, как устаревшие и небезопасные. Проверьте настройки Свойства браузера (Internet Options) в Панели управления, согласно приведенной ниже картинке:

IE Settings

Общий порядок действий при возникновении проблемы подключения к серверу авторизации

  1. Убедитесь в том что ваш DNS сервер разрешает хост sso.asna.cloud в IP адрес, дав команду ping sso.asna.cloud в командной строке. Если вы увидели в ответе IP адрес, то DNS работает.
  2. Убедитесь что вы запрашиваете корректный адрес. Это должен быть либо https://sso.asna.cloud:5000/connect/token , либо http://sso.asna.cloud:6000/connect/token.
  3. Убедитесь что включена поддержка TLS 1.0 или TLS 1.1 или TLS 1.2 в Свойствах браузера.

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

ВОПРОС

Нужно ли выгружать разобранные упаковки на сайт?

Нет, не нужно. На сайт должны выгружаться только целые упаковки, цена должна соответствовать цене целой упаковки.

ВОПРОС

У нас к одному коду товара по справочнику АСНА привязано несколько наших кодов. Как нам выгружать остатки?

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

ВОПРОС

У нас несколько партий товара с разными ценами. Почему на сайте мы видим не все партии?

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

ВОПРОС

Мы не видим нашей аптеки на сайте. В чем причина?

Причин может быть много, например, у аптеки сняли признак Активна, не выставлены признаки выгрузки на сайт и бронирования на портале Alphaone. Кроме этого, аптека убирается с сайта, если не было выгрузки полных остатков больше 24 часов. Все эти параметры можно проверить в боте отдела веб-сервисов АСНА Бот отдела веб-сервисов АСНА.

Бронирование⚓︎

ВОПРОС

Что такое административная панель первостольника?

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

Ссылки на административную панель первостольника⚓︎

Действие Ссылка
Переход в админку https://www.asna.ru/bitrix/admin/sale_order.php?lang=ru&guid={storeId}
Новый заказ https://www.asna.ru/bitrix/admin/sale_order_create.php?lang=ru&SITE_ID=s1&guid={storeId}
Редактирование заказа https://www.asna.ru/bitrix/admin/sale_order_edit.php?lang=ru&guid={storeId}&ID={num}

В ссылках необходимо подставить параметры storeId - уникальный идентификатор аптеки по справочнику АСНА, а num - номер заказа

ВОПРОС

Что делать, если при сборе заказа выяснилось что та или иная позиция заказа отсутствует в аптеке?

Так как процесс бронирования из наличия автоматизирован и предполагает что бронирование осуществляется по тем остаткам товара, которые числятся в ПО, то возможны ситуации, когда в ПО товар есть, а в наличии его нет (пересорт, недостача и т.д.). При обнаружении такой ситуации, аптека должна уведомить покупателя по телефону, а покупатель в свою очередь может либо отредактировать заказ либо отменить его. Именно для того, чтобы избежать таких ситуаций, мы просим выгружать нам остатки своевременно и из первоисточника (аптеки), а не из центральной БД (офиса), что, конечно, не устанит проблему на 100%, но уменьшит количество подобных ситуаций.

ВОПРОС

Как должна происходить продажа заказа, в котором есть товар и по наличию и по предзаказу?

Идеальная ситуация, к которой мы стремимся - один чек на один заказ, т.е. покупатель ожидает поступления всего предзаказа и только потом выкупает весь заказ. В случае, если заказ был сделан с терминала в аптеке или покупатель находится рядом с аптекой и хочет выкупить ту часть заказа, которая была забронирована из наличия, есть возможность выкупить заказ в два этапа. Сначала покупатель может выкупить то что было забронировано из наличия аптеки, затем, после получения подтверждения о поступлении предзаказа, выкупить оставшуюся часть. Продажа предзаказа в несколько этапов нежелательна и не предусмотрена, в крайнем случае, покупатель может выкупить то что уже поступило по предзаказу и отказаться от оставшейся части.

ВОПРОС

Может ли покупатель редактировать заказ, в котором есть товар по предзаказу?

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

ВОПРОС

Может ли покупатель редактировать заказ с признаком АСНА-Экономия?

Да, может. При этом цены на товары будут перерасчитываться, исходя из суммы заказа. При уменьшении суммы заказа ниже порога АСНА-Экономии, признак АСНА-Экономия на заказ будет сброшен и покупатель получит заказ по черным (розничным) ценам.

ВОПРОС

Заказ был сделан по АСНА-Экономия, но при выкупе заказа покупатель решил отказаться от некоторых товаров. Как должна происходить продажа?

Заказ с признаком АСНА-Экономия не должен редактироваться через клиентское ПО. Есть два варианта:

  1. Первостольник, через админку первостольника, может изменить заказ покупателя. Цены на товары могут перерасчитаться, исходя из суммы заказа. Желательно, чтобы ПО имело возможность быстро получить изменения с сайта, например, по нажатию на кнопку или пункт меню.
  2. Покупатель может отменить заказ и купить товар, который ему нужен, по ценам аптеки.

ВОПРОС

Что делать если к одному sku по справочнику АСНА привязано 2 или более sku по справочнику номенклатуры аптеки?

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

Маркетинг⚓︎

ВОПРОС

Может ли товар находиться в нескольких маркетинговых мероприятиях одного типа?

Один товар может находиться во всех мероприятиях, но не может находиться дважды в одном мероприятии.

ВОПРОС

nntParent - за что отвечает данное поле?

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

ВОПРОС

Для типа мероприятий 9 количество всегда равно 1, или есть исключения?

Количество не всегда равно 1. Возможны другие значения. 30(31) - обязательные товары для БДН, 1 - рекомендуемые товары для БДН(например, новый вводимый товар или товар, который сложно заказать у поставщиков)

ВОПРОС

periodYM - для чего нужен данный параметр, если у мероприятия есть период действия?

Например, мероприятие Товар дня, может быть на месяц, но мероприятие само годовое. И значения ННТ меняются от месяца к месяцу.

ВОПРОС

Меняется ли CIP-цена в зависимости от мероприятия?

Нет, не изменяется. CIP-цена одна для одного SKU во всех типах мероприятий.