Работа с OZON (Merchants) API средствами PHP
Работаем над большим интернет-магазином. И вот возникла необходимость из УТ (1С Управление торговлей) управлять заказами на O Ozon.
Смысл такой: есть БД PostgreSQL, 1C’ка работает с этой базой, вносит данные о поступивших заказах, меняет статусы заказов. И есть также скрипт PHP, который лежит на сервере и выполняется по крону каждые 3 минуты. Что этот скрипт должен делать?
- 1. Получать токен от API ozon;
- 2. Забирать все новые заказы с Ozon. Создавать новый XML файл с полученными заказами;
- 3. Получать из БД заказы с определённым статусом. Изменять статус этих заказов на Ozon. Изменять статус этих заказов в БД;
- 4. Закрывать заказы с определённым статусом на Ozon. Изменять статус этих заказов в БД.
С получением токена проблем не возникло. Воспользовавшись функцией file_get_contents(), я достиг желаемого.
Далее возникли проблемы. Вместе с запросом нужно было передавать заголовки. API документировано довольно плохо, примеры кода отсутствуют, в Гугле не нашёл ни одного примера. Пришлось работать методом проб и ошибок. Попробовал сначала действовать таким же образом через file_get_contents() — безрезультатно. Что бы я ни делал — выводилась ошибка, что невозможно создать канал.
В итоге воспользовался curl. Код получения списка новых созданных заказов (в json и в xml):
Моменты, связанные с созданием xml файла и изменениями в БД postgreSQL описывать тут не буду, ибо это уже будет отступлением от темы.
Далее нужно было изменить статус заказа. Для этого кроме всего прочего в теле PUT-запроса нужно было передать новый статус (как выяснилось путём долгих изысканий — в виде XML).
Смена статусов заказов выглядит следующим образом:
Для различных статусов нужно использовать разные XML данные. Приведу список всех доступных статусов:
Также иногда возникает необходимость отмены заказа. Для этого нужно указать причину отмены (также в виде XML в теле запроса).
Приведу пример (указанная причина: «Число заказов больше, чем есть в наличии»):
Таким образом можно управлять заказами на Озон со своего сайта.
Надеюсь, моя статья будет кому-то полезной. Всем спасибо за внимание!
Источник
Интеграция с маркетплейсом Ozon: боль, радость, разочарование
Ozon — российский универсальный интернет-магазин и один из лидеров рынка. Компания появилась в 1998 году. Ozon предлагает более 9 млн товарных наименований. По данным исследовательского агентства Data Insight, Ozon — третий по обороту онлайн-магазин России.
Нужно ли ещё что-то добавлять, чтобы рассказать о значимости и важности размещения товаров на данной торговой площадке?
Ozon предлагает 2 основные схемы сотрудничества:
- FBO — работа со склада Ozon.
Товары отгружаются на склад Ozon. Для обработки заказов не требуется никаких действий. Необходимо только управлять ценами.
- FBS — работа с собственного склада.
Выгружаем остатки товаров на Ozon. При поступлении заказа производим отгрузку товара на склад Ozon.
Маркетплейсы, в отличии от других рекламных площадок (Яндекс.Маркет), следят за контентом. Фотографии и описание, характеризующие товар, должны быть оформлены в соответствии с требованиями маркетплейса. Процедура интеграции заключается не в генерации файла-фида, а производится посредством общения с API маркетплейса.
Первая сложность, с которой придется столкнуться: классификация товаров на сайте не совпадает с классификацией товаров в Ozon. Необходимо найти для каждой категории товаров на сайте подходящую категорию товаров на Ozon. Если вы занимаетесь продажей аксессуаров для путешествий, то на Ozon вы такой категории не найдете. В этом случае необходимо детализировать ассортимент и добавить его в несколько разных категорий.
Второй этап — выгрузка свойств товаров.
В каждой категории свой набор характеристик. Часть свойств являются обязательными, без них не получится выгрузить товары. Есть общие свойства, которые необходимо указывать: вес, ширина/длина/глубина, бренд, тип товара.
Третий этап: выгрузка значения свойств.
Значения почти всех свойств в Ozon выбираются из справочников, т.е. нельзя написать произвольный текст. Надо обязательно выбрать один из вариантов, который предлагает Ozon. Мы выгружаем справочники значений каждого из свойств Ozon к нам на сайт.
Четвертый этап: сопоставление значений свойств.
Пятый этап: выгрузка товаров.
Выгружаем на Ozon через API заполненные карточки товаров. Если есть ошибки, исправляем и повторяем.
Загруженные товары создаются на Ozon. В этот момент выполняется проверка обязательных полей и корректности значений. Процесс длится от нескольких минут до нескольких часов.
Шестой этап: модерация.
Модераторы Ozon проверяют загруженные товары по следующим критериям:
- Товар на фото соответствует описанию. Пример: продаётся комплект из 12 упаковок кошачьего корма, а на фото 1 штука — могут не пропустить. Другой пример: корм для собак 12 кг, а на фото пакет 5 кг.
- Товар имеет правильный коммерческий тип.
- Фото хорошего качества, в фокусе, не размыто, без фона, без водяных знаков и надписей.
Точный список ошибок в документации различается для разных разделов — смотрите здесь.
Модерация занимает от 1 до 3 рабочих дней.
Модераторы Ozon не всегда адекватно проводят модерацию товаров. Пример: один и тот же корм для собак в разном весе — 1 кг, 3 кг, 7 кг, 10 кг. Упаковки по 1 кг, 7 кг, 10 кг — проходят модерацию, пачки по 3 кг — были отклонены без объяснения причин.
Повторная модерация занимает время: перевыгрузка, повторное ожидание модерации.
Для работы по модели FBO всё готово. Можно сформировать поставку на склад OZON, расслабиться и начать получать деньги.
Для работы по модели FBS необходимо настроить регулярную выгрузку остатков и цен с сайта в Ozon. В продажу будут поступать все товары, остатки для которых мы выгрузим.
Заказы, которые будут поступать на Ozon, мы выгружаем на сайт (и потом они уйдут в 1С). Обмен заказами нужен только для актуализации остатков. Заказы из Ozon на сайте будут носить только информативную функцию, обрабатывать их на сайте не нужно. На этом интеграция с Ozon завершена.
Работа с заказами происходит в ЛК Ozon:
Менеджер со стороны продавца должен обрабатывать заказы в отведенное время (подтвердить или отменить его), скачать маркировку, распечатать и наклеить на товары, в указанную дату отвезти заказ на склад Ozon.
Базовая интеграция занимает от 40 часов работы менеджера и программиста, в неё входит всё, что нужно для работы по FBS (ну и FBO, соответственно): выгрузка товаров (при необходимости повторная), настройка обмена остатками, ценами, загрузка заказов на сайт. В деньгах стоимость базовой интеграции составит от 70 000 руб. Рассчитать точную стоимость и обсудить варианты подключения к Ozon вы можете с менеджерами нашего агентства. Для этого нужно перейти по ссылке и оставить заявку.
Срок реализации на практике занимает 2-3 недели (базовая интеграция до 3-х разделов) при условии, что есть весь необходимый контент.
Почему нельзя за несколько дней подключиться к Ozon:
- API Ozon не всегда работает быстро (задержки до суток).
- Время на создание товара (несколько часов).
- Время на модерацию товара (1-3 рабочих дня).
- Повторить, если модерация провалилась.
Как мы выяснили ранее, маркетплейсы предъявляют требования к контенту: структура названия товара, обязательные свойства, значения (выбор из справочников). Во время интеграции специалист по-максимуму свяжет данные, которые можно автоматизированно связать. Но в 99% случаем всё равно потребуется заполнять недостающий контент. На данном этапе может потребоваться дополнительный бюджет на помощь контент-менеджера.
На маркетплейсе может отсутствовать ваш бренд или необходимый раздел товара. Создание новых брендов и разделов происходит через запрос в техническую поддержку. Ответ занимает несколько суток, что может вызвать задержки в интеграции.
Особенности работы маркетплейса
Кейс: Нельзя из одного кабинета продавать КГТ и не КГТ товары по схеме FBS.
КГТ — товары, размер которых в упаковке составляет более 180 см до 220 см по длинной стороне, при этом до 220 см по ширине, до 120 см по глубине, либо вес которых составляет более 25 кг и до 80 кг.
В такой ситуации необходимо создавать 2 разных личных кабинета в Ozon, настраивать интеграцию в 2 разных кабинетах и отдельно обрабатывать заказы.
Стоимость работ значительно увеличится.
CMS сайта не Bitrix, либо очень старая версия
У нас есть готовый инструментарий, но он рассчитан на свежие версии ПО (php 7.2 и выше, обновленный битрикс не старше 18 версии). Если CMS сайта не Bitrix, либо устаревшее ПО, то стоимость будет рассчитана индивидуально.
Документы на товар
Все документы, которые необходимы по законодательству РФ, должны быть загружены в ЛК Ozon.
- Документы на бренд (либо разрешение от бренда на продажу товаров).
- Таможенная декларация.
- Сертификаты (или отказное письмо).
- Данные о маркировке.
Ozon блокирует продажи в следующих случаях:
- Процент отмен заказов больше 2%.
- Процент просроченной доставки больше 4%.
- Высокий индекс цен.
Отдельный менеджер по маркетплейсам
В ЛК необходимо производить много действий:
- Собирать заказы/печатать маркировку.
- Отвечать покупателям (сервис вопросы-ответы), следить за комментариями.
- Следить за сервисом «запрос скидки».
- Следить за индексом цен (есть ложные срабатывания).
- Спорные отправления.
- Возвраты.
- Интеграция (выгрузка товаров) происходит по-отдельности. Чем больше разделов товара, тем дороже интеграция.
- Интеграцию нельзя провести за 1-2 дня (даже если напрячься и работать внеурочно по ночам). Из-за особенностей взаимодействия с маркетплейсом процесс выгрузки товаров может затянуться. Повлиять на это нельзя.
- С высокой долей вероятности, придется заполнять информацию о товаре — нанимать контент-менеджера или делать это самостоятельно.
- На чём можно сэкономить: в стоимость базовой настройки входит тот минимум работ, который не получится сократить. На практике, в 90% случаев, интеграция на этом не заканчивается, требуется заполнять разделы, работать с контентом. Для сокращения стоимости интеграции с Ozon, после выполнения базовой настройки специалистами агентства, можно работать с описаниями и другим контентом самостоятельно.
Материал подготовлен специалистами интернет-агентства «Пиксель Плюс»:
Руководителем отдела поддержки сайтов Татьяной Бисваховой;
Team Lead-ом отдела поддержки сайтов Павлом Гелейшевым.
«Нельзя просто так взять сгенерировать файл и выгрузиться в маркетплейс»
Если нельзя, но очень хочется, то можно 🙂
Для любой CMS:
https://blog.inform-resource.ru/2020/06/marketplace-ozon-ru.html
(только ещё настроить сопоставления)
А в целом да, та ещё боль.. ) ред.
Здравствуйте! Спасибо за ваш комментарий!
На практике столкнулись с тем, что контент клиента в 90% случаев не соответствует требованиям маркетплейсов. А часто даже разделы товаров не совпадают с разделами маркетплейса. Для большого каталога ваш модуль вряд ли можно использовать как готовое решение. Тут либо будет много ручной работы, либо придётся подключать программиста который по какой-то логике сопоставит товары автоматически.
Простой пример: у вас есть в каталоге раздел Чемоданы.
А в Ozon надо разбивать их на 2 категории: «Мягкие (тканевые) чемоданы» и «Жесткие чемоданы».
Программист по полю «материал» (в котором может содержаться «Пластик», «Ткань», «Полиэстер» и т.п.) сможет автоматически отправить товар в нужные категории, а ваш модуль автоматически это сможет сделать?
Татьяна, прекрасно Вас понимаю.
Хорошо ещё — когда есть поле «Материал» 🙂
Я бы сказал, это встречается на в 90, а в 95-99% случаев.
Всё решаемо 😉
Все тоже самое с Wildberries. Делали с api-pro. Имеем положительный опыт! ред.
Добрый день! Ozon Marketplace на связи)
В целом всё верно, но есть несколько замечаний — по порядку:
1. По поводу того, что классификация товаров на сайте не совпадает с классификацией товаров в Ozon — если правильно понял вас, речь про категории. Специально используем два типа: описательные и коммерческие. С первым вы встречаетесь при заведении карточки товара — его используем для навигации на сайте. Второй же тип — для расчёта комиссии.
2. Ошибки модерации — тут вы правы, они встречаются. Но, к сожалению, полностью исключить человеческий фактор пока нельзя, так как процесс не автоматизированный. Что касается повторной модерации: оператор, на которого падает такой запрос, не знает предыстории и что ошибка была с нашей стороны — поэтому обрабатывает ситуацию в порядке живой очереди. Но всё же повторная модерация занимает меньше времени, чем первая: до одного рабочего дня.
3. Блокировка по индексу цен — её отключили ещё осенью, поэтому за высокие цены не блокируем, а просто предупреждаем и выносим такие товары в отдельную вкладку «Товары с высокой ценой». Но это не значит, что можно устанавливать любые цены — за ситуацией наблюдаем со стороны и в любой момент можем вернуть все, как было)
А разве правилами озон можно работать сразу по 2м моделям одному юридическому лицу?
У меня вот больше вопросов, чем ответов, причем я рассматриваю ситуацию сразу с двух сторон. и как продавец и как программист.
Так как инструкции Озон сильно противоречат ситуации. Работа с их личным кабинетом также не обычна. Остатки имеют большой срок на обновление, всплывают ошибки на иностранном языке, и их описаний нет в инструкциях.
По добавлению товара, это просто тихий ужас. По инструкции они просят сначала проверить наличии карточки. Проверяем — видим 16 одинаковых карточек, чем они отличаются не известно. в какую добавлять наш товар не известно, если во все вопрос остатков. если в одну, то как узнать её параметры, чтобы потом не отвечать за характеристику товара которая не верная, просто тот кто завел данную карту был не компетентным сотрудником.
Одинаковый товар легко ищется по штриху. иногда десятки карточек одного и того-же товара.
Поиск по артиклю также находит десятки карточек товара.
—- При модерации отклоняется товар с ответом что что-то не верно в карточке товара, но мы её и не заводили, мы выбрали существующую. и поменять не можем её. КАК? Карл.
Не понимаю для меня с точки зрения программирования все понятно. Бренд — Артикул — НЕАссортиментный товар, если эти параметры совпали — это один товар. и не надо плодить карточки.
Совпал Штрих — НеАссортиментный — это один товар.
И сразу подходить к процессу что весь товар не имеет ассортимента, и именно ассортиментность выносить как особенность.
Как минимум дать удобный для программистов файл или доступ к базе, где есть возможность увидеть связки ШТРИХ — БРЕНД — АРТИКУЛ — ozonID . И все тогда любой программист достаточно быстро сможет подогнать свой магазин под OzonID и это улучшит внешний вид.
А так ну придет еще 100-200 продованов и у вас будет просто бардак на сайте и народ начнет сбегать так как черт его поймет, что с товаром не так он продается от 1000 до 6000, и это один и тот же товар. И с точки зрения покупателя это БРЕД. и отпугивает. И лично мне реально страшно когда я вижу вроде один и тот же товар нос таким плечом цен. Зная нашу особенность продаж, ты волей не волей начнаешь думать что тот у кого дешевле всего то китайская подделка (радует одно, обычно это сам ОЗОН), а там где дороже всего. те ищут дурака.
При этом сам Озон не предлагает никаких интеграций ни с Битрикс (ну слишком популяраня система) ни с 1С (ну это вообще нет смысла говорить зачем)
Источник