Saltar al contenido principal

Catálogo

Rutas​

MétodoRutaPermisoDesde
GET/productsSesión iniciada1.4.0
GET/products/{id}Sesión iniciada1.4.0
GET/products/{id}/availabilityPúblico1.8.0
PUT, PATCH/products/{id}/availabilityGestión o tienda1.4.0
GET/catalogSesión iniciada1.4.0
GET/product-categoriesSesión iniciada1.4.0
GET/product-categories/{id}Sesión iniciada1.4.0
GET/product-categories/{id}/productsSesión iniciada1.4.0

Las listas de productos exigen sesión iniciada, aunque esos productos se vean en la tienda. Para mostrar el catálogo sin sesión, usa la Store API de WooCommerce.

Objeto producto​

{
"id": 120,
"name": "Smash clásica",
"price": "12000",
"price_html": "<span class=\"amount\">$ 12.000</span>",
"image_url": "https://tienda.example.test/wp-content/uploads/smash.jpg",
"currency_symbol": "$",
"is_enabled": true,
"extra_option_categories": [18],
"extra_options": [
{
"id": 18, "title": "Adiciones", "type": "checkbox-limitedchoice",
"minimum_options": 0, "maximum_options": 2, "required": false, "hide_prices": false,
"options": [ { "id": 91, "name": "Queso extra", "price": 3000, "sku": "", "prechecked": false } ]
}
]
}

Los productos variables incluyen variations[] (cada variación con precio, atributos y sus propios extras) y attributes[].

Listar y leer productos​

GET /products

ParámetroNotas
page, per_pagePaginación estándar.
searchTexto a buscar.
categoryID de la categoría de producto.

Solo devuelve productos publicados. GET /products/{id} responde 404 notiwoo_not_found si el producto no existe o no está publicado.

Disponibilidad​

GET /products/{id}/availability es público y responde { product_id, available, reasons[] }. Los motivos posibles son not_found, not_published, manually_disabled y out_of_stock.

PUT /products/{id}/availability con { "enabled": false } desactiva un producto sin despublicarlo, como el interruptor de la app. Responde { id, enabled }.

curl -X PUT https://tienda.example.test/wp-json/notiwoo/v1/products/120/availability \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"enabled": false}'

Catálogo completo​

GET /catalog devuelve todas las categorías con productos, cada una con sus productos publicados: data[] = { cat_id, name, products[] }. No está paginado, así que en catálogos grandes puede ser una respuesta pesada. Guárdala en caché.

Categorías de producto​

  • GET /product-categories?hide_empty=true devuelve { id, name, slug, description, count, parent }, ordenadas según el orden del menú.
  • GET /product-categories/{id}/products devuelve los productos de la categoría, con paginación. meta.category identifica la categoría.

Filtros extra en la API de WooCommerce​

Desde 1.26.0, Notiwoo añade estos parámetros a GET /wp-json/wc/v3/products:

ParámetroValores
notiwoo_imagewith o without: productos con o sin imagen.
notiwoo_extraswith o without: productos con o sin extras.
notiwoo_extra_categoryID de una categoría de extras.

Son los mismos filtros del catálogo de la app.