Con el caché Magento 2.0.4 , más específicamente el caché de página habilitado , todo funciona.
Si lo desactivo, borro las cookies e inicio de sesión como cliente que los productos en minicart no están allí.
El mensaje de bienvenida no funciona bien. Tengo que agregar un producto al carrito desde una página de producto para ver el minicart. Entonces, si voy a pagar, el país no se muestra en el resumen de direcciones (la dirección de envío ya se agregó en mi cuenta).
He hecho la depuración y parece que el problema está apuntando a:
module-customer/view/frontend/web/js/customer-data.js
. La cookie private_content_version
se establece module-page-cache/view/frontend/web/js/page-cache.js
y se usa en customer-data.js
. Ver customerData::reload
función.
Con la memoria caché de página deshabilitada, los datos no se cargan desde el servidor como lo hace la función dataProvider::getFromServer()
.
Cuando la caché de página está deshabilitada, la cookie private_content_version
no está allí (page-cache.js no se ejecuta fuera de curso). Pero la cookie section_data_ids
solo tiene '*' y 'mensajes' => vacío (falso o nulo).
Cuando la caché de página está habilitada, hay private_content_version
y section_data_ids
tiene qué claves con valores:
*: null
cart: 123
compare-products: 123
customer: 123
directory-data: 123
last-ordered-items: 123
multiplewishlist: 123
review: 123
wishlist: 123
Después de iniciar sesión con la memoria caché de página habilitada, en el panel del cliente hay 2 solicitudes ajax adicionales que cargan datos:
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
Estos contienen objetos json con datos específicos del cliente y datos de directorio como todos los países y regiones. Con estas llamadas, al finalizar la compra, el resumen de la dirección muestra el nombre del país. Ver: module-customer/view/frontend/web/js/sections-config.js
y module-checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js
, función getCountryName
.
¿Es esto un error de Magento 2 o es algo que he estropeado? Gracias
GET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)