Catálogo
Rutas
| Método | Ruta | Permiso | Desde |
|---|---|---|---|
| GET | /products | Sesión iniciada | 1.4.0 |
| GET | /products/{id} | Sesión iniciada | 1.4.0 |
| GET | /products/{id}/availability | Público | 1.8.0 |
| PUT, PATCH | /products/{id}/availability | Gestión o tienda | 1.4.0 |
| GET | /catalog | Sesión iniciada | 1.4.0 |
| GET | /product-categories | Sesión iniciada | 1.4.0 |
| GET | /product-categories/{id} | Sesión iniciada | 1.4.0 |
| GET | /product-categories/{id}/products | Sesión iniciada | 1.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ámetro | Notas |
|---|---|
page, per_page | Paginación estándar. |
search | Texto a buscar. |
category | ID 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=truedevuelve{ id, name, slug, description, count, parent }, ordenadas según el orden del menú.GET /product-categories/{id}/productsdevuelve los productos de la categoría, con paginación.meta.categoryidentifica 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ámetro | Valores |
|---|---|
notiwoo_image | with o without: productos con o sin imagen. |
notiwoo_extras | with o without: productos con o sin extras. |
notiwoo_extra_category | ID de una categoría de extras. |
Son los mismos filtros del catálogo de la app.