Зачем?
Как всем известно, Ozon предоставляет продавцам API для работы с площадкой. В возможности API входит весь функционал площадки, с помощью которого можно работать с карточками товаров, складами, заказами, продвижением своих карточек и даже чатом.
Для чего он нужен и как им можно пользоваться? Например, если вы продаете на нескольких площадках, то целесообразнее было бы хранить информацию о товаре в структурированном виде и добавлять их на площадки при помощи API. Так вы сэкономите время и убережете себя от ошибок. Также легко копировать карточки с одной площадки на другую. Или можно написать сайт с статистикой о продажах по категориям на основе данных продавцов, полученных при помощи API.
404 Not found
На просторах Github я не смог найти какой-либо поддержанной и полной клиентской библиотеки с API Ozon, поэтому я решил написать ее самостоятельно. Ее можно посмотреть на моем github. На момент написания этой статьи она еще находится на стадии добавления всех endpoints, поэтому хотелось бы получить какой-то фидбэк о данной библиотеке и узнать каков на нее спрос.
Как пользоваться
Для начала нужно получить Client-Id и Api-Key в своем личном кабинете продавца на ozon.
Затем необходимо добавить пакет при помощи:
go get github.com/diphantxm/ozon-api-client
Необходимо создать клиент, в который нужно передать полученные ранее Client-Id и Api-Key:
client := ozon.NewClient("my-client-id", "my-api-key")
Функционал библиотеки разделен по структурам. Например, чтобы создать карточку товара, необходимо обратиться к структуре Products в клиенте:
resp, err := client.Products().GetProductDetails(&ozon.GetProductDetailsParams{ ProductId: 123456789, })
В функцию передаем параметры запроса и получаем ответ от Ozon API.
Полный пример:
package main import ( "fmt" "log" "net/http" "github.com/diphantxm/ozon-api-client/ozon" ) func main() { // Create a client with your Client-Id and Api-Key // [Documentation]: https://docs.ozon.ru/api/seller/en/#tag/Auth client := ozon.NewClient("my-client-id", "my-api-key") // Send request with parameters resp, err := client.Products().GetProductDetails(&ozon.GetProductDetailsParams{ ProductId: 123456789, }) if err != nil || resp.StatusCode != http.StatusOK { log.Fatalf("error when getting product details: %s", err) } // Do some stuff for _, d := range resp.Result.Barcodes { fmt.Printf("Barcode %s\n", d) } }
На данный момент библиотеке находится в процессе реализации всех endpoint, поэтому какого-то функционала еще нет. Если вы хотели бы пользоваться такой библиотекой и вам нужны некоторые функции, можете оставить Issue с списков необходимых методов. Или можете реализовать их сами и отправить Pull Request. Вклад в развитие приветствуется 🙂
ссылка на оригинал статьи https://habr.com/ru/post/724344/
Добавить комментарий