Материал опубликован с письменного разрешения автора
by @GoogleSheets_ru
Дано
- Интернет-магазин, который продаёт иностранную продукцию
P.S.
*Так как продукция иностранная — мы покупаем товар за иностранную валюту.
**Так как мы торгуем в России — цена в магазине указывается в рублях.
Задача
Нам нужно следить за курсом и своевременно обновлять цену в рублях в магазине, чтобы не нести убытки.
Если мы продаём 100 и более разных наименований, мы будем тратить слишком много времени только на то, чтобы поддерживать цены соответствующими курсу. (но это так, лирическое отступление, чтобы читатель проникся актуальностью)
Ниже представлено описание библиотеки с клиентом для подключения к Ozon Seller API на гугл-скриптах, она включает в себя следующие функции
- apiClient() — функция для инициализации клиента, в качестве аргументов принимает объект с полями accountId, apiKey и useTestApi (useTestApi необязательный, если указать “useTestApi: true” — клиент подключится к “песочнице”). Ссылка на документацию клиента внизу статьи.
2. extractPricesAndName(item) — функция для обработки объектов с данными о товарах из API, в качестве аргумента принимает объект с данными о товаре. Возвращает массив из артикула, имени и цен товара.
3. getDemoItems() — функция для вывода информации об “учебных” товарах из песочницы Озон
4. init() — функция для добавления нового пункта в меню таблицы
Первым делом, копируем вот эту таблицу. В таблице я реализовал небольшую демонстрацию работы инструмента. Можно получить 5 “учебных” товаров из песочницы Озона и попробовать поменять их цены. Выбираем в меню таблицы “Ozon” => “Получить пример данных”
После этого появится окно с запросом на предоставление прав доступа скрипту, необходимо будет согласиться и дать соответствующие разрешения.
Инструкция о том как это сделать
После того, как необходимые разрешения приложению предоставлены, нажимаем на кнопку “Получить пример данных” еще раз. Будет создан лист с названием “Ozon_demo” и на него загрузятся данные о пяти товарах “учебного магазина”.
Товары в Озоне могут быть идентифицированы по артикулам, это поле называется “offer_id”.
У каждого товара на Озоне можно управлять следующими ценами:
Таким образом, зная артикул товара мы можем поменять любую из этих цен или сразу все. Все эти значения нужно отразить в нашей таблице, названия столбцов могут быть любыми, располагаться они могут в любом порядке, главное чтобы были на одном листе.
Для обновления цен в таблице уже написана функция “updatePrices()”, вот она:
В исходном варианте эта функция работает с демо-данными, которые мы загрузили из учебного магазина на прошлом этапе. И сейчас мы можем посмотреть как все это работает. Для этого достаточно изменить цены, которые загрузились вместе с товарами.
Напоминаю про ограничения Озона, применяемые к ценам. Поэтому лучше менять на пару единиц, а не на тысячу.
Для наглядности рекомендую удалить данные с листа, иначе будет незаметно, записались ли это новые цены из магазина или остались те, которые мы изменили самостоятельно.
И нажать на пункт “Обновить цены в Ozon” в меню таблицы. Будут снова загружены данные о товарах с новыми ценами.
Вам остается только заполнить таблицу своими данными, а в функции “updatePrices()” в редакторе скриптов указать ключи для работы с API, изменить название листа и позиции столбцов, в которых у вас находятся соответствующие значения.
Пару слов о том, как это работает
Я написал библиотеку с клиентом для подключения к API. Ключ библиотеки: “MRne8ssDBDdrGwO-vKd-Mjfp6K4dVRFHJ”, он пригодится вам для подключения библиотеки к скриптам таблиц. Для желающих посмотреть код и документацию к библиотеке — я выложил текущую версию вот сюда: api.googlesheets.ru, также она в публичном доступе в моем профиле gitHub.
Если у вас есть какие-то вопросы по работе клиента, API Ozon Seller, предложения по улучшению работы, то буду рад выслушать.