API para tiendas
Conecta tu sistema con Revoltillo: maneja inventario, precios y productos de tu tienda.
Tu llave
Créala en tu panel, en la pestaña Tienda. Se muestra una sola vez. Ir a mi tienda
Envíala en cada llamada. Quien tenga la llave puede cambiar tu catálogo: guárdala como una contraseña.
curl https://www.revoltillo.com/api/v1/store \
-H "Authorization: Bearer rv_TU_LLAVE"Llamadas
- GET
/storeLos datos de tu tienda. Sirve para probar la llave. - GET
/categoriesLas categorías y subcategorías válidas. No necesita llave. - GET
/productsTus productos. Acepta page y limit (hasta 200). - POST
/productsCrea un producto. - GET
/products/{id}Un producto. - PATCH
/products/{id}Cambia solo los campos que envíes. - DELETE
/products/{id}Borra un producto y sus fotos. - POST
/products/{id}/photosSube una foto: el archivo va como cuerpo de la llamada. - POST
/inventoryCambia existencia, precio o visibilidad de hasta 500 productos a la vez. - GET
/ordersTus pedidos, del más nuevo al más viejo. Acepta status y limit (hasta 200). - GET
/orders/{id}Un pedido, por su id o por su número (RV-123456). - PATCH
/orders/{id}Cambia el estado del pedido. Envía status con uno de los valores de nextStatuses.
Donde va {id} puedes usar el número del producto o tu código: sku:TU-CODIGO.
Actualizar inventario y precios
Es la llamada para sincronizar: envía solo lo que cambió. Cada producto se identifica por id o por sku.
curl -X POST https://www.revoltillo.com/api/v1/inventory \
-H "Authorization: Bearer rv_TU_LLAVE" \
-H "Content-Type: application/json" \
-d '{
"items": [
{ "sku": "PLANTA-3500", "stock": 4, "price": 1150 },
{ "sku": "BAT-200AH", "stock": 0 },
{ "id": 500123, "price": 89.99, "previousPrice": 110 }
]
}'La respuesta dice, producto por producto, cuál se actualizó y cuál falló y por qué.
Crear un producto
curl -X POST https://www.revoltillo.com/api/v1/products \
-H "Authorization: Bearer rv_TU_LLAVE" \
-H "Content-Type: application/json" \
-d '{
"sku": "PLANTA-3500",
"title": "Planta eléctrica 3500 W",
"category": "energia",
"subcategory": "plantas-electricas",
"price": 1200,
"stock": 5,
"condition": "nuevo",
"description": "Arranque eléctrico. Garantía de 3 meses."
}'Después súbele las fotos, una por llamada. JPG, PNG o WebP de hasta 600 KB, máximo 6 por producto.
curl -X POST https://www.revoltillo.com/api/v1/products/sku:PLANTA-3500/photos \
-H "Authorization: Bearer rv_TU_LLAVE" \
-H "Content-Type: image/jpeg" \
--data-binary @planta.jpgPedidos
Cada venta descuenta la existencia del producto. Si cancelas el pedido, la existencia vuelve.
curl "https://www.revoltillo.com/api/v1/orders?status=recibida" \
-H "Authorization: Bearer rv_TU_LLAVE"
curl -X PATCH https://www.revoltillo.com/api/v1/orders/RV-123456 \
-H "Authorization: Bearer rv_TU_LLAVE" \
-H "Content-Type: application/json" \
-d '{ "status": "confirmada" }'Estados: recibida, confirmada, preparando, lista-para-recoger, en-camino, entregada, cancelada.
Campos de un producto
skuTu código del producto. Único dentro de tu tienda. Opcional.titleNombre del producto. Obligatorio al crear.category, subcategoryVan juntos, con valores de /categories. Obligatorios al crear.pricePrecio en dólares. Solo un servicio puede ir sin precio.previousPricePrecio anterior, para mostrar la rebaja. Debe ser mayor que price. null lo quita.stockUnidades disponibles, de 0 a 9999. Con 0 se muestra agotado.conditionnuevo, como-nuevo o usado.brandMarca. Opcional.descriptionHasta 800 caracteres.activefalse oculta el producto sin borrarlo.photosSolo al cambiar: los ids de las fotos que conservas, en el orden en que se muestran.
Errores y límites
Un error llega con su código HTTP y un mensaje que explica qué corregir.
{ "error": { "code": "dato_invalido", "message": "stock: debe ser un entero entre 0 y 9999." } }Límite: 120 llamadas por minuto por llave. Los cambios se ven en el sitio en menos de un minuto.
¿Dudas o necesitas algo que la API no hace? Escríbenos a hola@revoltillo.com.