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_version
diatur module-page-cache/view/frontend/web/js/page-cache.js
dan digunakan dalam customer-data.js
. Lihat customerData::reload
fungsi.
Dengan cache halaman dinonaktifkan, data tidak dimuat dari server seperti fungsinya dataProvider::getFromServer()
.
Ketika cache halaman dinonaktifkan, cookie private_content_version
tidak ada di sana (page-cache.js tidak dijalankan tentunya). Tetapi cookie section_data_ids
hanya memiliki '*' dan 'pesan' => kosong (salah atau nol).
Ketika halaman cache diaktifkan ada private_content_version
dan section_data_ids
memiliki 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
sumber
GET http://example.com/customer/section/load/?sections=&update_section_id=false&_=1462374643065 500 (Internal Server Error)
Jawaban:
Ini tampaknya merupakan masalah yang luar biasa, meskipun mungkin diselesaikan di versi M2 yang lebih baru. Lihat masalah Magento GitHub:
"Tidak ada item" di minicart di 2.1 (buka saat tulisan ini dibuat)
Minicart kosong jika FPC dinonaktifkan di Magento 2.1.1 (buka saat tulisan ini dibuat)
Minicart tidak menunjukkan produk bahkan ketika saya memiliki produk dalam keranjang (ditutup)
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.
sumber