Magento 2 minicart, приветственное сообщение, другие не работают с отключенным кешем страниц после входа в систему


16

С кешем Magento 2.0.4 , точнее кешированием страниц , все работает.

Если я отключу его, удалите файлы cookie и войдите в систему как клиент, чем продукты в миникарте .

Приветственное сообщение на самом деле не работает правильно. Я должен добавить продукт в корзину со страницы продукта, чтобы увидеть мини-карту. Если я иду к оформлению заказа, страна не отображается в сводке адресов (адрес доставки уже добавлен в мой аккаунт).

Я сделал отладки , и это выглядит как проблема указывает на: module-customer/view/frontend/web/js/customer-data.js. Файл cookie private_content_versionустанавливается module-page-cache/view/frontend/web/js/page-cache.jsи используется в customer-data.js. Смотрите customerData::reloadфункцию.

Если кеш страниц отключен, данные не загружаются с сервера, как это dataProvider::getFromServer()делает функция .

Когда кеш страниц отключен, cookie private_content_versionтам нет (page-cache.js не выполняется по ходу). Но файл cookie section_data_idsсодержит только '*' и 'messages' => empty (false или null).

Когда кеш страниц включен, есть private_content_versionи section_data_idsесть какие ключи со значениями:

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

После того, как я вошел в систему с включенным кешем страниц, на информационной панели клиента есть 2 дополнительных ajax-запроса, которые загружают данные:

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

Они содержат объекты json с данными о клиентах и ​​каталогами, как все страны и регионы. При этих вызовах при оформлении заказа в сводке адреса отображается название страны. Смотрите: module-customer/view/frontend/web/js/sections-config.js и module-checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js, функция getCountryName.

Это ошибка в Magento 2 или я что-то напутал? Благодарность


Вам удалось это исправить или найти, что именно вызывает это? У меня очень похожая проблема, Magento ver. 2.0.1. Если я очищаю кеш (удаляя все папки кеша), я получаю похожее сообщение об ошибке в консоли браузера:GET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)
maginfortis

1
Пока не нашли решения. В вашем случае это может быть проще. Посмотрите, что это за ошибка, и попробуйте ее исправить. Включить ошибки в Magento 2 и обойти эту конкретную ошибку. Я не получаю ошибок, просто он не загружает данные. Я не видел ошибок в моем случае.
неясный

Я столкнулся с той же ошибкой, и я скажу, что это ошибка magento2, так как с включенным FPC он будет работать, но как только вы отключите его, не будет. Для временного исправления необходимо программно обновлять миникарту на каждой странице.
Сальма Сайяд

Ответы:


0

Это кажется нерешенной проблемой, хотя, возможно, она решена в более новых версиях M2. Смотрите вопросы Magento GitHub:

Насколько вы можете попробовать ...

Если это связано с файлами cookie, вы можете исключить некоторые возможности, посетив ваш сайт в приватном браузере / инкогнито-браузере. Просмотрите рабочий процесс (не вошли в систему, добавьте продукт в корзину, войдите в систему, просмотрите / checkout / cart и раскрывающийся список мини-карт).

Кроме того, может быть полезно ознакомиться с документацией разработчиков M2 для получения рекомендаций по настройке кэшей при разработке по сравнению с конфигурации в производстве . По моему опыту, при разработке все в порядке, чтобы все кеши были включены в разработку и просто очищались при необходимости (читайте документы для описания каждого кеша). Обратите внимание, что в основном как передовой разработчик, я лично предпочитаю разрабатывать с отключенным выходом FPC, Blocks и кэши разметки - это позволяет легче видеть изменения внешнего интерфейса.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.