Зачем нужны ключи и как ими пользуется сайт
Ozon Delivery API — программный интерфейс «Ozon Доставки для бизнеса». Через него сайт получает справочник пунктов выдачи, считает стоимость доставки, создаёт заказы, подтверждает отправления, скачивает этикетки и узнаёт статусы. Чтобы Ozon понимал, от чьего имени идут запросы, в кабинете создаётся частное приложение, и у него есть два ключа:
- Client ID — идентификатор приложения;
- Client Secret — секретный ключ, который нельзя никому показывать.
По этим ключам сайт сам получает у Ozon временный токен доступа: запрос идёт на сервер авторизации xapi.ozon.ru, а дальше все вызовы — на api-delivery.ozon.ru с этим токеном. Токен живёт около часа, плагин обновляет его заранее и сам получает новый, если Ozon ответил, что токен устарел. Ни вам, ни покупателю делать для этого ничего не нужно. Если вы разработчик и пишете свою интеграцию, порядок методов и подводные камни собраны в обзоре Ozon Delivery API.
Все запросы к Ozon идут с сервера сайта на сервер Ozon. Ключи никогда не попадают в браузер покупателя, в код страниц и в журналы плагина.
Где создать приложение
Приложение создаётся в кабинете Ozon Доставки, а не в кабинете продавца маркетплейса. Если кабинеты объединены, переключитесь на «Доставку» кнопкой рядом с названием магазина.
- Откройте Настройки → Управление частными приложениями и нажмите «Создать».
- Задайте название, например «Сайт магазина», и отметьте уровни доступа — список ниже.
- Нажмите «Создать». В строке приложения появится значок ключа.
- Нажмите на значок и скопируйте Client ID и Client Secret.
Не путайте с приложением «Ozon Доставка для Продавцов» в кабинете продавца: у него права вида seller-api.*, и с Ozon Delivery API оно не работает. Для плагина нужны права вида delivery-api.*.
Какие права (скоупы) выдать приложению
Права определяют, какие группы методов API доступны приложению. Плагину нужны пять обязательных прав и желательно ещё три — для удобных экранов в админке.
| Право | Что открывает | Нужно плагину |
|---|---|---|
delivery-api.delivery | Проверка, может ли Ozon доставить покупателю, и сроки | Обязательно |
delivery-api.delivery-point | Пункты выдачи и постаматы: список, подробности, проверка доступности | Обязательно |
delivery-api.order | Расчёт стоимости и создание заказа | Обязательно |
delivery-api.posting | Отправления: подтверждение, этикетки, статусы, отмена | Обязательно |
delivery-api.return | Возвраты и штрихкод для их получения | Обязательно |
delivery-api.shipment-method | Названия и статусы методов доставки | Желательно |
delivery-api.dropoff-point | Адрес и график пункта, куда вы сдаёте посылки | Желательно |
delivery-api.return-point | Адрес пункта, где вы забираете возвраты | Желательно |
delivery-api.all | Все методы сразу | Можно вместо всех перечисленных |
Без желательных прав плагин работает, но в настройках вместо названия метода и адресов пунктов вы увидите только номера. При проверке подключения плагин сначала просит у Ozon все права, а если Ozon отказывает в дополнительных, работает с обязательными.
Есть ещё право delivery-api.container — для отгрузки грузовыми местами (доверительной приёмки). Эту схему подключает поддержка Ozon, плагин ею не пользуется.
Белый список IP: какой адрес указать
В настройках приложения можно включить белый список IP — тогда Ozon принимает запросы с ключами только с перечисленных адресов. Это хорошая защита на случай утечки ключей, но здесь часто ошибаются.
Указывать нужно исходящий IP-адрес сервера, на котором работает сайт: именно с него плагин отправляет запросы в Ozon. Его знает хостинг — напишите в поддержку: «Какой исходящий IP у моего сайта для запросов во внешние API?». Этот адрес может не совпадать с IP, который вы используете для SSH или FTP, и с адресом из DNS-записи домена: на одном из наших проектов адрес для SSH и исходящий адрес сервера были разными.
Если вы включили белый список и указали не тот адрес, проверка подключения в плагине не пройдёт: Ozon отклонит запрос. Если переезжаете на другой хостинг или сервер, сначала добавьте новый адрес в список, а потом переносите сайт.
Как вставить ключи в плагин
- В админке WordPress откройте WooCommerce → Ozon Доставка, вкладку «Подключение».
- Вставьте Client ID и Client Secret в соответствующие поля.
- Нажмите «Сохранить и проверить подключение».
Плагин сразу запрашивает у Ozon токен и пробует прочитать данные кабинета. Если всё в порядке, в чек-листе готовности строка «Ключи приложения Ozon Доставки» становится выполненной, а «Подключение к Ozon» показывает «Ozon принимает ключи» и время проверки. Следующий шаг — выбрать метод доставки, об этом в статье Метод доставки. Весь порядок настройки — в инструкции.
Что значат ошибки при проверке подключения
| Что видно | Что это значит | Что сделать |
|---|---|---|
| HTTP 401 и сообщение «API access disabled, please contact support» | Чаще всего — неверный Client Secret. Текст ответа Ozon вводит в заблуждение: доступ не отключён, просто ключ не подошёл | Скопируйте ключи ещё раз целиком, без пробелов в начале и конце, и снова нажмите проверку |
| HTTP 403 | Доступ запрещён: у приложения нет нужных прав или запрос пришёл не с адреса из белого списка | Проверьте права приложения и исходящий IP сервера |
| Ошибка соединения или таймаут | Сервер сайта не смог связаться с Ozon | Проверьте, что хостинг разрешает исходящие HTTPS-запросы к xapi.ozon.ru и api-delivery.ozon.ru, и повторите проверку через минуту |
Иногда Ozon отвечает не сразу: примерно один запрос из 10–20 «зависает» без ответа. Плагин ставит короткие таймауты и сразу повторяет такой запрос, поэтому единичные сетевые предупреждения в журнале — это нормально. Подробнее о том, как их отличать от настоящих проблем, — в статье Частые ошибки и решения.
Ozon использует защиту от DDoS: на запрос сервер иногда отвечает перенаправлением и просит повторить его с cookie. Плагин делает это сам, поэтому в настройках хостинга ничего менять не нужно.
Как хранить и передавать ключи
- Вставляйте ключи только в настройки плагина. Плагин хранит их в базе вашего сайта, в настройках без автозагрузки. В журналах, письмах и коде страниц ключей нет.
- Не пересылайте ключи в мессенджерах и открытым текстом по почте. Если ключи нужно передать разработчику, используйте одноразовую ссылку, менеджер паролей или зашифрованный архив с паролем, отправленным по другому каналу.
- Не используйте одни ключи на нескольких сайтах без необходимости. Для каждого сайта удобнее отдельное приложение: так проще понять, откуда идут запросы, и отключить доступ одному сайту.
- Включите белый список IP, если хостинг даёт постоянный исходящий адрес.
Доступ к самому кабинету Ozon Доставки для работы плагина не нужен: достаточно ключей приложения.
Вопросы о ключах
Можно ли дать разработчику доступ к кабинету вместо ключей?
Для работы плагина доступ к кабинету Ozon не нужен — достаточно ключей приложения. Если разработчику всё же нужен кабинет, выдайте доступ с минимальными правами, нужными для задачи.
Нужно ли периодически обновлять ключи в плагине?
Временный токен доступа плагин обновляет сам, без вашего участия. Менять ключи в настройках плагина нужно, когда вы создали новое приложение или выпустили для него новые ключи в кабинете Ozon Доставки.
Читайте дальше
- Ozon Delivery API: обзор на русскомДоступ и токен, порядок методов, пункты выдачи, ошибки, перенаправление 307 и таймауты.
- Кабинет Ozon Доставки: вход и настройкаГде вход, как зарегистрироваться или объединить кабинеты, роли сотрудников и первые настройки.
- Метод доставки, пункт отгрузки и возвратовКуда вы сдаёте посылки и где забираете возвраты, как выбрать метод в плагине.
- Требования к сайту и хостингуWordPress, WooCommerce, 64-битный PHP, cron, исходящие запросы и оформление заказа.
- Частые ошибки и решенияНет способа Ozon, не считается цена, 401 «проверьте ключи», баланс, справочник, кэш.
- Инструкция: установка и настройка плагина12 шагов от кабинета Ozon до первого заказа на сайте WooCommerce.