@zolve/yampi
v0.3.0
Published
Pacote de integração com a API da Yampi
Maintainers
Readme
Yampi API - JavaScript/TypeScript
Pacote de integração com a API da Yampi para JavaScript/TypeScript.
Instalação
npm i @zolve/yampiAutenticação
A API da Yampi exige três credenciais (obtidas em Perfil → Credenciais de API no painel da loja):
- Alias — identificador da loja, usado no path da URL.
- User-Token — enviado no header
User-Token. - User-Secret-Key — enviado no header
User-Secret-Key.
A URL base da API é https://api.dooki.com.br/v2/{alias}.
Criação da conexão
import { Yampi } from '@zolve/yampi'
const yampi = new Yampi({
alias: 'minha-loja',
userToken: 'seu-user-token',
userSecretKey: 'sua-user-secret-key'
})Entidades disponíveis
| Acesso | Endpoint | Operações |
| ----------------------- | ----------------------- | ------------------------------------ |
| yampi.orders | /orders | get (lista), find (por id) |
| yampi.catalogProducts | /catalog/products | get (lista), find (por id) |
| yampi.catalogBundles | /catalog/bundles | get, find, create, update, delete |
| yampi.pricingPromocodes | /pricing/promocodes | get (lista) |
Exemplos
Listar pedidos
const result = await yampi.orders.get({
include: ['customer', 'items'],
filters: { status_id: [1, 2] },
limit: 50
})Visualizar um pedido
const order = await yampi.orders.find({
orderId: 123,
include: ['items', 'transactions']
})Listar e visualizar produtos
const products = await yampi.catalogProducts.get({
include: ['skus', 'images'],
filters: { active: 1 }
})
const product = await yampi.catalogProducts.find({
productId: 42,
include: ['skus', 'prices', 'images']
})Kits (Bundles)
// Listar
await yampi.catalogBundles.get()
// Visualizar
await yampi.catalogBundles.find({ bundleId: 10 })
// Criar
await yampi.catalogBundles.create({
name: 'Kit Verão',
image_url: 'https://.../kit.jpg',
active: true,
modifiable: false,
custom_shipping: false,
shipping_type: 'fixed',
shipping_price: 0,
shipping_days: 0,
items: [
{ sku_id: 1, price_type: 'sku', price: 0, discount: 0, quantity: 2 }
]
})
// Atualizar (PUT — substituição completa)
await yampi.catalogBundles.update({
bundleId: 10,
name: 'Kit Verão Atualizado',
image_url: 'https://.../kit.jpg',
items: [
{ sku_id: 1, price_type: 'sku', price: 0, discount: 0, quantity: 1 }
]
})
// Excluir
await yampi.catalogBundles.delete({ bundleId: 10 })Listar cupons
const promocodes = await yampi.pricingPromocodes.get({
filters: { status: true, expired: false },
include: ['products']
})Tratamento de erros
import { Yampi, YampiApiException, YampiInternalException } from '@zolve/yampi'
try {
await yampi.orders.find({ orderId: 999 })
} catch (e) {
if (e instanceof YampiApiException) {
console.error(e.statusCode, e.response)
} else if (e instanceof YampiInternalException) {
console.error('Erro interno:', e.message)
}
}Build
npm run build