Magento 2 dispose-t-il de systèmes ou d'abstractions pour gérer l'état entre le backend et le stockage local sur le frontend?
Je travaille sur le portage d'une fonctionnalité pour restaurer le panier abandonné d'un utilisateur via une URL de redirection. Sous une forme simplifiée, une URL comme
http://magento.example.com/restore/the/cart?identifier=sdkfjh48v237g5
chargera un devis dans le panier de l'utilisateur actuel en fonction d'un quote_id codé dans l'identifiant.
Dans Magento 1, c'était relativement simple - il vous suffisait de mettre à jour les informations de session de paiement d'un utilisateur avec l'ID de devis correct. Cependant, Magento 2 ajoute la ride du stockage local .
La ou les applications javascript frontend de Magento 2 semblent mettre en cache les informations dans les bases de données de stockage local du navigateur. Cela inclut des informations pour la construction du mini-chariot. Cela signifie que même si un utilisateur-programmeur (moi) parvient à modifier l'ID de session de session dans le backend, le mini-chariot affichera toujours les anciennes données du panier.
Ce n'est qu'un exemple d'un problème qui provient du fait de ne pas connaître (ou de ne pas avoir?) Une seule API pour gérer l'état de l'application à travers le backend et le frontend. Pour mon problème spécifique, mon point de terminaison a rendu une page HTML qui inclut du javascript qui efface manuellement le stockage local, puis redirige l'utilisateur vers une autre page - mais cela ressemble à un hack grossier.
Existe-t-il une API dans Magento 2 pour gérer les données entre le frontend et le backend?
Existe-t-il un moyen standard de signaler à l'ensemble du système que, pendant le traitement backend, vous avez fait quelque chose qui rend nécessaire l'invalidation du cache de stockage local frontal?
Existe-t-il une technique pour injecter un nouveau module RequireJS dans la page qui s'exécute automatiquement et peut manipuler le stockage local avant que le reste des applications javascript n'y accèdent?