Питання - Відповіді(FAQ) по Open API

Зібрали відповіді на найрозповсюдженіші питання в процесі роботи з API KeyCRM
Написано Владислав Пономарь
Оновлено 1 день тому
1. Як відбувається авторизація при підключенні до API?

Відповідь: Для авторизації потрібно передавати заголовок у форматі Bearer + APIkey.

"headers":{"authorization":["Bearer ваш-API-ключ"]}

2. Як дізнатись, дані в які поля я можу передавати та отримувати?

Відповідь: В документації API описано кожен метод. Приклади запитів чи відповідей містять список усіх доступних параметрів для цього метода. 

На вкладці «Schema» детально описано кожен доступний параметр з вказанням типу даних і прикладом значення: 

3. Чому назва стандартних статусів замовлень в АРІ повертається транслітерацією?

Відповідь: Стандартний набір статусів створюється з аліасами в назвах - по ним підставляється в інтерфейсі відповідно до мови користувача назва статусу.

Вам достатньо перезберегти назви статусів в мові, щоб назви закріпились і стали відображатись в API.

4. Як передати значення в декілька кастомних полів різних типів?

Відповідь: Пропишіть дані до кожного поля через кому в масиві custom_fields.

Якщо поле з типом список або мультисписок, то список значень потрібно передавати у параметрі value в масиві. Усі значення мають бути додані, як опції в цьому полі. 

"custom_fields": [
    {
      "uuid": "системна назва поля з CRM",
      "value": "Значення, яке потрібно записати в це поле"
    },
    {
      "uuid": "системна назва поля з CRM",
      "value": ["Опція 1", "Опція 2", "Опція 3"] 
    }
  ]

5. Чому GET запитом я отримую не усі дані, як в прикладі в документації?

Відповідь: За замовченням передаються тільки базові дані, щоб отримати усі доступні додаткові, додайте до запиту include, до кожного метода в документації додано список доступних.

6. Що значить помилка «Too Many Requests»?

Відповідь: В нас діє обмеження до 60 запитів на хвилину з однієї IP-адреси по API-ключу. Якщо частота запитів більше цього ліміту, запити починаються отримувати цю помилку. 

Рекомендуємо оптимізувати ваш процес, щоб знизити кількість запитів. Наприклад, ви можете налаштувати паузу між запитами в 1 секунду. 

7. Чому я отримую помилку при спробі зробити тестовий запит через swager?

Відповідь: В нашій документації немає можливості додати API ключ, відправляти запити та отримувати відповіді від сервера. Оскільки запит був би надісланий з браузера. Саме такі запити ми не обробляємо з цілей безпеки, тому що в такому випадку API токен буде у відкритому доступі, інші користувачі зможуть його отримати та за його допомогою отримати доступ до особистих даних або редагувати інформацію користувачів.

Ви можете тільки згенерувати приклади потрібних вам запитів для подальшого використання. І побачити там приклади відповідей і які дані ви можете отримати. А для перевірки запиту можна використовувати програми для роботи з API, наприклад POSTMAN.

8. Чому не створюється замовлення та отримую помилку «The source uuid has already been taken»?

Відповідь: Помилка означає, що в цьому джерелі вже є замовлення з цим номером з джерела (source_uuid). Відповідно повторно замовлення з таким самим номером створено не може бути, це перевірка системи на дублі.

Можливо видалялись замовлення на сайті чи відновлювали резервну копію (бекап). Оскільки вірогідно збилась нумерація на сайті та використані номери замовлень знову стали доступними для нових замовлень.

9. Чому не оновлюється залишок товару по ідентифікатору?

Відповідь: Скоріше за все ви передали ідентифікатор, якого не має в системі. В методі на оновлення залишків потрібно передавати саме offer_id - ідентифікатор варіанта товару, він не дорівнює product_id (ідентифікатор товару).

Навіть якщо у вас товари без варіантів, кожен з них має offer_id. Оскільки для системи товар без варіантів означає товар в одному варіанті. Ідентифікатори варіантів можна отримати у файлі експорту або запитом на отримання списку варіантів товарів по API. 

Якщо ви використовуєте артикули, то залишки можна оновлювати тільки передавши sku, без потреби отримувати та передавати ідентифікатори варіантів.

10. Не відправляються запити до API KeyCRM взагалі, в чому може бути причина?

Відповідь: Перевірте основні моменти: 

  • На вашому сервері коректний SSL сертифікат;
  • Запити відправляються з сервера, а не з браузера;
  • Ваш хостинг провайдер не блокує відправку запитів. 

Якщо ви все перевірили і складність залишається - напишіть в нашу підтримку. 

11. В замовленні були зміни, але дата в полі updated_at не оновилась. Чому?

Відповідь: Поки що не усі зміни в замовленні оновлюють це поле, а саме зміни в полях:

  • Теги;
  • Відповідальні;
  • ЮТМ-мітки;
  • Файли;
  • Завдання;
  • Оплати;
  • Тип відвантаження.

Зміни в усіх інших полях замовлення будуть оновлювати дату в "updated_at".

12. Як додати файл у картку воронки чи замовлення?

Відповідь: Щоб додати файл, спочатку його потрібно завантажити на сервер CRM. У відповіді ви отримаєте id (fileId) - ідентифікатор вашого файлу в системі. 

Далі вже можна передати запит на додавання цього файла у картку воронки чи у замовлення.

13. Як отримати залишок з колонки «Доступно» з врахуванням резервів?

Відповідь: Як при отриманні загальних залишків по усім складам, так і при отриманні залишків по кожному складу окремо ви отримуєте кількість у двох полях:

  1. «quantity» — загальна кількість залишків;
  2. «reserve» — загальна кількість зарезервованих залишків.

Відповідно ви можете при отриманні додати формулу розрахунку в скрипт і від загального залишку віднімати резерв, щоб записувати саме кількість доступну до продажу з врахуванням резерву по товарам.

14. Чому отримую помилку «The buyer.email must be a valid email address»?

Відповідь: Помилка означає, що переданий email не валідний. Адреса електронної пошти має бути в форматі xxx@xxx.xxx без пробілів і спец.символів. 

15. Як користуватись Swagger?

Відповідь: Swagger дозволяє взаємодіяти з API через зручний веб-інтерфейс, де можна переглядати документацію та згенерувати приклади потрібних вам запитів для подальшого використання, побачити там приклади відповідей і які дані ви можете отримати:

  • Перейдіть в нашу документацію API;
  • Оберіть потрібний метод;
  • Натисніть Try it out та заповніть параметри; 
  • Натисніть Execute, щоб сформувати посилання, взяти curl та можна використовувати в програмі для роботи з API, наприклад POSTMAN чи зі свого сервера

Теги: апі, помилка апі, запити api, робота з api, Swagger, свагер
Чи була наша стаття корисною?