Saltar al contenido principal

Extras

Todas las rutas de esta página exigen permiso de gestión. Para conocer el comportamiento en la tienda, consulta Extras y popup.

Rutas​

MétodoRutaDesde
GET, POST/extras1.1.0
GET, PUT, PATCH, DELETE/extras/{id}1.1.0
GET, POST/extra-categories1.1.0
GET, PUT, PATCH, DELETE/extra-categories/{id}1.1.0
GET, PUT, PATCH/products/{id}/extra-categories1.1.0
GET/products/{id}/variations1.17.0
GET, PUT, PATCH, DELETE/products/{id}/variations/{variation_id}/extra-categories1.17.0

Extras​

Objeto extra​

{
"id": 91,
"name": "QUESO EXTRA 50G",
"visible_as": "Queso extra",
"sku": "",
"price": "3000",
"prechecked": false,
"enabled": true,
"categories": [ { "id": 18, "name": "Adiciones" } ],
"updated_at": "2026-09-30T17:15:00+00:00"
}

name es el nombre interno. visible_as es el nombre que ve el cliente; si está vacío, se muestra name.

Listar​

GET /extras con page, per_page, search y category_id. Se ordena por nombre.

Crear y editar​

CampoNotas
nameObligatorio al crear.
priceNúmero decimal ≥ 0. Se acepta coma decimal.
visible_as, skuTexto.
precheckedSi viene marcado por defecto («Preseleccionado»).
enabledSi está activo.
category_idsIDs de categorías de extras existentes. Alias: categories.

Al editar, solo cambian los campos enviados. Las categorías no se crean automáticamente: deben existir.

curl -X POST https://tienda.example.test/wp-json/notiwoo/v1/extras \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"name": "QUESO EXTRA 50G", "visible_as": "Queso extra", "price": "3000", "category_ids": [18]}'

Borrar​

DELETE /extras/{id} borra el extra de forma definitiva y lo quita del orden de sus categorías. Responde { deleted: true, id }.

Errores: 404 notiwoo_extra_not_found, 400 notiwoo_extra_name_required, 400 notiwoo_invalid_extra_price, 400 notiwoo_extra_category_not_found (details.category_id).

Categorías de extras​

Objeto categoría​

{
"id": 18,
"title": "Adiciones",
"visible_as": "Elige tus adiciones",
"style": "accordion",
"type": "checkbox-limitedchoice",
"minimum_options": 0,
"maximum_options": 2,
"required": false,
"hide_prices": false,
"enabled": true,
"global_categories": [7],
"extra_order": [94, 91],
"extras_count": 2,
"updated_at": "2026-09-30T17:20:00+00:00"
}
CampoValores
typecheckbox-multichoice (casillas), checkbox-limitedchoice (casillas con selección limitada), radio o select (una sola opción).
styleaccordion o flat.
minimum_options, maximum_optionsEnteros ≥ 0. radio y select fijan el máximo en 1. checkbox-limitedchoice necesita un máximo de al menos 1. El mínimo no puede superar el máximo.
global_categoriesIDs de categorías de producto: la categoría de extras se aplica a todos sus productos.
extra_orderOrden de los extras. Todos deben existir y pertenecer a la categoría, así que guarda primero la categoría nueva y ordena después.

GET /extra-categories acepta search. No está paginado: meta.total indica el total.

DELETE /extra-categories/{id} la borra y la quita de todos los productos y variaciones.

Errores frecuentes: 400 notiwoo_extra_category_title_required, 400 notiwoo_invalid_extra_category_type, 400 notiwoo_invalid_extra_category_range, 400 notiwoo_missing_extra_category_maximum, 400 notiwoo_ordered_extra_wrong_category, 404 notiwoo_extra_category_not_found.

Extras de un producto​

GET /products/{id}/extra-categories devuelve las categorías asignadas directamente al producto. En meta incluye:

CampoSignificado
category_idsAsignación directa, en orden.
effective_category_idsLo que verá el cliente: asignación directa más categorías globales, sin las desactivadas.
inheritedEn una variación, si hereda los extras del producto.
extras_disabledEstado «Sin extras».

PUT /products/{id}/extra-categories acepta category_ids (ordenados) y/o extras_disabled. Debes enviar al menos uno de los dos.

curl -X PUT https://tienda.example.test/wp-json/notiwoo/v1/products/120/extra-categories \
-H "Authorization: Bearer <token>" -H "Content-Type: application/json" \
-d '{"category_ids": [18, 12]}'

Variaciones​

  • GET /products/{id}/variations lista las variaciones { id, name, status, enabled }. En un producto simple devuelve [].
  • PUT /products/{id}/variations/{variation_id}/extra-categories define extras propios de la variación y deja de heredar los del producto.
  • DELETE sobre la misma ruta quita la configuración propia y vuelve a heredar.

Errores: 404 notiwoo_invalid_product, 404 notiwoo_invalid_variation, 400 notiwoo_category_ids_required.