Работа с OZON (Merchants) API средствами PHP
Работаем над большим интернет-магазином. И вот возникла необходимость из УТ (1С Управление торговлей) управлять заказами на O Ozon.
Смысл такой: есть БД PostgreSQL, 1C’ка работает с этой базой, вносит данные о поступивших заказах, меняет статусы заказов. И есть также скрипт PHP, который лежит на сервере и выполняется по крону каждые 3 минуты. Что этот скрипт должен делать?
- 1. Получать токен от API ozon;
- 2. Забирать все новые заказы с Ozon. Создавать новый XML файл с полученными заказами;
- 3. Получать из БД заказы с определённым статусом. Изменять статус этих заказов на Ozon. Изменять статус этих заказов в БД;
- 4. Закрывать заказы с определённым статусом на Ozon. Изменять статус этих заказов в БД.
Далее возникли проблемы. Вместе с запросом нужно было передавать заголовки. API документировано довольно плохо, примеры кода отсутствуют, в Гугле не нашёл ни одного примера. Пришлось работать методом проб и ошибок. Попробовал сначала действовать таким же образом через file_get_contents() — безрезультатно. Что бы я ни делал — выводилась ошибка, что невозможно создать канал.
В итоге воспользовался curl. Код получения списка новых созданных заказов (в json и в xml):
Моменты, связанные с созданием xml файла и изменениями в БД postgreSQL описывать тут не буду, ибо это уже будет отступлением от темы.
Далее нужно было изменить статус заказа. Для этого кроме всего прочего в теле PUT-запроса нужно было передать новый статус (как выяснилось путём долгих изысканий — в виде XML).
Смена статусов заказов выглядит следующим образом:
Для различных статусов нужно использовать разные XML данные. Приведу список всех доступных статусов:
Также иногда возникает необходимость отмены заказа. Для этого нужно указать причину отмены (также в виде XML в теле запроса).
Приведу пример (указанная причина: «Число заказов больше, чем есть в наличии»):
Как импортировать товары из кабинета Ozon
1. В кабинете Ozon необходимо нажать на значёк профиля и выбрать пункт «Настройки». В боковом меню зайти в раздел «API ключи».
2. На этой странице Вам потребуется:
- Скопировать значение Client Id
- Указать название ключа (API key), создать его и скопировать
Настройка импорта
На странице Настройки указать соответствующие значения Client Id и API key
После сохранения настроек, если Client Id и Api ключ указаны верно, товары уже должны появиться на странице Товары/Ozon.
Если товары не появились, проверьте правильность указанных данных.
Если Вам нужно загрузить новые товары — нажмите кнопку «Обновить товары»
Работа с API
Чтобы упростить работу с большим количеством товаров и заказов, можно использовать методы Ozon Seller API для:
- вместо загрузки вручную или через XLS-шаблон; в вашу бухгалтерскую систему;
- обновления цен или остатков в 1С, системе «Мой склад» или любой другой базе.
Больше доступных методов в документации API.
# Как начать продавать через API
Сгенерируйте API-ключ и Client ID в настройках личного кабинета. Используйте их в каждом запросе к Ozon Seller API.
Добавьте товары. В одном запросе можно передать до 100 позиций. Важно указать категорию и характеристики для каждого товара — проверьте список обязательных характеристик.
После модерации товары можно будет продавать.
Когда покупатели сделают заказ, у вас появятся отправления в статусе awaiting_packaging. Используйте метод получить список отправлений с фильтром status: "awaiting_packaging".
Разложите товары по отправлениям. Подробнее про сборку заказа.
Передайте список отправлений к сборке в метод собрать заказ: теперь отправления в статусе awaiting_deliver и готовы к отгрузке покупателям.
Подготовьте товар к отправке покупателям.
Для интегрированной, неинтегрированной или собственной службы доставки потребуется информация об отправлениях.
Например, ФИО получателя и его контактные данные:
Если вы выбрали Интегрированная служба доставки, то статус отправлений автоматически будет отслеживаться в личном кабинете покупателя.
Если вы выбрали Другая служба доставки или самостоятельно, то вам нужно изменять статусы отправлений у каждого заказа. Для этого используйте:
- — изменяет статус на Доставляется. — изменяет статус на Курьер в пути. — изменяет статус на Доставлен.
# Как обновлять товары, остатки и цены
Чтобы данные об ассортименте в вашей системе и на Ozon были идентичны, используйте группу методов управление товарами и ценами. Вы можете снимать товары с продажи, менять описание и характеристики товаров, устанавливать новые цены. Но учитывайте, что любое изменение проходит модерацию, поэтому обновленная информация о товарах появится в личном кабинете и на Ozon с задержкой до нескольких дней.
Чтобы обновлять остатки на нескольких складах сразу, используйте:
- — выводит список складов. — обновляет количество товаров на складе.
# Что ещё есть в Seller API
Чтобы встроить чаты с покупателями в удобную для вас систему, используйте методы для работы с чатом.
Смотреть отчёты по транзакциям и товарам можно c помощью методов для работы с отчётами.