Magento 2 ha dei sistemi o astrazioni per la gestione dello stato tra il back-end e l'archiviazione locale sul front-end?
Sto lavorando al porting di una funzione per ripristinare il carrello abbandonato di un utente tramite un URL di reindirizzamento. In forma semplificata, un URL come
http://magento.example.com/restore/the/cart?identifier=sdkfjh48v237g5
caricherà un preventivo nel carrello dell'utente corrente sulla base di un quote_id codificato nell'identificatore.
In Magento 1, questo era relativamente semplice: era sufficiente aggiornare le informazioni sulla sessione di checkout di un utente con l'ID preventivo corretto. Tuttavia, Magento 2 aggiunge la piega della memoria locale .
Le applicazioni javascript frontend Magento 2 sembrano memorizzare nella cache le informazioni nei database di archiviazione locale del browser. Ciò include le informazioni per la costruzione del mini-carrello. Ciò significa che anche se un programmatore dell'utente finale (me) riesce a modificare l'ID sessione della sessione nel back-end, il mini-carrello visualizzerà comunque i vecchi dati del carrello.
Questo è solo un esempio di un problema che deriva dal non conoscere (o avere?) Una singola API per gestire lo stato dell'applicazione attraverso il backend e il frontend. Per il mio problema specifico ho avuto il mio endpoint nel rendering di una pagina HTML che include alcuni javascript che cancella manualmente l'archiviazione locale e quindi reindirizza l'utente a un'altra pagina, ma questo sembra un vero e proprio hack.
Esiste un'API in Magento 2 per la gestione dei dati tra frontend e backend?
Esiste un modo standard per segnalare all'intero sistema che, durante l'elaborazione del back-end, hai fatto qualcosa che lo rende necessario invalidando la cache di archiviazione locale del front-end?
Esiste una tecnica per iniettare un nuovo modulo RequireJS nella pagina che viene eseguita automaticamente e può manipolare l'archiviazione locale prima che il resto delle applicazioni javascript acceda ad esso?