Saltar al contenido

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.jpg

Pedidos

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.

¿Dónde estás?