Trabajando con Productos
Aprende a crear, listar, actualizar y gestionar productos a través de la API.
Descripción General
Los productos son el núcleo de cualquier tienda Whatalo. La API de Products te permite gestionar todo tu catálogo programáticamente — desde crear artículos individuales hasta actualizaciones masivas.
Listar Productos
Obtén todos los productos de tu tienda con filtrado y paginación opcionales.
curl -X GET https://api.whatalo.com/v1/products \
-H "X-API-Key: wk_live_your_key_here"Respuesta:
{
"data": [
{
"id": "prod_abc123",
"name": "Premium T-Shirt",
"slug": "premium-t-shirt",
"description": "100% cotton premium quality",
"price": 2999,
"compare_price": 3999,
"is_active": true,
"stock_quantity": 150,
"created_at": "2026-01-15T10:30:00.000Z"
}
],
"pagination": { "page": 1, "per_page": 25, "total": 45, "total_pages": 2 }
}Scope requerido: read:products
Crear un Producto
curl -X POST https://api.whatalo.com/v1/products \
-H "X-API-Key: wk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"name": "New Product",
"description": "A great product",
"price": 1999,
"is_active": false
}'Scope requerido: write:products
Establece is_active en false para mantener el producto oculto hasta que estés listo para publicarlo. Por defecto es true si se omite.
Actualizar un Producto
Actualiza campos específicos sin afectar los demás:
curl -X PATCH https://api.whatalo.com/v1/products/prod_abc123 \
-H "X-API-Key: wk_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"price": 2499,
"stock_quantity": 200
}'Scope requerido: write:products
Eliminar un Producto
curl -X DELETE https://api.whatalo.com/v1/products/prod_abc123 \
-H "X-API-Key: wk_live_your_key_here"Scope requerido: write:products
Eliminar un producto es permanente y no se puede deshacer. Considera establecer is_active en false para ocultarlo del storefront.
Obtener Conteo de Productos
Verifica rápidamente cuántos productos existen sin obtener todos los datos:
curl -X GET https://api.whatalo.com/v1/products/count \
-H "X-API-Key: wk_live_your_key_here"Patrones Comunes
Actualización Masiva de Precios
Para actualizar precios de múltiples productos, itera por tu catálogo:
const res = await fetch('https://api.whatalo.com/v1/products?per_page=100', {
headers: { 'X-API-Key': API_KEY }
});
const { data: products } = await res.json();
for (const product of products) {
const updateRes = await fetch(`https://api.whatalo.com/v1/products/${product.id}`, {
method: 'PATCH',
headers: {
'X-API-Key': API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
price: Math.round(product.price * 1.1) // 10% increase
})
});
if (!updateRes.ok) {
console.error(`Failed to update ${product.id}:`, await updateRes.json());
}
}Para operaciones masivas, ten en cuenta el límite de tasa (1,000 peticiones/minuto). Agrega una demora entre peticiones si actualizas catálogos grandes.
Sincronizar Inventario
Mantén tu inventario sincronizado con un sistema externo:
async function syncInventory(externalProducts) {
for (const ext of externalProducts) {
const res = await fetch(`https://api.whatalo.com/v1/products/${ext.whataloId}`, {
method: 'PATCH',
headers: {
'X-API-Key': API_KEY,
'Content-Type': 'application/json'
},
body: JSON.stringify({
stock_quantity: ext.stock
})
});
if (!res.ok) {
console.error(`Failed to sync ${ext.whataloId}:`, await res.json());
}
}
}