Инструкция: как получить список товаров из магазина Озон в Гугл таблицу.
- 19 мая, 2023
- 7 Комментариев
- 7462 просмотров
Один самых частых запросов, с которым люди приходят к нам это автоматизация работы с маркетплейсами, в частности, с Озон. Наш опыт автоматизации бизнеса говорит о том, что Google-таблицами для решения тех или иных задач, связанных с работой на маркетплейсах, не пользуются две категории продавцов. Первая категория — это по-настоящему большой бизнес, использующий специальные и дорогие решения, а вторая — те, кто про этот инструмент по каким-то причинам ещё не знают. Согласитесь, большинство продавцов в эти категории не попадает.
Напоминаем, что если нет желания или возможности разбираться со скриптами или необходимо индивидуальное решение – у нас можно заказать разработку индивидуального решения для автоматизации работы с Озон.
Когда-то давно уже публиковалось решение и библиотека для переноса цен из Google-таблицы, но с того времени возможности Ozon Seller API сильно расширились, да и методы изменились. Поэтому, несмотря на то что старая версия API ещё работает, библиотека уже не является актуальной, а реализация методов текущей версии API применительно к скриптам требует отдельного рассмотрения и демонстрации.
Мы в нескольких статьях раскроем реализацию методов актуального Ozon Seller API применительно к Google-таблицам и продемонстрируем их практическое применение в интересах продавца. А начнем с ответа на самый частый вопрос, который нам задают: «Как выгрузить товары из Ozon в Google-таблицу?».
Все статьи из этого цикла пишутся в рамках рубрики «Ozon и Google-таблицы: продаем товары “в клеточках”» на платформе “Ozon for developers”.
Давайте начнём с библиотеки. Сейчас она представляет собой клиент для отправки запросов, адаптированный для выполнения в скриптах, и всего несколько методов, которые будут использоваться при переносе списка товаров из Ozon в таблицу. С каждой последующей темой она будет дополняться и обновляться. Для тех, кто не готов ждать – пулреквесты также приветствуются 😉
Библиотека опубликована на GitHub, где её можно рассмотреть более подробно, а все методы и типы в ней полностью соответствуют официальной документации Ozon Seller API. Чтобы можно было поставить себе галочку за соблюдение принципа разделения ответственности, упростить поддержку и исключить путаницу, ничего, кроме того, что есть в документации, в этой библиотеке нет. Различные функции-помощники, синтаксический сахар и вообще всё, что не касается методов Ozon Seller API, будет в статьях и таблице-примере.
Инструкция как подключить библиотеку к скрипту.
Давайте теперь разберёмся со структурой скрипта. Из иллюстраций видно, что он состоит из трех файлов: index, tools и configs. В файле index будут размещены основные исполняемые функции, в tools — функции-помощники для обработки данных и рутинных действий, а в configs — константы и настройки.
Позволим себе не рассказывать о том, как получить ключи для доступа к API. На эту тему доступно очень много материалов — уверены, это не составит для вас проблемы. Тем не менее это самый важный пункт настроек, без которого точно ничего не получится. Открываем файл configs и первым делом меняем ключи на свои.
Теперь нужно определить, куда и какие данные записывать.
Для того чтобы определить лист для записи данных о товарах, нужно вписать его название в переменную ProductsSheetName. Обязательно убедитесь, что лист с таким названием есть в таблице, иначе получите ошибку при выполнении скрипта.
Далее в том же файле в качестве переменной fieldsToShow определён массив с перечнем всех полей, которые возвращаются API в объекте товара, и их описаниями.
Вы можете сами решить, какие из данных, перечисленных в этом массиве, вам нужно отображать в таблице. Для того чтобы исключить поле, достаточно его просто закомментировать.
И заключительный пункт настройки — настройка преобразования объектов с данными о товаре.
Эти настройки находятся в объекте flatConfig. Как раз в него передаются поля для вывода в таблице (свойство onlyFields). Также можно определить поля, которые нужно исключить из отображения в таблице, и те, которые нужно оставить без форматирования. Например, артикул 001234 в таблице будет числом 1234, потому что под капотом скриптов крутится JavaScript, известный своим коварством в подобных случаях. Именно поэтому в списке уже есть поле offer_id.
Ещё один элемент настройки — способ преобразования даты из исходного состояния в формат, понятный Google-таблицам. Тут можно определить, как значения даты и времени будут отображаться в таблице.
С настройкой закончили. Теперь можно загружать данные о товарах.
Для того чтобы получить информацию о товарах API предоставляет два метода. Первый отдаёт их идентификаторы, согласно переданным условиям, а второй — возвращает полный перечень информации о переданном списке идентификаторов.
Благодаря подключённой библиотеке получение полных данных о товарах требует совершения всего четырёх действий. При этом одно из них — это инициализация самого клиента, а второе — пересборка данных из результатов одного запроса для передачи в другой.
Как видно на иллюстрации ниже, в результате наших действий мы получим массив объектов с информацией о товарах и уровнем вложенности полей не более одного. Это необходимо для корректного преобразования данных в табличный формат. Данные для передачи в качестве параметров запросов в точности соответствуют документации, поэтому трудностей с их изменением возникнуть не должно.
После того как данные успешно получены из Ozon и предварительно обработаны, остаётся только преобразовать их в необходимый формат (а именно — в массив строк) и записать в таблицу.
Преобразование и запись данных в таблицу после их загрузки по API выглядит следующим образом:
Функция для записи в таблицу вынесена в файл tools и выглядит так:
И вообще рекомендуем заглянуть в файл tools — там ещё много интересного.
В результате всех действий мы имеем возможность в два клика получить нужные и актуальные данные о товарах в формате таблицы.
Мы постарались максимально доступно не просто изложить инструкцию, а рассказать о самом решении, не останавливаясь при этом на разборе каждой строчки кода.
Получение списка товаров — первый шаг к тому, чтобы иметь возможность соотнести другую информацию с конкретным товаром, например информацию о заказах, остатках или комиссиях. Не верю я, что для продавца артикул товара или его идентификатор в Ozon может быть информативнее, чем название. Кроме того, это позволяет достаточно комфортно управлять товарами, например изменять их цены или остатки. Эти возможности мы рассмотрим в следующей статье.
Если у вас остались вопросы или что-то не получается, приходите в чатик «Таблицы Гугл», где мы помогаем разобраться с таблицами и скриптами или просто пишите их в комментариях.
А если товаров больше 1000?
А если товаров больше чем АПИ отдает за один запрос, то нужно в функции объявить переменную-массив, в которую по итерациям добавлять полученные товары и, после завершения всех итераций, возвращать массив со всеми данными. Для итераций можно использовать цикл do-while.
👍 👍 👍 👍 👍 👍
Добрый день!
Сделал все по инструкции но к сожалению загружаются далеко не все товары, подскажите пожалуйста в чем может быть проблема?
Внимательно читаем статью и обращаем внимание на лимиты в запросах.
Подскажите, пожалуйста, как по api получить ключевые слова у товара?
Чтобы получить ключевые слова можно воспользоваться вот этим методом и отправить запрос на эндпоинт
/v3/products/info/attributes