Transcription
Друзья, всем привет. С вами Артём Юрьев. Мы на канале Тайны маркетплейсов. И сегодня мы с вами поговорим о том, как нам начать работать с API на Wildberries и на Ozon без знания какого-либо программирования, кода и так далее.
Вообще, зачем нам это нужно? Я уверен то, что все мы выгружаем отчёты постоянные из маркетплейсов, чтобы сделать какой-то свой отчёт, свести какую-нибудь таблицу, что-нибудь там ещё сделать. То есть вы всегда выгружаете что-то и потом ещё в Excel, в Google таблицах это допиливаете сами. На это уходит куча времени. Вы делаете это постоянно. Это самый нудный процесс, который вообще не нужен, да, особо. То есть мы тратим время. Время - это деньги. Поэтому, чтобы облегчать нашу рутину, чтобы высвободить своё время и тратить на что-то более полезное, я предлагаю нам освоить довольно несложный процесс работы с AI.
Раньше на это требовалось знания программирования либо найм специальных людей, кто этим занимается. Опять же, платить им нужно кучу денег, чтобы они сделали вам код, который работал сейчас. Это можно сделать с помощью нейросетей. Тоже сразу спойлер. Это не так просто, как кажется. Да, я бы тогда не записывал это видео, но в этом видео я покажу правильный подход, как сделать так, как вообще научиться работать с нейросетями, чтобы они делали вам тот код, который нужен для вас, который будет работать.
У нас уже довольно большой опыт в работе с кодом, как и самостоятельного, так и с помощью нейросетей. Мы сделали некоторые продукты для своих партнёров. Также используем эти продукты сами постоянно. Это в том числе таблицы по юнит-экономике автоматические. Они рассчитывают самостоятельно маржинальность, чистую прибыль. Также это большие таблицы с мониторами, которые выводят постоянно каждый день заказы, продажи, а рекламную всю статистику. В общем, всё-всё-всё там подгружается, и это всё видно каждый день.
Итак, друзья, с чего мы начинаем? Для начала давайте подготовим нашу рабочую среду. Для этого откроем ChatGPT и API документации Wildberries и Ozon. А документации найти легко, просто вводите Wildberries API в Яндексе, переходите по первой ссылке, попадаете на такой сайт. Далее, как пользоваться ChatGPT? Он в России не работает без VPN, поэтому скачивайте любой VPN, который вам нравится. Я не буду на это отвлекаться, чтобы не затягивать видео.
Итак, у нас есть ChatGPT, а есть наша документация. А нам нужно сначала подумать вообще над идеей нашего проекта. К примеру, это может быть выгрузка актуальных цен по вашему запросу. То есть нажимаете на кнопку в табличке, да, у вас автоматически выгружаются ваши цены. Например, контроль остатков. Сделайте автоматическую таблицу, куда будут погружаться остатки по всем вашим позициям. Также выгрузить продажи по этим позициям, например, там за месяц, за 14 дней. Сделать коэффициент, который будет учитывать влияние этих продаж, и сделать ещё историю, которая будет прогнозировать нам, когда эти остатки закончатся, когда нужно будет их пополнить.
Я сюда добавил ещё пару идей, что это может быть. Например, это выгрузка заказов, выкупов, то есть просто такая табличка, как рука на пульсе. Вы можете выгрузить расходы по комиссиям, по доставке, сделать тоже такую табличку, где у вас будет, например, каждый день выгружаться количество заказов, количество выкупов, вы будете вычитать оттуда все расходы, которые вы тоже выгружаете, и примерно представлять, какая у вас будет маржа там, по артикулам, опять же, либо в целом по магазину. Выгрузка статистики по рекламе - это тоже прямо база, основа, да, это всё тоже легко можно сделать. Например, касаемо Wildberries, где до сих пор кривые отчёты выгружаются, они очень удобные. Можно это всё сделать более просто и понятно.
Когда вы поймёте уже основы, как всё это работает, вы можете приступать к работе с более сложными вариантами. Это могут быть какие-то свои боты, система уведомлений, а это может быть скрипты, а это какая-то может быть частичная замена платных приложений, которые вы используете, там автоответы, либо какая-нибудь тоже юнит-экономика та же самая.
Изначально я не сказал, но весь наш код, он будет работать внутри Google таблиц. Сюда будут выгружаться наши данные. Вы уже можете их, опять же, там, если вам надо скачивать их в Excel, либо вы можете настроить выгрузку в какой-то другой источник. Я, например, просто работаю с Google таблицами. Они, конечно, не супер идеально отрабатывают особенные какие-то очень-очень объёмные запросы и объёмные количества данных. Но для начала Google таблица это будет вообще идеальный вариант.
Итак, когда мы определились с нашей целью, к примеру, это будет выгрузка заказов. Для начала мы начинаем думать, как нам вообще это реализовать, с чего вообще начать. Потому что если мы придём в ChatGPT, да, и скажем ему: "А, ChatGPT, сделай мне код, который будет работать в Google таблицах и автоматически выгружать заказы и выкупы, например, с маркетплейса Wildberries". ChatGPT сделает вам код, но работать это будет либо вообще никак, да, что более вероятно, либо это будет всё равно не то, что вам нужно. В 90% случаев код просто работать не будет, если вы подойдёте именно с таким запросом.
Что нам нужно сделать для того, чтобы наш код работал сразу? Ну или почти сразу? Во-первых, идём в документацию Wildberries и начинаем её изучать. Здесь ничего сложного и сверх какого-то нереального нет. Во-первых, нам нужно определиться всего с там двумя-тремя терминами. Это метод и это параметр метода. Метод помогает нам получить необходимые данные из маркетплейса. То есть, например, что нам нужно? Работа с товарами, да? Это могут быть категории товаров, их характеристики, отметим цвета, страны, производства, сезон. Там можно даже создать карточки с помощью API. Либо можно перейти в аналитику и данные и посмотреть вот воронка продаж, например, статистика карточек за период. Чтобы вот нам получить статистику карточек товаров за период, как мы это видим в воронке продаж в кабинете, нам необходимо использовать соответствующий метод. Мы просто находим этот метод. Вот он выглядит просто как какая-то часть ссылки, либо полная ссылка. Нам неважно, POST метод это какой-то, что здесь написано. В целом это вообще не берите в голову.
А далее нам нужно понять, что такое параметры. Параметры они вот у нас следующие. Они идут в теле метода. Тоже не загружайтесь. Нам просто нужно понять, что конкретный параметр подразумевает под собой. К примеру, вот параметр `nmIDs` - это артикулы Wildberries, то есть номенклатура Wildberries, как мы знаем, да, что это такое. Дальше открываем, к примеру, параметры сортировки. Смотрим, видим параметр вот отмены товара, средняя цена товара, заказали товар на сумму с Wildberries. В общем, всё, что мы видим в воронке продаж, каждый параметр, который мы там видим, да, он как бы параметры здесь. Только мы видим это человеческим языком, например, мы видим у себя в кабинете выкупили товаров в штуках. А здесь для API выглядит вот так: `buyout` что-то там `count`. Если у нас задача с вами выгрузить, например, только заказы и только выкупы, мы находим параметр `order count`. Это заказали товаров, да? Вот выкупили товаров `buyout count` или выкупили на сумму `buyout sum`. То есть вот эти параметры нам нужны. И, соответственно, если вы там хотите выгрузить остатки, вы идёте, находите метод, который выгружает остатки товаров. Находите там параметр, который вам нужен.
И когда мы поймём вот эту историю, да, мы можем уже прийти в ChatGPT и сказать ему: "А, используй вот такой-то метод для того, чтобы сделать вот это, да, выгрузить заказы и выкупы. А заказы относятся у нас к параметру такому-то, выкупы относятся к параметру такому-то. Использую именно вот эти методы, которые вы там написали, и эти параметры, которые внутри метода мы передаём".
И что ещё очень важно, когда мы отправляем запрос на сервер, нам приходит ответ. Ответ может быть разный. Во-первых, это могут быть ошибки различные, которые здесь прописаны, но нам эти ошибки не нужны. Мы хотим от них избавиться. Мы смотрим, что нам присылает обратно Wildberries. Если мы всё правильно указали, у нас нету никаких проблем. А вот он нам присылает. Мы сейчас, ну, давайте вот просто показать всё. А вот он нам присылает наш параметр и то, что этому параметру принадлежит. Например, вот этот `nmID`, та самая номенклатура Wildberries, которую мы все знаем, которую мы копируем, вставляем в поиск и находим карточку товара нужную. Здесь он нам передаёт вообще все параметры. Ну, как правило, да, если мы не ограничиваем его. И, например, мы роботу ChatGPT говорим: "А нам нужны вот соответствующие параметры, которые относятся к заказам и к выкупам". Вот они у нас: `buyout`, то есть выкупы на сумму `buyout sum`. Сколько там у нас было, чего-то там ещё, не помню, да? Вот и всё это мы видим. И чтобы робот ориентировался в этом и понимал, что нам ожидать ответа, мы просто там копируем этот ответ и вставляем ему прямо вот сюда, в окно нашего диалога.
Я сейчас подготовлю промт, с которого бы я начал работу над этим проектом, и расскажу вам, почему я сделал именно так. Итак, друзья, давайте посмотрим, что у меня получается, какой промт я сделал. Во-первых, мы всегда дробим нашу большую задачу на подзадачи. Если мы хотим сделать выгрузку заказов и выкупов, начинаем просто с выгрузки всех товаров в кабинете. Это база, так как скрипт будет работать лучше, и мы будем поэтапно постоянно подходить к нашим задачам. То есть мы никогда не пишем всё целиком. Мы сначала, например, выгружаем только все, просто список товаров, да, вот в виде SKU, артикул продавца, название товара. Дальше мы подгрузим, к примеру, заказы. Дальше мы подгрузим выкупы и, соответственно, всё. Если у вас там более какая-то обширная таблица, где вам нужно ещё проводить какие-то манипуляции, то тоже дробите на большее количество подзадач. Тогда ChatGPT будет справляться более уверенно и меньше ошибаться.
Итак, что я сделал? Сделали код скрипта для Google таблиц, который работает с API Wildberries, возвращает все товары из кабинета поставщика в формате. Это формат будущей таблицы, которая у нас будет формироваться при работе скрипта. Я сразу же ему отправил ссылку на документацию, отправил ему ссылку на необходимый метод, ответ этого метода. Написал ему. Также сделал пояснение. Что такое пояснение? Тоже довольно важно. Здесь, когда мы отправляем ему ответ, он не очень понимает, как соотносить параметр с человеческим объяснением. Когда мы смотрим ответы успешно, вот здесь есть объяснение, да, чтобы по-человечески мы понимали, что каждый параметр обозначает. Например, вот `subjectId` - ID предмета, `subjectName` - название предмета. Как раз-таки нам это нужно для нашей таблицы, чтобы чат мог соотносить вот эту историю всю, мы ему отправляем это, лишним точно не будет.
Далее в конце я ему пишу: "Сделай меню по кнопке, чтобы у нас появилась новая менюшка, чтобы мы нажали на кнопку Обновить товары, и наше обновление сподвигнет обращение к API и выгрузку новых товаров". И второй вариант, я всегда рекомендую это делать. Пусть у нас будет кнопка "Записать API ключ", чтобы мы не парились лишний раз его постоянно там не переписывали нигде в кодах. Просто поверьте мне, что так будет проще. Сейчас я отправляю мой запрос, посмотрим, что получается. Вернёмся после того, как ChatGPT обработает и отправит ответ.
Итак, ChatGPT вернулся с ответом. Мы видим, что он даже дал инструкцию, как нам использовать этот скрипт. Я вам сейчас просто сам расскажу, как это делать. Скрипт наш тоже готов. У нас максимально простой код, который просто возвращает список товаров. Давайте мы его начнём использовать. Во-первых, можно сразу его скопировать. Переходим в нашу новую Google таблицу. Нажимаем "Расширения", нажимаем вот сюда "Apps Script". И у нас сразу сейчас перебросит поле, куда мы закинем наш скрипт. Удаляем, что у нас здесь написано. Вставляем, что нам дал наш ChatGPT. Сохраняем. И сейчас нам нужно будет первый раз выполнить наш код. Нажимаем сюда. И очень важно быть залогиненным в наш аккаунт, потому что когда мы сейчас нажмём "Выполнить", Google таблица попросит выдать разрешение на запуск скрипта. Это происходит всегда. Мы всегда выбираем все разрешения, иначе у нас просто ничего не будет работать. Не переживайте, что здесь появились какие-то ошибки. Нам нужно просто со всем согласиться. Грубо говоря, мы просто сами себе выдаём разрешение на работу.
После того, как мы с вами это запустили, дали все разрешения, у нас появилось новое меню. И как мы его попросили, он сделал нам два пункта в меню: "Записать API ключ" и "Обновить товары". Давайте сначала запишем ключ API. А успешно сохранён, и теперь мы можем попробовать поработать с нашей таблицей. Это будет первый запуск. Он не всегда успешный, поэтому давайте посмотрим, что у нас получится. Обратите внимание, у нас сгенерировался новый лист "Товары" и всё у нас появилось. То есть с первого раза буквально у нас получился правильный рабочий скрипт, с которым мы можем работать дальше, выгрузить у нас заказы, выкупы и так далее. То есть основное, почему всё сейчас получилось, потому что мы взяли вообще всё разложили по полочкам. Мы отправили метод, отправили соответствие между параметром и человеческой записью, отправили там примеры ответов и так далее. То есть это очень важно. Вот я хочу вас направить вот всё это русло, чтобы вы делали так же, как я. Потому что если просто прийти, вот сказать: "Да, да, да, сделай", он ничего не сделает уже. Хорошо.
То есть дальше мы можем постоянно продолжать диалог и ему говорить: "А добавь ещё вот это, а добавь ещё вот это, а добавь ещё вот это". Что могу сказать сразу? Если вы планируете прямо большую какую-то таблицу, большой проект, лучше используйте другой вариант, не ChatGPT, а Cursor. Cursor - это более сложная система с тоже агентом и также возможностью редактирования кода напрямую. В ChatGPT наш код плавает где-то внутри нашего диалога. Это не всегда удобно, мы не всегда можем его скорректировать. И ChatGPT бывает сам путается, потому что он не может работать с кодом, как это делает Cursor. У Cursor мы видим, что есть отдельное окно с кодом и отдельное окно с агентом, где происходит диалог. И вот это просто меняет вообще всё. Если вы хотите сделать небольшой проект, вы сможете сделать это в ChatGPT спокойно, проблем не будет. Но когда у вас будет много правок, у вас будет много попыток сделать что-то более сложное, будут ошибки, вы эти ошибки просто будете копировать, вставлять в ChatGPT, он будет их исправлять. Это может затянуться надолго. Диалог может быть очень длинным, и у меня обычно он начинает просто очень тупить, по 10 минут думать над ответом. Очень большой и длинный код выдавать будет постепенно вам, потому что вы будете погружать больше данных. Я вот рекомендую перейти на Cursor. Он не лагает, не тупит. У вас всегда код отделён от вашего диалога. И видите, у меня уже здесь очень много разных вариантов с кодом. Здесь очень много строк. То есть мы сейчас сделали там максимум 30. У меня есть файлы, где больше 3000 строк кода, и ChatGPT просто будет, ну, минут реально 10-15 просто его выдавать каждый раз. Это очень неудобно. Тем более, если вы только начали, да, и не очень понимаете, как частично заменить какую-нибудь функцию в коде или частично поменять какой-нибудь параметр внутри нашего кода, вам проще просто не париться, поставить сразу Cursor. Это называется. Я все ссылки оставлю в описании, чтобы вам было легко скачать и попробовать. Здесь вообще проблем нет. Ничего думать не надо. Просто пишите словами ему, он всё исправляет. Ваша задача просто постоянно копировать код, переходить вот сюда, удалять старые, вставлять новые, нажимать "Выполнить" и смотреть. Если вываливается какая-то ошибка, у вас здесь будет лог, а вы просто его копируете, вставляете в Cursor или вставляете в ChatGPT. Он эту ошибку исправляет, делает новый код, вы вставляете вот этот бесконечный такой процесс. Рано или поздно вы поймёте примерно, как это работает, какая логика. Возможно, уже будете более точечно направлять нейросеть, куда, в какую сторону нужно думать, чтобы ту или иную ошибку поправить.
В принципе, то же самое с Ozon. Там база данных максимально схожа. Отправляете ему параметры, отправляете ему метод, отправляете ему пояснение. Там всё вот в таком же виде есть. И есть примеры ответов. Вы всё это отправляете, и всё также это работает. У меня есть проекты и с Ozon, и с Wildberries. То есть там всё в целом идентично. Если сделали проект один, делаете второй уже гораздо проще. Вы понимаете логику, понимаете, с чего нужно начать, какие методы использовать и как это всё у нас будет работать.
Друзья, всем спасибо за внимание. Я надеюсь, что вам было это полезно. Если вам понравится ролик, я могу продолжить и сделать вторую серию, где мы, например, завершим вместе какой-нибудь проект не очень сложный. Я покажу, как работать с ошибками, потому что они рано или поздно будут появляться. Покажу более сложные какие-то варианты с выгрузками заказов, выкупов. Я не знаю, что-нибудь ещё придумаем. Как раз подумаю над этим. У нас будет в конце готовый код. Я его размещу тоже в описании, чтобы вы могли все его использовать и как-то отрабатывать самостоятельно.
Подписывайтесь на нашу группу в Telegram, ВКонтакте. Все ссылки я оставлю в комментариях. У нас там много выходит полезных постов, гайдов, статей, обзоров новостей. Наши какие-то стратегии, наше мнение. Мы любим общаться с селлерами. Мы им помогаем увеличивать прибыль на маркетплейсах. Если у вас есть какие-то запросы, вопросы, пишите нам. У нас есть бот обратной связи, есть много тоже разных проектов, продуктов. Переходите по ссылке в описании, подписывайтесь, будем рады с вами пообщаться в наших группах. Всем ещё раз спасибо за внимание. Увидимся с вами в следующих видео и увидимся с вами также в комментариях. Всем пока и до скорой встречи.