Saltar al contenido principal

Products

Endpoints para gestionar el catálogo de productos.

Listar productos

GET /api/shops/{shopId}/products

Headers

X-Shop-API-Key: YOUR_API_KEY

Query params

ParamTipoDescripción
pagenumberNúmero de página (default: 0)
sizenumberProductos por página (default: 20)
sortstringCampo de ordenación

Response

{
"content": [
{
"id": "prod_123",
"externalId": "SKU-001",
"name": "Producto ejemplo",
"price": 99.99,
"inStock": true,
"createdAt": "2024-01-15T10:00:00Z"
}
],
"page": 0,
"size": 20,
"totalElements": 150,
"totalPages": 8
}

Sincronizar productos

POST /api/shops/{shopId}/products/sync

Sincroniza productos (crea o actualiza).

Headers

X-Shop-API-Key: YOUR_API_KEY
Content-Type: application/json

Request body

[
{
"externalId": "SKU-001",
"name": "Zapatillas Nike Air Max",
"description": "Zapatillas clásicas de running",
"price": 129.99,
"salePrice": 99.99,
"currency": "EUR",
"url": "https://tienda.com/nike-air-max",
"imageUrl": "https://tienda.com/images/nike.jpg",
"categories": ["deportes", "zapatillas"],
"brand": "Nike",
"tags": ["running", "casual"],
"inStock": true,
"stockQuantity": 25
}
]

Campos

CampoTipoRequeridoDescripción
externalIdstringID único en tu sistema
namestringNombre del producto
pricenumberPrecio actual
urlstringURL del producto
descriptionstringDescripción
salePricenumberPrecio de oferta
currencystringCódigo de moneda (default: EUR)
imageUrlstringURL de imagen
categoriesstring[]Categorías
brandstringMarca
tagsstring[]Tags/etiquetas
inStockbooleanDisponibilidad (default: true)
stockQuantitynumberCantidad en stock

Response

{
"synced": 10,
"created": 3,
"updated": 7,
"failed": 0,
"errors": []
}

Eliminar producto

DELETE /api/shops/{shopId}/products/{productId}

Headers

X-Shop-API-Key: YOUR_API_KEY

Response

{
"deleted": true
}

Ejemplo: Sincronización batch

curl -X POST https://api.neuroon.ai/api/shops/shop_123/products/sync \
-H "X-Shop-API-Key: sk_live_abc123" \
-H "Content-Type: application/json" \
-d '[
{
"externalId": "SKU-001",
"name": "Producto 1",
"price": 49.99,
"url": "https://tienda.com/producto-1"
},
{
"externalId": "SKU-002",
"name": "Producto 2",
"price": 79.99,
"url": "https://tienda.com/producto-2"
}
]'

Límites

  • Máximo 100 productos por petición de sync
  • Para catálogos grandes, usa múltiples peticiones
  • Respeta los rate limits