Dalam konfigurasi Multiwebsite / Multistore kami (tampilan) Magento 1.9.2.2, salah satu situs web, termasuk store dan storeview harus dihapus.
Sementara penghapusan itu sendiri berjalan dengan baik (saya sudah melakukan ini sebelumnya), saya telah berakhir dengan backend bahwa 404 jika Anda mengubah Lingkup Konfigurasi Saat Ini Anda ke salah satu dari dua Website.
Memilih Lingkup Konfigurasi baru akan menghasilkan permintaan untuk url berikut (jalur admin + kunci diubah):
/index.php/mymageadmin/system_config/edit/section/dev/website/<WEBSITE>/key/1221231/
di mana <WEBSITE>
sama dengan code
bidang dalam core_website
tabel.
Dengan masuknya permintaan mysql, saya melihat bahwa dua situs web yang dapat dimuat berhasil memiliki kueri ini terkait dengan pemilihan situs web / tampilan toko:
SELECT `main_table`.* FROM `core_config_data` AS `main_table` WHERE (`scope` = 'websites') AND (`scope_id` = '4') AND (`path` LIKE 'dev/%')
SELECT `core_website`.* FROM `core_website` WHERE (`core_website`.`code`='working_store_code')
Situs web lain yang memberikan awal 404 dengan kueri pertama yang sama - tetapi tentu saja scope_id yang berbeda, tetapi dalam kueri kedua Magento berpikir ia harus mencari cakupan storeview
alih-alih website
! Tampaknya mencoba dua kali.
SELECT `main_table`.* FROM `core_config_data` AS `main_table` WHERE (`scope` = 'websites') AND (`scope_id` = '3') AND (`path` LIKE 'dev/%')
SELECT `core_store`.* FROM `core_store` WHERE (`core_store`.`store_id`=3) ORDER BY `sort_order` ASC
SELECT `core_store`.* FROM `core_store` WHERE (`core_store`.`store_id`=3) ORDER BY `sort_order` ASC
Tabel core_website saya terlihat sebagai berikut:
website_id code sort_order default_group_id is_default
0 admin 0 0 0
1 working_one 1 1 1
3 failing_one 2 4 0
4 working_two 3 9 0
6 failing_two 4 16 0
7 failing_three 5 15 0
8 failing_four 6 17 0
9 failing_six 7 18 0
working_xxx = muat ini OK, failing_xxx = ini beri 404 / coba pilih store_id yang tidak ada.
Tabel core_store saya terlihat sebagai berikut: (kode + nama dihapus karena tidak relevan)
store_id website_id group_id sort_order is_active
0 0 0 0 1
1 1 1 0 1
4 3 4 1 1
5 3 4 2 1
10 4 9 0 1
19 7 15 0 1
20 4 9 1 1
21 4 9 2 1
22 4 9 4 0
23 6 16 1 1
24 6 16 2 1
26 4 9 4 1
28 7 15 0 1
29 1 1 2 1
30 8 17 0 1
31 9 18 0 1
32 9 18 0 1
33 8 17 2 1
34 8 17 3 1
35 8 17 4 1
36 4 9 10 1
Dan ini adalah core_store_group:
group_id website_id name root_cat_id default_store_id
1 1 working_one 50 1
4 3 failing_one 44 4
9 4 working_one 77 10
15 7 failing_two 70 19
16 6 failing_three 46 23
17 8 failing_four 50 30
18 9 failing_five 96 31
Saya telah membandingkan ketiga tabel ini dengan salinan cadangan DB saya sebelum saya menghapus situs web / storeview dan - kecuali untuk penghapusan situs web / storeview - semuanya tampak persis sama. ID yang sama, kode yang sama dll.
Sejauh yang saya tahu tiga tabel ini adalah satu-satunya yang diperiksa oleh Magento untuk kode toko / situs web dan ID.
Adapun pemecahan masalah saya telah melakukan hal berikut: Untuk memastikan tidak ada cache dengan konfigurasi lama di mana tersisa: dikosongkan var / cache, cache flushed, reindexed, reboot server dll, semuanya sia-sia.
Bahkan dengan semua php / magento masuk, mode pengembang dll, saya tidak mendapatkan petunjuk mengapa ini terjadi. Tidak ada pengecualian yang dicatat.
Jadi dua pertanyaannya adalah: Mengapa Magento mencoba memilih ruang lingkup tampilan toko yang tidak ada alih-alih ruang lingkup situs web dan bagaimana cara memperbaikinya?
Perbarui 1 / Penanganan Masalah
Setelah seharian mengatasi masalah, termasuk tetapi tidak terbatas pada alat perbaikan magento-db, membuat kembali core_store, core_store_group dan tabel core_website, dengan semua situs web asli dan tampilan toko akhirnya saya perhatikan hal berikut:
Untuk semua website_id
itu memuat baik ada store_id
dengan nomor yang sama. website_id
1
dan 4
memuat seperti yang diharapkan, dan memang ada (tidak terkait) store_id
1
dan 4
didefinisikan.
Untuk website_id
3
, 6
, 7
, 8
dan 9
tidak ada store_id
dengan jumlah yang sama.
Namun, begitu saya membuat entri palsu ke store_id
, misalnya 3
, memuat Lingkup Konfigurasi website_id
3
mulai bekerja kembali.
Jadi, sementara saya sekarang telah berhasil menyelesaikannya, saya akhirnya memiliki satu situs web (dinonaktifkan) tambahan dan 5 tampilan toko (dinonaktifkan) ....
Untuk memastikan ini bukan masalah sebelumnya, saya pergi ke salah satu salinan lama dari situs kami yang saya simpan di server dev saya (magento versi 1.9.1.0).
Di sini semuanya bekerja dengan sempurna, yaitu website_id
6
memuat tanpa perlu store_id
6
dalam core_store
tabel.