Получение информацию по заказу через API RetailCRM

Занимаюсь разработкой телеграмм бота для курьеров, что бы быстро помечать выполненные и оплаченные заказы и появилась нужда получить необходимую информацию через API. Хорошо что в RetailCRM все это очень удобно реализовано.

Шаг 1. Создаем ключ API

Заходим в Администрирование - Интеграция - Ключи доступа к API и добавляем новый ключ. В качестве разрешенных методов указываем необходимые вам, для моих задач достаточно следующих:

  • /api/orders
  • /api/orders/{externalId}
  • /api/orders/{externalId}/edit

После создания мы получаем ключ вида: KQsSWa2MUynhlXl0dlGIHbfZKbiNFzZY

Шаг 2. Работаем с API

В нашем случае (получение информации о заказе) работа с API выглядит очень и очень просто - достаточно открыть нужную страницу в браузере и вся информация будет видна. Формируем запрос:

https://testaccount.retailcrm.ru/api/v4/orders/1864?apiKey=KQsSWa2MUynhlXl0dlGIHbfZKbiNFzZY Где testaccount - ваш аккаунт в retailcrm а 1864 - id заказа в системе

На тестовом аккаунте без проблем получаю подробную информацию о заказе, а не лай проекте такая информация не выводится. В ответ получаю:

{"success":false,"errorMsg":"Not found"}

Долго ломал голову в чем дело, пока не нашел в документации следующую информацию:

Можно обращаться к заказу как по внешнему ID заказа (by=externalId), так и по внутреннему ID (by=id).

Как только немного отредактировал запрос, указав by=id:

https://live.retailcrm.ru/api/v4/orders/1864?by=id&apiKey=KQsSWa2MUynhlXl0dlGIHbfZKbiNFzZY

Сразу все заработало как нужно.

Как оказалось поиск осуществлялся по внешним заказам и необходимо было явно указать что искать следует по внутренней базе заказов. Очень хорошо что документация в RetailCRM хорошо документирована и в ней можно найти большую часть ответов.

Евгений Коваленко
Создатель RetailCRMGuru