Как заказ проходит путь от корзины покупателя до статуса «Доставлено»: что видит покупатель, что делает менеджер, где смотреть, что именно уйдёт в Ozon, и как отменить доставку, если заказ не состоялся.
Установка плагина и разбор всех настроек — в отдельной инструкции «Ozon Доставка для Shop-Script: установка и настройка». Здесь считается, что плагин уже подключён.
У Ozon нет черновиков: запрос на создание сразу заводит живой заказ, который поедет. Поэтому плагин делит работу надвое, и разница между фазами определяет всё остальное.
Расчёт идёт постоянно: в оформлении заказа, при каждом сохранении заказа в бэкенде, при открытии диалога отправки. В Ozon он ничего не создаёт и совершенно безопасен.
Создание заказа происходит ровно один раз, по действию «Отправлен». Не при оплате, не при подтверждении, не при сохранении.
Отсюда же берутся два предохранителя, включённых у нового способа доставки по умолчанию: тестовый режим и «Виден только сотрудникам».
Ещё одна вещь, которую полезно знать заранее: один заказ в Ozon может распасться на несколько отправлений, например если товары лежат на разных складах. У каждого свой номер и свой статус, и отменять их можно по отдельности.
Доставка Ozon показывается в оформлении заказа, только когда выполнены все условия сразу:
Требование телефона — не прихоть плагина: без номера Ozon не свяжется с получателем и не выдаст заказ. Номер должен быть тем, под которым покупатель зарегистрирован в Ozon; на незнакомый номер Ozon отвечает user with specified phone number was not found.
Самая частая жалоба на старте — «всё настроил, а доставки нет» — почти всегда об этом: телефон в форме ещё не введён.

Пункты выдачи и постаматы города встают в общий список вариантов самовывоза и на карту. У каждого варианта:
Выбранный пункт плагин переспрашивает у Ozon отдельно. Поэтому отказы вроде «этот пункт сейчас не работает», «этот пункт не принимает крупногабаритные товары», «заказ не подходит этому пункту по габаритам» покупатель видит до оформления, с подсказкой выбрать другой пункт. Постаматы, к слову, строже по габаритам и нередко отказывают там, где обычный пункт выдачи заказ принимает.
Вариант называется «Курьерская доставка Ozon». После его выбора появляется поле «Дата доставки Ozon» — список настоящих слотов Ozon:
сб, 15 августа, 09:00–22:00 вс, 16 августа, 09:00–22:00 пн, 17 августа, 09:00–22:00
Дата и время в одной строке, потому что это одно решение. Пока Ozon предлагает одно окно в день, список выглядит как перечень дат; появятся два окна на дату — станет две строки на день.
Это именно слоты Ozon, а не пересчитанные плагином даты. Если из-за времени на комплектацию ближайшие даты недостижимы, они просто выбрасываются из списка, а остальные остаются такими, какими их назвал Ozon. Иначе покупателю предложили бы доставку, заказать которую невозможно.
Ненайденный адрес виден сразу: «Не удалось найти этот адрес на карте. Проверьте улицу и номер дома — Ozon доставляет курьером только по точному адресу». До того как курьер приедет не туда.
При создании, редактировании, оплате и восстановлении заказа плагин пересчитывает доставку и пишет в ленту заказа предварительный расчёт:
Предварительный расчёт Ozon Доставки. В Ozon уйдёт следующее: Получатель: Иванов Иван Телефон: +7 900 000-00-00 Куда: Пункт выдачи Ozon, Сочи, Урожайная улица, 74а Схема доставки: MIX Адрес для Ozon: Россия, Краснодарский край, Сочи, Урожайная улица, 74а Отправление Способ доставки: Пункт выдачи Ozon (PICK_UP) Дата доставки: 18–19 августа Товары (объявленная цена): ART-1 × 2 — 1 800 руб. Стоимость доставки: 300 руб. Комиссия Ozon: 214 руб. Заказ в Ozon ещё не создан — он будет создан по действию «Отправлен», и перед отправкой расчёт повторится.

Это безопасная операция: расчёт в Ozon ничего не создаёт. Чтобы увидеть свежий расчёт, достаточно пересохранить заказ в редакторе.
Отдельно обратите внимание на строку «Адрес для Ozon». Это результат работы геокодера, то есть то, что реально уйдёт в Ozon. По ней видно неверно определённый город или дом — и видно до отправки, а не после.
Туда же попадают ошибки: нет телефона, нет номера дома, значение длиннее лимита Ozon, товар не найден. Плагин ничего не решает молча.

При оформлении заказа в бэкенде, например по телефону, и выборе курьерской доставки Ozon поле «Дата доставки Ozon» появляется прямо в редакторе заказа, рядом со способом доставки. Ровно так же, как оно появилось бы у покупателя.
Проведите заказ обычным порядком — оплата, подтверждение. После этого в списке действий появится кнопка «Отправлен».

Плагин открывает диалог со сводкой того, что уйдёт в Ozon:
Незаполненные обязательные поля подписаны прямо в сводке: «не заполнено — Ozon может отклонить заказ».

Главное свойство этого диалога — он обязывающий, а не справочный. В Ozon уходит ровно то тело заказа, которое было показано на экране. Если бы плагин пересобирал заказ после подтверждения, ответ Ozon за эти несколько секунд мог измениться, и уехало бы не то, что менеджер прочитал.
После сохранения заказ появляется в личном кабинете покупателя на Ozon, рядом с его обычными покупками на маркетплейсе, с отметкой «Заказ с сайта партнёра».

Заказу присваивается номер заказа Ozon и номера отправлений, а та же сводка, слово в слово, попадает в ленту заказа рядом с номером.

Повторная отправка того же заказа ничего не создаст: плагин это видит и говорит об этом.

Статус заказа в Shop-Script всё равно изменится. Плагин намеренно не блокирует действие менеджера: заказ может понадобиться пометить отправленным по причинам, никак не связанным с Ozon. Но в ленте заказа будет прямо написано, что заказ в Ozon не создан и почему.
Дальше обычный порядок: устранить причину, вернуть заказ в предыдущий статус и повторить отправку.
В карточке заказа, рядом с адресом доставки, появляется список отправлений со статусом каждого. Статус приходит от Ozon и переводится на человеческий язык.
| Статус | Что означает |
|---|---|
| Ожидает подтверждения, упаковки, отгрузки, регистрации | Отправление ещё в работе |
| Отправлено продавцом, У водителя, Идёт приёмка, Доставляется | В пути |
| Доставлено | Доставлено получателю |
| Отменено, Арбитраж, Клиентский арбитраж, Не принято в сортировочном центре | Требует внимания |
| статус недоступен | Ozon не ответил на запрос; причина во всплывающей подсказке |

Отмену заказывает сам Shop-Script, своей кнопки у плагина нет. Доставка в Ozon отменяется в трёх случаях:
Перед отменой плагин спрашивает Ozon, можно ли ещё вернуть этот заказ, и печатает ответ по заказу и по каждому отправлению отдельно: заказ из двух отправлений вполне может быть отменяем наполовину.
| Ответ | Что произойдёт |
|---|---|
| Можно отменить | Отмена уйдёт в Ozon по кнопке |
| Отказ Ozon | Запрос на отмену не отправится: незачем посылать то, в чём только что отказали. Действие в Shop-Script выполнится, номер заказа Ozon останется при заказе, а отменить доставку можно будет в личном кабинете Ozon |
| Такого заказа у Ozon нет | Обычно значит, что заказ уже отменён в кабинете Ozon вручную либо создан под другим client_id |
| Проверить отмену не удалось | Ozon не ответил. Отмена всё равно будет отправлена, но причину выбрать не получится, уйдёт общая |
Список причин присылает сам Ozon, плагин показывает его как есть: «Отменили часть товаров из заказа», «Не применилась скидка или промокод», «Слишком долго ждать», «Нашлось дешевле», «Указан неверный адрес», «Нет нужной причины». Выбранная причина уходит в Ozon и записывается в ленту заказа во всех исходах: отменили, отказались отменять, отменили тестовый заказ.
После успешной отмены плагин забывает номер заказа Ozon, и заказ можно отправить заново. Восстановление удалённого заказа возвращает его в состояние «до отправки»: доставка пересчитывается, но новый заказ в Ozon при этом не создаётся, для этого нужно снова нажать «Отправлен».

Тестовый режим включён у нового способа доставки с самого начала, чтобы первый же заказ не ушёл в Ozon раньше, чем вы посмотрите, что именно туда уходит. Он подменяет ровно один шаг — саму отправку.
TEST-…, по отправлению на каждый split.Тестовый заказ определяется по своему номеру, а не по настройке. Из этого следуют три практических вывода:
| Симптом | Причина | Что делать |
|---|---|---|
| Доставка Ozon не появилась в оформлении заказа | Не введён телефон покупателя | Способ появится сразу после ввода |
| То же, телефон введён | Включено «Виден только сотрудникам» | Выключите настройку, когда закончите проверку |
| «Не удалось проверить заказ в Ozon Доставка: user with specified phone number was not found» | Ozon не знает покупателя с таким номером | Уточните у покупателя номер, под которым он зарегистрирован в Ozon, и исправьте в заказе |
| Курьер не предлагается, самовывоз есть | Геокодер не нашёл точного адреса | Проверьте улицу и номер дома в заказе |
| Отказ Ozon с упоминанием offer id | Товар не заведён в Ozon под выбранным идентификатором | Сверьте артикулы в Shop-Script и в кабинете Ozon |
| Отказ Ozon с упоминанием цены | В заказе есть позиция с нулевой ценой: подарок, промо | Ozon не принимает нулевые цены. Плагин называет виновную позицию по артикулу |
Заказ получил номер TEST-… |
Включён тестовый режим | Выключите режим, отмените доставку у заказа, повторите отправку |
| Статус отправления не показывается | Ozon не ответил на запрос | Причина во всплывающей подсказке рядом со статусом |
| Отмена не ушла в Ozon | Ozon ответил, что заказ отменить уже нельзя | Отмените доставку в личном кабинете Ozon |
| Заказ восстановили, а в Ozon его нет | Восстановление возвращает заказ в состояние до отправки | Нажмите «Отправлен» ещё раз |
Если причина не очевидна, включите «Подробную запись» в настройках плагина и повторите действие: в debug.log прямым текстом написано, что именно произошло. Не забудьте выключить её после разбора — файлы растут быстро и содержат адреса и телефоны покупателей.