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


С кэшем 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 содержит только "*" и "сообщения" => пустые (ложные или нулевые).

Когда страница кэш включен есть 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 ошибка или это что-то, что я напутал? Спасибо

Author: Prashant Valanda, 2016-04-25

1 answers

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

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

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

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

 0
Author: nshiff, 2018-03-08 09:48:13