A Ozon Seller API client written in Golang
Ozon is a marketplace for small and medium enterprises to launch and grow their businesses in Russia.
Read full documentation
You can check list of supported endpoints
Get Client-Id and Api-Key in your seller profile here
Just add dependency to your project and you're ready to go.
go get github.com/diphantxm/ozon-api-client
A simple example on how to use this library:
package main
import (
"context"
"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
opts := []ozon.ClientOption{
ozon.WithAPIKey("api-key"),
ozon.WithClientId("client-id"),
}
c := ozon.NewClient(opts...)
// Send request with parameters
resp, err := client.Products().GetProductDetails(context.Background(), &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)
}
}
Ozon can send push-notifications to your REST server. There is an implementation of REST server that handles notifications in this library.
How to use:
package main
import (
"log"
"github.com/diphantxm/ozon-api-client/ozon/notifications"
)
func main() {
// Create server
port := 5000
server := notifications.NewNotificationServer(port)
// Register handlers passing message type and handler itself
server.Register(notifications.ChatClosedType, func(req interface{}) error {
notification := req.(*notifications.ChatClosed)
// Do something with the notification here...
log.Printf("chat %s has been closed\n", notification.ChatId)
return nil
})
// Run server
if err := server.Run(); err != nil {
log.Printf("error while running notification server: %s", err)
}
}
If you need some endpoints ASAP, create an issue and list all the endpoints. I will add them to library soon.
Or you can implement them and contribute to the project. Contribution to the project is welcome.