Minicart Magento 2, messaggio di benvenuto, altro non funziona con la cache della pagina disabilitata dopo l'accesso del cliente


16

Con la cache Magento 2.0.4 , in particolare la cache della pagina abilitata , tutto funziona.

Se lo disabilito, cancella i cookie e accedo come cliente rispetto ai prodotti in Minicart non ci sono.

Il messaggio di benvenuto non funziona davvero bene. Devo aggiungere un prodotto al carrello da una pagina del prodotto per vedere la minicart. Se vado alla cassa, il paese non viene visualizzato nel riepilogo dell'indirizzo (indirizzo di spedizione già aggiunto nel mio account).

Ho fatto degli errori e sembra che il problema sta puntando: module-customer/view/frontend/web/js/customer-data.js. Il cookie private_content_versionè impostato module-page-cache/view/frontend/web/js/page-cache.jse utilizzato in customer-data.js. Vedi customerData::reloadfunzione

Con la cache della pagina disabilitata, i dati non vengono caricati dal server come fa la funzione dataProvider::getFromServer().

Quando la cache della pagina è disabilitata, il cookie private_content_version non è presente (la pagina-cache.js non viene eseguita fuori rotta). Ma il cookie section_data_idsha solo '*' e 'messaggi' => vuoto (falso o nullo).

Quando la cache della pagina è abilitata c'è private_content_versione section_data_idsha quali chiavi con valori:

*:      null
cart:       123
compare-products:       123
customer:       123
directory-data:     123
last-ordered-items:     123
multiplewishlist:       123
review:     123
wishlist:       123

Dopo aver effettuato l'accesso con la cache della pagina abilitata, nella dashboard del cliente ci sono altre 2 richieste Ajax che caricano i dati:

http://test.localhost/customer/section/load/?sections=&update_section_id=false&_=123 http://test.localhost/customer/section/load/?sections=directory-data&update_section_id=false&_=123

Questi contengono oggetti json con dati specifici del cliente e dati di directory come tutti i paesi e le regioni. Con queste chiamate, al checkout il riepilogo dell'indirizzo visualizza il nome del paese. Vedi: module-customer/view/frontend/web/js/sections-config.js e module-checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js, funzione getCountryName.

È un bug di Magento 2 o è qualcosa che ho sbagliato? Grazie


Sei stato in grado di risolvere questo problema o scoprire cosa sta causando esattamente questo? Ho un problema molto simile, Magento ver. 2.0.1. Se svuoto la cache (eliminando tutte le cartelle della cache) ricevo un messaggio di errore simile nella console del browser:GET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)
maginfortis,

1
Non ho ancora trovato una soluzione. Nel tuo caso potrebbe essere un caso più semplice. Guarda qual è l'errore e prova a risolverlo. Abilita gli errori in Magento 2 e aggira l'errore specifico. Non ricevo errori, è solo che non carica i dati. Non ho visto errori nel mio caso.
oscuro

Ho riscontrato lo stesso errore e dirò che è un bug magento2 come con FPC abilitato funzionerà ma una volta disabilitato non lo farà. Per risolverlo temporaneamente è necessario aggiornare la minicart a livello di codice su ogni pagina.
Salma Saiyad,

Risposte:


0

Questo sembra essere un problema eccezionale, anche se forse è stato risolto nelle versioni più recenti di M2. Vedi i problemi di Magento GitHub:

Per quanto riguarda quello che puoi provare ...

Se si tratta di cookie, potresti essere in grado di escludere alcune possibilità visitando il tuo sito in un browser di navigazione / navigazione in incognito privato. Passa attraverso il tuo flusso di lavoro (non connesso, aggiungi prodotto al carrello, accesso cliente, guarda / checkout / carrello e menu a discesa minicart).

Inoltre, può essere utile rivedere i documenti di sviluppo M2 per le migliori pratiche riguardanti la configurazione delle cache in sviluppo rispetto alla configurazione in produzione . Nella mia esperienza, nello sviluppo, è OK avere tutte le cache abilitate nello sviluppo e semplicemente svuotare quando necessario (leggi i documenti per le descrizioni di ogni cache). Nota, come sviluppatore per lo più front-end, preferisco personalmente sviluppare con FPC, output dei blocchi e cache di layout disabilitate - questo consente di vedere più facilmente le modifiche al frontend.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.