¿Magento 2 tiene algún sistema o abstracción para administrar el estado entre el backend y el almacenamiento local en la interfaz?
Estoy trabajando en portar una función para restaurar el carrito abandonado de un usuario a través de una URL de redireccionamiento. En forma simplificada, una URL como
http://magento.example.com/restore/the/cart?identifier=sdkfjh48v237g5
cargará una cotización en el carrito del usuario actual basado en un quote_id codificado en el identificador.
En Magento 1, esto era relativamente simple: solo necesitaba actualizar la información de la sesión de Checkout de un usuario con la ID de cotización correcta. Sin embargo, Magento 2 agrega la arruga del almacenamiento local .
La (s) aplicación (es) de JavaScript de la interfaz de Magento 2 parece almacenar información en caché en las bases de datos de almacenamiento local del navegador. Esto incluye información para construir el mini carro. Lo que esto significa es que incluso si un programador de usuario final (yo) logra cambiar la ID de sesión de la sesión en el back-end, el mini-carrito seguirá mostrando los datos del carrito antiguo .
Este es solo un ejemplo de un problema que surge de no saber (¿o no tener?) Una sola API para administrar el estado de la aplicación en el backend y la interfaz. Para mi problema específico, he tenido mi punto final que representa una página HTML que incluye algunos JavaScript que borra manualmente el almacenamiento local y luego redirige al usuario a otra página, pero esto se siente como un truco asqueroso.
¿Existe una API en Magento 2 para administrar los datos entre el frontend y el backend?
¿Existe una forma estándar de señalizar a todo el sistema que, durante el procesamiento del back-end, has hecho algo que hace necesario que invalide el caché de almacenamiento local de la interfaz?
¿Existe una técnica para inyectar un nuevo módulo RequireJS en la página que se ejecuta automáticamente y puede manipular el almacenamiento local antes de que el resto de las aplicaciones de JavaScript accedan a él?