Magento 2 minicart, вітальне повідомлення та інші не працюють з кеш-сторінкою, вимкнутими після входу клієнта


16

З кешем Magento 2.0.4 , точніше кеш сторінок увімкнено , все працює.

Якщо я його відключую , очищати файли cookie та входити в систему як клієнт, ніж продукти в minicart там немає.

Привітальне повідомлення не дуже працює. Я повинен додати товар у кошик зі сторінки товару, щоб побачити міні-картку. Тоді якщо я піду на замовлення, країна не відображається в резюме адреси (адреса доставки вже додана в мій рахунок).

Я зробив налагодження , і це виглядає як проблема вказує на: 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' => порожні (помилкові або нульові).

Коли кеш сторінок увімкнено, є 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, вона буде працювати, але як тільки ви відключите її, не буде. Щоб виправити це тимчасово, вам потрібно оновити програму minicart на кожній сторінці.
Сальма Саяд

Відповіді:


0

Це, мабуть, є невирішеною проблемою, хоча, можливо, воно вирішено в нових версіях M2. Див. Випуски Magento GitHub:

Що стосується того, що ви можете спробувати ...

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

Крім того, може бути корисним переглянути документи розробників M2 щодо кращих практик щодо конфігурації кешів у процесі розробки та конфігурації у виробництві . На моєму досвіді, в розробці добре, що в кеш увімкнено всі кеші, а при необхідності їх просто очистити (прочитайте документи для описів кожного кешу). Зауважте, що я, як правило, розроблювач фронтального типу, я віддаю перевагу розробці з вимкненим FPC, блоками виведення та кешами макета - це дозволяє побачити зміни фронтенду легше.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.