Saltar al contenido principal

SDK Go

go get github.com/jmondragonc/omnibuy-go

Inicio rápido

package main

import (
"context"
"fmt"

omnibuy "github.com/jmondragonc/omnibuy-go"
)

func main() {
client := omnibuy.NewClient(
omnibuy.WithToken("tok_live_xxxx"),
omnibuy.WithTenant("mi-tienda"),
)

// Listar productos
products, err := client.Catalog.ListProducts(context.Background(), omnibuy.ListProductsParams{
Limit: 25,
})
if err != nil {
panic(err)
}
for _, p := range products.Data {
fmt.Printf("%s — S/ %.2f\n", p.Title, float64(p.Price)/100)
}
}

Crear un producto

product, err := client.Catalog.CreateProduct(ctx, omnibuy.CreateProductInput{
Title: "Polo OmniBuy",
Slug: "polo-omnibuy",
Price: 5500,
Currency: "PEN",
Status: "active",
})

Manejo de errores

product, err := client.Catalog.GetProduct(ctx, "id-inexistente")
if err != nil {
var apiErr *omnibuy.APIError
if errors.As(err, &apiErr) {
fmt.Println(apiErr.Code) // "RESOURCE_NOT_FOUND"
fmt.Println(apiErr.Status) // 404
}
}

Paginación automática

// Iterar todas las páginas
iter := client.Catalog.ListProductsIter(ctx, omnibuy.ListProductsParams{Limit: 100})
for iter.Next() {
product := iter.Value()
fmt.Println(product.Title)
}
if err := iter.Err(); err != nil {
panic(err)
}

Fuente

El SDK está en sdk/go/.