Magento 2 minicart, pesan selamat datang, lainnya tidak berfungsi dengan cache halaman dinonaktifkan setelah login pelanggan

16

Dengan Magento 2.0.4 cache, lebih khusus cache halaman diaktifkan , semuanya berfungsi.

Jika saya menonaktifkannya, menghapus cookie, dan login sebagai pelanggan daripada produk di minicart tidak ada.

Pesan sambutan tidak benar-benar berfungsi. Saya harus menambahkan produk ke troli dari halaman produk untuk melihat minicart. Daripada jika saya pergi ke checkout, negara tidak ditampilkan dalam ringkasan alamat (alamat pengiriman sudah ditambahkan di akun saya).

Aku sudah melakukan debugging dan sepertinya masalah menunjuk ke: module-customer/view/frontend/web/js/customer-data.js. Cookie private_content_versiondiatur module-page-cache/view/frontend/web/js/page-cache.jsdan digunakan dalam customer-data.js. Lihat customerData::reloadfungsi.

Dengan cache halaman dinonaktifkan, data tidak dimuat dari server seperti fungsinya dataProvider::getFromServer().

Ketika cache halaman dinonaktifkan, cookie private_content_versiontidak ada di sana (page-cache.js tidak dijalankan tentunya). Tetapi cookie section_data_idshanya memiliki '*' dan 'pesan' => kosong (salah atau nol).

Ketika halaman cache diaktifkan ada private_content_versiondan section_data_idsmemiliki kunci apa dengan nilai-nilai:

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

Setelah saya masuk dengan cache halaman diaktifkan, pada dasbor pelanggan ada 2 permintaan ajax tambahan yang memuat data:

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

Ini berisi objek json dengan data spesifik pelanggan dan data direktori seperti semua negara dan wilayah. Dengan panggilan ini, saat checkout ringkasan alamat menampilkan nama negara. Lihat: module-customer/view/frontend/web/js/sections-config.js dan module-checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js, fungsi getCountryName.

Apakah ini bug Magento 2 atau ini adalah sesuatu yang saya buat berantakan? Terima kasih

mengaburkan
sumber
Apakah Anda dapat memperbaiki ini atau menemukan apa yang sebenarnya menyebabkan ini? Saya punya masalah yang sangat mirip, Magento ver. 2.0.1. Jika saya menghapus cache (menghapus semua folder cache) saya mendapatkan pesan kesalahan serupa di konsol browser:GET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)
maginfortis
1
Belum menemukan solusi. Dalam kasus Anda, ini mungkin kasus yang lebih sederhana. Lihat apa kesalahannya dan coba perbaiki. Aktifkan kesalahan di Magento 2 dan atasi kesalahan spesifik itu. Saya tidak mendapatkan kesalahan, hanya saja tidak memuat data. Saya belum melihat kesalahan dalam kasus saya.
mengaburkan
Saya telah menghadapi kesalahan yang sama dan saya akan mengatakan itu adalah bug magento2 karena dengan FPC diaktifkan akan berfungsi tetapi sekali Anda menonaktifkannya tidak akan. Untuk memperbaikinya sementara Anda perlu me-refresh minicart secara terprogram pada setiap halaman.
Salma Saiyad

Jawaban:

0

Ini tampaknya merupakan masalah yang luar biasa, meskipun mungkin diselesaikan di versi M2 yang lebih baru. Lihat masalah Magento GitHub:

Sejauh yang bisa Anda coba ...

Jika ini terkait dengan cookie, Anda mungkin dapat mengesampingkan beberapa kemungkinan dengan mengunjungi situs Anda di browser penjelajahan / penyamaran pribadi. Pergi melalui alur kerja Anda (tidak login, tambahkan produk ke troli, pelanggan log in, lihat / checkout / gerobak dan dropdown minicart).

Selain itu, mungkin bermanfaat untuk meninjau dokumen dev M2 untuk praktik terbaik terkait konfigurasi cache dalam pengembangan versus konfigurasi dalam produksi . Dalam pengalaman saya, dalam pengembangan, tidak apa-apa jika semua cache diaktifkan dalam pengembangan, dan cukup siram jika diperlukan (baca dokumen untuk deskripsi masing-masing cache). Catatan, sebagai pengembang sebagian besar front-end, saya pribadi lebih suka untuk mengembangkan dengan FPC, output Blok, dan cache layout dinonaktifkan - ini memungkinkan perubahan frontend terlihat lebih mudah.

nshiff
sumber