Плагин добавляет в оформление заказа пункты выдачи, постаматы и курьера Ozon, а заказ отправляет в Ozon кнопкой смены статуса.
Здесь описано, как плагин установить, подключить к кабинету продавца и настроить. Как дальше обрабатывать заказы, разобрано отдельно, в статье «Обработка заказов через Ozon Доставку».
wa-plugins/shipping/ozonlogistics и создаст таблицу для справочника пунктов выдачи. Отдельного приложения в бэкенде не появится: плагин живёт в списке способов доставки.Третий шаг обязателен. На странице создания способа настроек ещё нет: вместо формы стоит плашка «Способ доставки ещё не создан». Пока способа не существует, плагину некуда сохранять ключи, некуда класть пункты выдачи, а redirect URL вёл бы не туда. Полная форма появляется сразу после сохранения.

Способов «Ozon Доставка» можно создать несколько, например на два разных кабинета продавца. У каждого свои ключи, свой журнал и свой отдельный справочник пунктов выдачи: списки между способами не пересекаются, и каждый способ загружает свой сам.
Шесть шагов, делаются один раз. В форме настроек они продублированы в блоке «Что сделать в личном кабинете Ozon»: он раскрыт, пока плагин не авторизован, и сворачивается сам, когда токен получен.

В кабинете продавца откройте Товары → Все приложения, найдите приложение Ozon Доставка и нажмите «Подключить». Укажите название магазина, ссылку на него и логотип: их увидят покупатели в своём личном кабинете Ozon рядом с заказами, оформленными у вас. Нажмите «Добавить».
Заявку проверяют люди, обычно не дольше двух рабочих дней. Остальные шаги можно проделать сразу, но до появления статуса доставка работать не будет.
Инструкция Ozon: Как подключить Ozon Доставку для продавцов.
Откройте Настройки → Приложения и разрешения, вкладка «Приложения», нажмите «Создать». Укажите название, например «Ozon Доставка», и отметьте три уровня доступа к API:
| Уровень доступа | Зачем |
|---|---|
seller-api.ozon-logistics |
Расчёт, создание и отмена заказов |
seller-api.posting-fbo-read-only |
Статусы отправлений в схеме FBO |
seller-api.posting-fbs-read-only |
Статусы отправлений в схеме FBS |
Больше плагину ничего не нужно. Нажмите «Создать» — приложение получит статус «Активно».
Напротив приложения нажмите кнопку с иконкой ключа, в окне «Данные клиента» — «Перейти в кабинет».
Если кабинета разработчика ещё нет, заведите его: на вкладке «Разрешения» того же раздела нажмите «Выдать», укажите имя и адрес электронной почты. Ссылка на кабинет придёт письмом.
В кабинете разработчика, в разделе «Настройки обратных URL», вставьте адрес из поля redirect URL в настройках плагина. На этот адрес Ozon вернёт вас после подтверждения доступа.
Поле в плагине целиком работает как кнопка: щёлкните по нему, и адрес скопируется в буфер обмена, а внутри поля появится галочка. Адрес длинный, набирать его руками не нужно.
Скопируйте из кабинета разработчика client_id (UUID) и client-secret в одноимённые поля плагина, нажмите «Сохранить», затем «Авторизоваться».
Откроется окно Ozon с просьбой подтвердить доступ. После подтверждения окно закроется само, а строка «Доступ» сменится на «Авторизовано» с датой действия токена. Дальше токен обновляется автоматически: возвращаться к этому шагу нужно, только если вы пересоздали приложение в Ozon.

Кнопки на странице выключены, пока форма не сохранена. Проверки выполняются на сервере, который читает настройки из базы и о содержимом формы ничего не знает. Кнопка, нажатая с несохранённой правкой на экране, ответила бы про другое. Сохраните настройки, и кнопки включатся. Отмените правку вручную — блокировка снимется сама.

Кнопка «Проверить соединение» рядом со статусом доступа принудительно обновляет токен и спрашивает Ozon, подключена ли Ozon Доставка для этого кабинета. Ответ сохраняется и виден на странице в следующий раз:
| Ответ | Что значит |
|---|---|
| Токен обновлён, соединение установлено. Доступные схемы: … | Всё в порядке |
| Ozon Доставка не подключена для этого кабинета продавца | Приложение из шага 1 ещё не получило статус «Подключено» |
| Сообщение Ozon об ошибке | Например, client-secret пересоздан и старый больше не действует |

Обновление токена здесь принудительное не случайно: непросроченный токен отвечает так же хорошо и с client-secret, которого больше не существует. Проверка на старом токене отрапортовала бы об исправном соединении, которое на самом деле уже сломано.
Действуют сразу на оба способа доставки.

MIX, FBO или FBS. По умолчанию MIX: Ozon сам выбирает схему в зависимости от товара. Эта же настройка определяет, у какого API плагин спрашивает статусы отправлений при отслеживании, поэтому, если вы работаете только по одной схеме, укажите её явно.
По какому значению Ozon узнаёт товар:
| Вариант | Что уходит в Ozon |
|---|---|
| Код артикула (по умолчанию) | Поле «Артикул» у артикула товара |
| ID товара | Внутренний ID товара в Shop-Script |
| ID артикула | Внутренний ID артикула в Shop-Script |
Тот же товар должен быть заведён в кабинете Ozon под этим же значением. Это самая частая причина отказов на старте: если Ozon не найдёт хотя бы одну позицию, он откажет в заказе целиком и ответит что-нибудь вроде invalid offer id 12328.
Валюта, в которой заданы тарифы ниже. Она же уходит в Ozon вместе с ценами товаров.
По умолчанию выключено. Пока выключено, Ozon показывает доставку бесплатной, и покупателю в его кабинете Ozon, и вам.
Включите — Ozon покажет ту сумму, которую заказ насчитал за доставку: тариф ниже, но уже со скидками, промо-акциями и правками менеджера. Если доставка в заказе ничего не стоит, Ozon покажет её бесплатной и при включённой настройке: нулевую сумму он не принимает вовсе, и вместо неё плагин не отправляет ничего.
По умолчанию выключено. Тонкость в сроках, о которой легко не догадаться.
Ozon называет сроки так, будто отправление передают ему прямо сейчас: ответ «18 августа» на запрос от 17-го означает «через день после передачи», а не «через день после оформления». Пока настройка выключена, эти сроки показываются покупателю как есть, то есть как будто заказ уже собран.
Включите — к сроку прибавится время на сборку заказа, и более ранние даты покупателю предлагаться не будут: ни в сроке доставки, ни в списке дат курьерской доставки. Сколько собирается заказ, плагин не спрашивает: это считает сам Shop-Script по полю «Дополнительное время на комплектацию» (оно выше, в общей форме способа доставки) и по рабочим часам на обработку заказа из режима работы магазина.
Правило простое: если между «покупатель оформил» и «курьер Ozon забрал» проходит хотя бы день, включайте.
По умолчанию включено. Пока включено, доставка Ozon появляется в оформлении заказа только у того, кто вошёл в бэкенд в этом же браузере: у администратора или менеджера магазина. Покупатели её не видят.
Это позволяет проверить настройки и оформить настоящий пробный заказ на работающем магазине. Обязательно выключите, когда закончите проверку, иначе способ так и не появится у покупателей.
По умолчанию включено. Пока включено, заказ в Ozon не создаётся: по действию «Отправлен» плагин проделывает всё то же самое, но присваивает заказу тестовый номер вида TEST-…. Расчёт доставки при этом настоящий.
Что именно происходит в тестовом режиме при обработке заказа, разобрано в статье «Обработка заказов через Ozon Доставку».
Показывать ли курьерскую доставку в оформлении заказа.
Обязателен. Курьеру нужен точный адрес: страна, регион, город, улица, дом, индекс и координаты. В заказе адрес записан одной строкой, поэтому плагин разбирает её через Яндекс.Геокодер.
Ключ берётся в кабинете разработчика Яндекса, сервис «Геокодер (HTTP)». Здесь легко ошибиться: это не тот ключ, что у JavaScript API, на котором работает карта пунктов выдачи в оформлении заказа. Нужен отдельный, и указать его можно только в этом поле. Провайдер карт из «Настройки → Карты» не подойдёт: он отдаёт только координаты.
Кнопка «Проверить ключ» делает пробный запрос и говорит прямо: ключ годен, ключ не годен или это ключ другого сервиса.
Без ключа курьерская доставка при оформлении заказа не появится, даже если она включена. Менеджер увидит причину в диалоге «Отправлен», а в настройках будет висеть предупреждение.

Фиксированный тариф в выбранной валюте, 0 — бесплатно.
Тариф именно фиксированный, потому что Ozon в ответе на расчёт стоимость доставки не возвращает. Единственные деньги в его ответе — комиссия продавца: логистика, комиссия за продажу и резерв под возвраты. Поэтому цена для покупателя остаётся вашим решением.
Прибавить к тарифу ту самую комиссию, которую Ozon вернул при расчёте. Покупатель оплатит её целиком. Полезно, если вы не хотите закладывать логистику в цену товара.
Показывать ли пункты выдачи и постаматы.
Строка состояния: сколько точек загружено и когда обновлялось. Рядом кнопка «Обновить пункты выдачи» со счётчиком прогресса.
Первую загрузку нужно запустить руками, и она занимает несколько минут: точек по стране порядка девяноста тысяч, и по каждой Ozon отдаёт адрес, координаты, расписание, срок хранения, рейтинг и фотографии. Дальше справочник обновляется сам раз в сутки, если в Webasyst настроен cron.
Пока список пуст, самовывоз при оформлении заказа не появится, даже если он включён. Плагин прямо говорит об этом в настройках.

Работают так же, как у курьерской доставки, но задаются отдельно: самовывоз в пункт выдачи обычно стоит дешевле курьера или бесплатен.
По умолчанию выключено. Обычно в журнал попадают только сбои. Включённая подробная запись дополнительно записывает ход каждого расчёта и каждый запрос к Ozon целиком, вместе с адресами и телефонами покупателей. Файлы при этом растут быстро: включайте на время разбора и выключайте после. Ключи, пароли и токены в журнал не попадают никогда, ни в каком режиме.
Путь к папке журнала именно этого способа доставки. У каждого подключения Ozon Доставки своя папка: wa-log/shipping/ozonlogistics/<номер способа доставки>/.
| Файл | Что внутри |
|---|---|
error.log |
Что технически сломалось: Ozon не ответил, токен не обновился, заказ не ушёл. Пустой файл — норма |
events.log |
Заказ создан в Ozon, заказ отменён, плагин авторизован |
debug.log |
Ход каждого расчёта. Пишется при включённой подробной записи |
delivery-api.log |
Обмен с API Ozon Доставки |
seller-api.log |
Обмен с Seller API: статусы отправлений, проверка подключения |
oauth.log |
Обмен токенами |
geocoder.log |
Запросы к Яндекс.Геокодеру |
Неудачные вызовы API пишутся всегда, удачные — только при включённой подробной записи. После 8 МБ файл уходит в …1.log, так что места они не займут.
Почему доставка не появилась в оформлении заказа, видно в debug.log при включённой подробной записи: там прямым текстом написано «Способ скрыт: телефон покупателя ещё не известен», «Курьерская доставка не предлагается: не задан ключ Яндекс.Геокодера», «Ozon отказал в курьерской доставке».
Последняя строка секции добавлена самим Webasyst: она показывает дату последнего запуска плановой синхронизации справочника пунктов выдачи по cron. Если дата давняя, значит cron не отрабатывает, и список точек обновляется только кнопкой вручную.

Шаги 8 и 9 подробно разобраны в статье «Обработка заказов через Ozon Доставку».
| Симптом | Причина | Что делать |
|---|---|---|
| Вместо полей плашка «Способ доставки ещё не создан» | Способ не сохранён | Нажмите «Сохранить», откройте способ заново |
| Кнопки в настройках выключены | В форме есть несохранённые правки | Сохраните настройки |
| «Ozon Доставка не подключена для этого кабинета» | Приложение из шага 1 ещё не одобрено | Дождитесь статуса «Подключено» в кабинете Ozon |
| Соединение проверялось, а теперь ошибка авторизации | Пересоздан client-secret или частное приложение | Введите новые ключи, сохраните, авторизуйтесь заново |
| Способ не появляется в оформлении заказа | Включено «Виден только сотрудникам» | Выключите после проверки |
| Самовывоз включён, пунктов нет | Справочник не загружен | Нажмите «Обновить пункты выдачи» и дождитесь окончания |
| Пункты выдачи перестали обновляться сами | Не настроен cron Webasyst | Настройте cron или обновляйте кнопкой |
| Курьер не появляется | Не задан или не годится ключ геокодера | Введите ключ сервиса «Геокодер (HTTP)», сохраните, нажмите «Проверить ключ» |
| «Проверить ключ» отвечает, что ключ не того сервиса | Взят ключ JavaScript API | Нужен отдельный ключ сервиса «Геокодер (HTTP)» |
| Сменили настройку, в оформлении заказа без изменений | Shop-Script кэширует список способов доставки на 5 минут по адресу и корзине | Проверьте на другом городе или подождите |
Заказы получают номера TEST-… |
Включён тестовый режим | Выключите «Тестовый режим» в настройках |