Saltar al contenido principal

SDK JavaScript / TypeScript

npm install @omnibuy/sdk
# o
yarn add @omnibuy/sdk

Inicio rápido

import { OmniBuyClient } from "@omnibuy/sdk";

const client = new OmniBuyClient({
token: "tok_live_xxxx",
tenant: "mi-tienda",
});

// Listar productos
const { data: products } = await client.catalog.listProducts({ limit: 25 });
products.forEach((p) => console.log(`${p.title} — S/ ${(p.price / 100).toFixed(2)}`));

Node.js (server-side)

import { OmniBuyClient } from "@omnibuy/sdk/node";

const client = new OmniBuyClient({
token: process.env.OMNIBUY_TOKEN!,
tenant: process.env.OMNIBUY_TENANT!,
baseURL: "https://app.omnibuy.net",
});

Crear orden

const order = await client.orders.create({
customerEmail: "cliente@email.com",
lineItems: [
{ variantId: "uuid-variante", quantity: 1, price: 5500 },
],
});
console.log(order.id);

Manejo de errores

import { OmniBuyAPIError } from "@omnibuy/sdk";

try {
await client.catalog.getProduct("id-invalido");
} catch (err) {
if (err instanceof OmniBuyAPIError) {
console.log(err.code); // "RESOURCE_NOT_FOUND"
console.log(err.status); // 404
}
}

Webhooks (verificación de firma)

import { verifyWebhookSignature } from "@omnibuy/sdk";

app.post("/webhooks/omnibuy", (req, res) => {
const isValid = verifyWebhookSignature(
req.body,
req.headers["x-omnibuy-signature"] as string,
process.env.WEBHOOK_SECRET!,
);
if (!isValid) return res.status(401).send("Invalid signature");

const event = req.body;
console.log(event.type); // "orders.order.created"
res.sendStatus(200);
});

Fuente

El SDK está en sdk/js/.