Работа с API B2B
Документация по API B2B доступна по адресу: https://api.di-house.ru/docs.
Для получения доступа к порталу B2B/API необходимо пройти регистрацию по адресу https://b2b.di-house.ru. После нажатия кнопки «Зарегистрироваться» необходимо будет заполнить и отправить анкету «Стать партнером».
После получения письма на адрес электронной почты, указанной в анкете, необходимо подтвердить регистрацию, перейдя по ссылке «Подтвердить регистрацию».
После подтверждения регистрации на указанные в анкете адрес электронной почты придут два письма.
1. Первое письмо содержит учетные данные (логин и пароль) для входа на портал (аутентификации по API).
2. Второе письмо содержит ключ, необходимый для работы через API.
Полученные учетные используются для входа на портал или авторизации по API.
Больше деталей в документации по адресу https://api.di-house.ru/docs/авторизация
В настоящее время доступен следующий функционал:
Авторизация по API реализована по схеме с JWT, т.е. при отправлении запроса с учетными данными на сервер авторизации, сервер вернет два токена: AccessToken и RefreshToken. Токены имеют ограниченный по времени срок действия, который указывается в ответе на запрос к серверу авторизации.
AccessToken добавляется в заголовок Authorization для каждого запроса API. По истечении срока действия AccessToken необходимо передать на сервер авторизации RefreshToken для получения новой пары токенов. Если истек срок действия RefreshToken, то необходимо заново пройти авторизацию с передачей запроса с учетными данными.
Больше деталей в документации по адресу https://api.di-house.ru/docs/авторизация.
Помимо токена авторизации необходимо передавать API ключ системы, также получаемый после регистрации в отдельном письме. Ключ передается вместе с заголовком SenderSystem. Если партнер имеет несколько подключенных юридических лиц, то этот параметр определяет то, для какого юридического лица осуществляется запрос к API. В случае, если юридическое лицо одно, то и ключ будет единственным.
Итого, для правильной авторизации, вместе с запросом нужно передать заголовки вида:
Запросы к API обрабатываются в асинхронном режиме. Запросы ставятся в очередь. В ответ возвращается код `202 Accepted` и идентификатор сообщения (requestId). Для использования собственного ID можно передать заголовок `InitialRequestId`.
Способы получения результата:
- Самостоятельный опрос (Polling)
- Отправьте `POST`-запрос к методу `Status`, указав ID сообщения в теле.
- Если обработка завершена: вернется результат и статус.
- Если обработка в процессе: вернется `202 Accepted`.
- Обратный вызов (Callback)
- Передайте заголовок `CallbackUrl` с адресом вашей точки приема. Система мгновенно отправит ответ на этот URL сразу после обработки.
- Важно: необходимо разрешить входящие соединения для IP-адресов B2B API.
Больше деталей в документации по адресу https://api.di-house.ru/docs/опрос-polling.
В случае, если предпочтительней использовать собственную идентификацию сообщений, не дожидаясь ответа с идентификатором сообщения, возможна передача заголовка с указанием собственного идентификатора сообщения:.
В этом случае состояние запроса можно проверить повторной передачей этого значения initialRequestId в теле сообщения.
Больше деталей в документации по адресу https://api.di-house.ru/docs/опрос-polling
Списки могут быть отфильтрованы по следующим параметрам:
Больше деталей в документации по адресу:https://api.di-house.ru/docs/чтение-каталога-синхронизация.
Резерв закрепляет за клиентом запрошенное количество номенклатуры. Резерв рассматривается в разрезе одного дня и является накопительным. То есть, если в рамках одного дня формировать запросы на резервирование товаров, эти товары попадут в один общий резерв этого дня. Запрашиваемое количество товаров для резервирования добавляется к общему резерву. Тоже актуально и для запросов на удаление резерва: при удалении определенного количества товара, это количество будет вычитаться из общего резерва клиента.
При формировании заказа по позициям, которые были зарезервированы, эти позиции освобождаются из резерва и переходят в заказ.
Если позиция из резерва не переходит в заказ, то резерв автоматически освобождается по истечении 3 дней с момента создания резерва.
Резерв не гарантирует сохранение цен на позиции зарезервированного товара. Актуальные цены на товар можно получить, отправив соответствующий запрос (по API).
Больше деталей в документации по адресу https://api.di-house.ru/docs/чтение-каталога-синхронизация#цены.
Статус обработки запросов на создание или удаление резервов можно узнать, используя метод «Запросы изменения резервов». Полученный результат будет содержать список ранее отправленных запросов, время запроса и статус обработки. О факте перевода запроса в резерв сигнализирует статус ReceivedSuccess.
Больше деталей в документации по адресу https://api.di-house.ru/docs/создание-резервов-временное-бронирование#статусы-запросов-резервирования.
Список сформированных накопительных резервов в разрезе дня можно получить по методу «Резервы». Полученный результат будет содержать фактически закрепленное за клиентом количество номенклатуры.
Больше деталей в документации по адресу https://api.di-house.ru/docs/создание-резервов-временное-бронирование#состояние-резервов.
Количество номенклатуры и цены закрепляются за клиентом в момент формирования заказа. При переходе номенклатуры из резерва в заказ, данные позиции в резерве освобождаются.
Если необходимого количества позиций товара не было в резерве, но они есть на свободном остатке, то эти позиции также закрепляются за клиентом.
Если необходимое количество позиций превышает суммарное количество в резерве и на свободном остатке, то такой заказ не может быть сформирован и клиенту приходит сообщение об отсутствии необходимого количества позиций товара.
Об успешном создании заказа сигнализирует статус «Approved».
Больше деталей в документации по адресу https://api.di-house.ru/docs/создание-заказов-финальное-оформление.
Проверить состояние своих заказов можно путем опроса состояния заказа. После создания заказа клиент получает уведомление на почту о создании заказа с перечнем заказанных позиций. Об успешном создании заказа сигнализирует статус «Approved».
Больше деталей в документации по адрес https://api.di-house.ru/docs/создание-заказов-финальное-оформление#проверка-статуса-заказа.
Изменение состава заказа клиентом не предусмотрено системой.
В случае необходимости изменения заказа необходимо либо отменить и создать новый, либо согласовать требуемые изменения с вашим менеджером diHouse, который внесет необходимые изменения в заказ.
При изменении заказа менеджером diHouse на электронный адрес клиента приходит уведомление.
Отмена заказа клиентом допускается до того, как он будет отгружен (статус заказа «Shipped»). Дальнейшие коммуникации по изменению заказа осуществляется напрямую с менеджером.
Больше деталей в документации по адресу https://api.di-house.ru/docs/создание-заказов-финальное-оформление#отмена-заказа.
Отгрузку заказа осуществляет менеджер diHouse. После отгрузки заказ получает статус «Shipped», а на почту клиента приходит уведомление об отгрузке заказа.
Контакты менеджера diHouse можно получить, обратившись по методу «Менеджеры».
Больше деталей в документации по адресу https://api.di-house.ru/docs/работа-с-api-b2b#менеджеры.