Как стать автором
Поиск
Написать публикацию
Обновить

Клиент Ozon Seller API на Golang

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров4.2K

Зачем?

Как всем известно, 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. Вклад в развитие приветствуется :)

Ссылка на Github

Теги:
Хабы:
Всего голосов 4: ↑3 и ↓1+4
Комментарии0

Публикации

Ближайшие события