Usa la API REST de gestión de Product Add-Ons
Usa esta referencia para herramientas de catálogo autenticadas que gestionan grupos de POM, opciones reutilizables, definiciones específicas de producto, revisiones de publicación, asignaciones o información de integridad.
Autenticación y ámbito del sitio
- Usa una cuenta de administrador o de gestor de tienda. Los clientes HTTPS remotos pueden usar una contraseña de aplicación de WordPress; los clientes con sesión iniciada usan el nonce REST habitual.
- Usa la URL del sitio multisitio previsto. Los registros, las capacidades, las cachés y los identificadores de compatibilidad tienen ámbito de sitio.
- Lee un registro inmediatamente antes de modificarlo para que el cliente disponga de su
ETagseguro actual o surevisionnumérico.
El espacio de nombres de gestión es:
/wp-json/pom-tweaks/v1/product-add-ons
Rutas
| Finalidad | Ruta | Métodos | Acceso |
|---|---|---|---|
| Enumerar o crear grupos | /groups |
GET, POST |
Gestor |
| Leer, actualizar, enviar a la papelera o eliminar un grupo | /groups/{id} |
GET, PUT, PATCH, DELETE |
Gestor |
| Explicar una asignación de grupo | /groups/{id}/explain?product_id={product_id} |
GET |
Gestor |
| Enumerar o crear opciones reutilizables | /choices |
GET, POST |
Gestor |
| Leer, actualizar, enviar a la papelera o eliminar una opción | /choices/{id} |
GET, PUT, PATCH, DELETE |
Gestor |
| Leer diagnósticos de integridad y elementos huérfanos | /integrity |
GET |
Gestor |
| Leer un modelo de producto efectivo público | /products/{id} |
GET |
Público |
| Leer o actualizar la configuración propiedad del producto | /products/{id}/configuration |
GET, PUT, PATCH |
Gestor |
| Leer o cambiar el estado de publicación | /publications/{type}/{id} |
GET, PUT, PATCH |
Gestor |
type es group, choice o product. Antepón el espacio de nombres mostrado antes a cada ruta anterior.
Enumerar registros
Las colecciones de grupos y opciones aceptan parámetros acotados page, per_page, search, status, orderby y order. per_page no puede superar 100. Las respuestas incluyen X-WP-Total y X-WP-TotalPages.
Los registros de grupo contienen el name interno, estado, prioridad, el campo definition, la asignación scope, el estado de publicación, la revisión y el uso de solo lectura. El ámbito admite:
all_products,category_ids,include_childrenyproduct_ids;include_rulesyexclude_rulespara identificadores de producto, tipos de producto o términos de una taxonomía de productos registrada;include_relationyexclude_relation, cada uno conanyoall.
Los registros de opciones reutilizables contienen name, estado, config, estado de publicación, revisión y uso de solo lectura. La configuración del producto contiene local_definition, excluded_group_ids, exclude_global y el estado de herencia del idioma canónico.
Crear un grupo
Crea un borrador de configuración habilitado que esté asignado a una categoría:
POST /wp-json/pom-tweaks/v1/product-add-ons/groups
Content-Type: application/json
{
"name": "Gift options",
"public_name": "Gift options",
"status": "publish",
"priority": 20,
"definition": {
"fields": []
},
"scope": {
"all_products": false,
"category_ids": [42],
"include_children": true,
"product_ids": [],
"include_relation": "any",
"exclude_relation": "any",
"include_rules": [],
"exclude_rules": []
}
}
status describe si la configuración dentro del borrador está habilitada (publish) o deshabilitada (draft); no omite el paso de publicación independiente. El servidor normaliza el esquema y devuelve el registro guardado con su ETag. Un campo mal formado, un producto o término desconocido, un conjunto de reglas excesivo o un tipo no compatible rechaza la escritura completa.
Actualizar sin sobrescribir a otro editor
Lee el registro y conserva su cabecera de respuesta:
GET /wp-json/pom-tweaks/v1/product-add-ons/groups/123
ETag: "pom-pao-group-123-r7"
Envía la actualización prevista con esa condición previa:
PATCH /wp-json/pom-tweaks/v1/product-add-ons/groups/123
If-Match: "pom-pao-group-123-r7"
Content-Type: application/json
{
"name": "Gift and presentation options",
"priority": 15
}
Cada PUT, PATCH o DELETE debe incluir o bien el valor exacto If-Match o bien el revision numérico actual. Si ambos están presentes, deben coincidir. Una condición previa obsoleta devuelve el HTTP 409; una condición previa ausente devuelve el HTTP 428. Lee y reconcilia el registro actual en lugar de reintentar a ciegas.
La misma regla se aplica a las opciones y a la configuración del producto. Existe un filtro temporal pom_tweaks_product_addons_allow_unversioned_writes para una migración controlada de un cliente conocido, pero las escrituras sin versión no pueden detectar ediciones obsoletas y no deberían permanecer habilitadas.
Gestionar la configuración específica del producto
Lee la fuente actual y las exclusiones:
GET /wp-json/pom-tweaks/v1/product-add-ons/products/123/configuration
Actualiza local_definition, excluded_group_ids y exclude_global juntos cuando el producto necesite una configuración explícita. Envía local_definition: null para eliminar solo los campos específicos del producto.
Para un producto traducido, envía esto por sí solo para eliminar su anulación local completa y reanudar la herencia desde el producto del idioma predeterminado:
{
"inherit_canonical": true
}
Para crear una anulación traducida explícita, envía inherit_canonical: false con los valores completos de definición local y de exclusión previstos. Las respuestas identifican canonical_product_id, configuration_source_product_id y inherits_canonical.
Explicar la asignación
Usa la ruta de explicación antes de publicar un grupo amplio o complejo:
GET /wp-json/pom-tweaks/v1/product-add-ons/groups/123/explain?product_id=456
La respuesta informa de si el grupo publicado se aplica y explica cada inclusión y exclusión. Las exclusiones a nivel de producto tienen prioridad primero, las reglas de exclusión de grupo prevalecen sobre las reglas de inclusión, y una variación hereda el tipo de producto y los términos de taxonomía del padre variable.
Publicar o restaurar una revisión
Lee el estado de publicación:
GET /wp-json/pom-tweaks/v1/product-add-ons/publications/group/123
Publica el borrador actual con su revisión de registro:
{
"operation": "publish",
"reason": "Reviewed gift option changes",
"revision": 7
}
Restaura una publicación anterior como una nueva revisión con operation: "rollback" y source_revision_id. El historial se conserva; los carritos y pedidos existentes conservan sus instantáneas almacenadas.
Eliminar de forma segura
DELETE /groups/{id} y DELETE /choices/{id} mueven el registro a la papelera de forma predeterminada. Añade force=true solo para una eliminación permanente intencionada. POM devuelve el HTTP 409 con reference_count y un resumen de uso mientras quede alguna asignación, exclusión de producto o referencia de campo. No existe ninguna omisión que deje configuración huérfana.
La ruta autenticada /integrity informa de recuentos de entidades acotados y con ámbito de sitio, propiedad, mapas de uso, recuentos de huérfanos y hasta 100 muestras. Es de solo lectura y nunca repara registros automáticamente.
Límites y puntos de extensión
La API usa los mismos límites de campo, opción, asignación, carga útil y texto que la administración. Los valores predeterminados importantes de la administración incluyen 100 campos por definición, 500 opciones por campo, 2.000 opciones por definición, 24 reglas de inclusión y 24 de exclusión, 200 valores por regla y 500 valores de reglas avanzadas en total.
pom_tweaks_product_addons_assignment_taxonomies puede exponer una taxonomía ya registrada adjunta a productos. El filtro no registra la taxonomía ni concede capacidades. Usa pom_tweaks_product_addons_operational_limits solo para requisitos medidos y mantén sus valores devueltos dentro de los techos protegidos.
Verificar un cliente
- Enumera grupos con dos páginas y confirma los totales y el orden estable.
- Crea un grupo en borrador, actualízalo con
If-Matchy confirma que el valor obsoleto devuelve409sin modificar el registro. - Explica un producto incluido y un producto excluido.
- Publica el borrador y confirma que la ruta pública de producto y el escaparate lo usan.
- Envía a la papelera una opción reutilizable vinculada, restáurala y confirma que su relación de campo permanece.
- Intenta la eliminación permanente mientras está vinculada y confirma la respuesta de uso
409. - Lee
/integritycomo gestor y confirma que una solicitud anónima es rechazada. - En multisitio, repite una lectura contra otra URL de sitio y confirma que los registros no cruzan entre sitios.
Solución de problemas
- HTTP
401o403: autentica a un usuario con permiso de gestión de WooCommerce y usa la URL de sitio correcta. - HTTP
409: el registro cambió o sigue referenciado; inspecciona la respuesta antes de actuar. - HTTP
428: lee el registro y envía suETagorevision. rest_invalid_param: envía la estructura pública documentada en lugar de metadatos privados de WordPress.- Resultado de asignación ausente: confirma que el grupo está publicado; la ruta de explicación evalúa el comportamiento de asignación publicado.
Relacionado: Publicar y restaurar configuraciones, Compatibilidad oficial de Product Add-Ons y Comprobaciones de estado y compatibilidad.