Integración con REST y Store API
Usa los contratos de API cuando un escaparate personalizado necesite exponer la misma biblioteca de cuentas o transmitir el consentimiento del precio de una configuración guardada a través de WooCommerce Blocks. El servidor sigue reconstruyendo cada presupuesto a partir de los datos actuales de WooCommerce, Product Add-Ons y Composite.
Estos contratos de cuenta de cliente y Store API solo se registran cuando Allow customers to save configurations to their accounts está habilitado. El permiso está deshabilitado de forma predeterminada y no afecta a las URL públicas de productos preestablecidos.
Rutas REST de cuenta
El espacio de nombres es /wp-json/pom-tweaks/v1/saved-configurations.
GET /enumera los registros que pertenecen al cliente actual conlimitde 1 a 100 y unpagede base uno. Las respuestas incluyen las cabecerasX-WP-TotalyX-WP-TotalPages.POST /valida y guarda una intención de Product Add-Ons o Composite.POST /from-cartcaptura una línea de carrito configurada propiedad del servidor mediante la clave del artículo del carrito.GET /{configuration_uuid}lee un registro autorizado y devuelve un objetoapplicationconciliado con el modelo de producto actual.PATCH /{configuration_uuid}lo renombra.DELETE /{configuration_uuid}lo elimina junto con sus enlaces para compartir.POST /{configuration_uuid}/duplicatecrea una copia del propietario.POST /{configuration_uuid}/sharescrea un enlace portador redactado con caducidad opcional y consentimiento de personalización.DELETE /{configuration_uuid}/shares/{share_uuid}revoca un enlace.POST /confirmdevuelve un recibo de corta duración para el precio conciliado actual.
Las operaciones de cuenta requieren un usuario de WordPress autenticado, la autenticación normal por cookies de WordPress REST y un nonce REST X-WP-Nonce para las peticiones del navegador. La propiedad o una capacidad de gestión de WooCommerce aplicable se comprueba en cada mutación de registro. Esto también admite usuarios de red que poseen un registro de cuenta sin tener un rol en el sitio multisitio individual. Cada cuerpo de mutación está limitado a 64 KiB, la intención de configuración tiene un anidamiento acotado y las mutaciones de cuenta están limitadas a 60 peticiones por minuto por usuario. La confirmación de precio está limitada a 20 peticiones por minuto por usuario o sesión de invitado de WooCommerce.
El esquema de configuración de la versión 1 utiliza kind, product_id, variation_id opcional, quantity, name y un objeto intent acotado. La intención de Product Add-Ons se identifica por contexto estable y UUID de campos. La intención de Composite contiene selecciones de capítulos y puede contener intención UUID de Product Add-Ons anidada. Los valores de precio históricos devueltos para su visualización nunca deben enviarse como autoridad. Una cuenta puede contener hasta 500 configuraciones, y cada configuración puede tener hasta 50 enlaces activos simultáneamente.
El application resuelto contiene los IDs de producto y variación actuales, los atributos de variación, la cantidad, la intención aplicable, la instantánea de visualización actual, el estado de conciliación y los cambios, y si se requiere confirmación del precio actual. Usa este objeto en lugar de reproducir los IDs guardados sin procesar.
Datos de artículos del carrito de Store API
Cuando WooCommerce Blocks carga los artículos del carrito, el objeto extensions.pom-saved-configurations informa de lo siguiente:
saveable: si el cliente que ha iniciado sesión puede capturar esa línea de carrito configurada.kind:product_addons,compositeo una cadena vacía.
Un cliente personalizado puede enviar el consentimiento del precio actual al añadir el artículo conciliado:
{
"extensions": {
"pom-saved-configurations": {
"configuration_uuid": "00000000-0000-4000-8000-000000000000",
"receipt": "short-lived-receipt"
}
}
}
El recibo se acepta solo para la misma configuración, los mismos valores resueltos, el total calculado actual, el cliente o la sesión de invitado y la ventana de validez. Es solo para la petición, no se conserva en los datos del artículo del carrito y no es un token de precio reutilizable.
Límite del enlace para compartir
Los tokens para compartir se abren mediante el enlace generado, no mediante un ID de registro REST enumerable. Un enlace válido establece un contexto de sesión de WooCommerce de corta duración y redirige a la URL actual del producto sin dejar el token en la dirección de la página del producto. Las respuestas se marcan como no almacenables en caché y usan una política de no-referrer.
Un parámetro de consulta explícito pom_saved_configuration o preset tiene precedencia estricta. Si ese registro solicitado no es válido, no está disponible o no está autorizado, POM no aplica silenciosamente un preestablecido distinto, una configuración proporcionada por el filtro o una sesión para compartir anterior.
Verificación
- Confirma que un cliente no puede leer, renombrar, eliminar, duplicar, compartir ni revocar el registro de otro cliente.
- Confirma que las cargas útiles de tamaño excesivo y con anidamiento profundo se rechazan.
- Confirma que un enlace revocado o caducado no puede establecer ni continuar un contexto compartido.
- Confirma que los artículos del carrito de Blocks exponen solo
saveableykind, no los valores guardados ni los identificadores del propietario. - Cambia un precio actual después de obtener un recibo y confirma que el añadir al carrito de Store API rechaza el recibo obsoleto.