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

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Зачем?

Как всем известно, 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

Источник: https://habr.com/ru/post/724344/


Интересные статьи

Интересные статьи

Добрый день коллеги! Вдохновившись постом @StuxForce решил написать свой вариант автоматической установки и конфигурирования клиента MicroSIp на компьютеры доменной сети. Получился вполне рабочи...
На написание данной статьи меня вдохновила уязвимость в модуле "Авторизации по телефону", который разрабатывается и поддерживается CS Coding.
Предоставление качественной клиентской поддержки своим клиентам должно быть приоритетным.В конце концов, ваши клиенты нуждаются в вас больше всего в те моменты, когда им ...
Статья отражает личный опыт разработки расширения ядра для Linux.В ней рассмотрен способ выполнения привилегированных системных вызовов процессом пространства ядра по запросам управляющей...
Михаил Салосин (далее – МС): – Всем привет! Меня зовут Михаил. Я работаю бэкенд-разработчиком в компании MC2 Software, и я расскажу об использовании Go в бэкенде мобильного приложения «Смотри+». ...