Apakah ada cara untuk menyembunyikan kategori yang tidak memiliki produk aktif? Atau, bahkan lebih baik, hanya menampilkan kategori yang memiliki produk dan stok aktif .
Ingatlah bahwa metode ini memeriksa setiap kategori secara individual dengan menggunakan katalog / kategori model. Jadi, jika Anda memiliki banyak kategori, Anda mungkin ingin menulis ulang kode agar tidak mengalami masalah kinerja. Di toko yang lebih kecil yang kami jalankan, ini berfungsi dengan baik.
Apakah mungkin untuk memasukkan ini ke dalam ekstensi yang dapat dijatuhkan ke folder lokal? Khawatir tentang kode yang ditimpa dalam pembaruan Magento di masa depan.
MagentoMac
10
Tidak ada fitur bawaan untuk menyembunyikan kategori kosong (tetapi Anda dapat secara manual memilih Aktif = Tidak untuk setiap kategori di admin area-> katalog-> kelola kategori)
Ini terlihat bagus, tetapi karena alasan apa pun tidak berfungsi di toko kami ... ada ide bagaimana men-debug? Tidak menerima pesan kesalahan apa pun. Ikuti instruksi ke tee, tetapi tidak ada perubahan di frontend. Sudah menonaktifkan, kemudian mengaktifkan kembali kompiler, dan membersihkan cache, dll.
MagentoMac
4
Jika Anda hanya ingin menyembunyikannya di navigasi katalog Anda bisa menambahkan kondisi if di templat untuk memeriksa jumlah produk dalam kategori itu.
Anda dapat menjalankan sql berikut untuk menonaktifkan semua kategori tanpa produk.
UPDATE `catalog_category_entity_int` AS `status`
INNER JOIN `eav_attribute` AS `attr` ON `attr`.`attribute_code`='is_active'
AND `attr`.`entity_type_id`=3
AND `status`.`attribute_id`=`attr`.`attribute_id`
SET `status`.`value`= IF((SELECT COUNT(`index`.`product_id`)
FROM `catalog_category_product_index` AS `index`
WHERE `index`.`category_id`=`status`.`entity_id` GROUP BY `index`.`category_id`)>0,1,0)
WHERE `status`.`store_id`=0
apa yang saya lakukan untuk menyembunyikan kategori kosong adalah menulis ulang Mage_Catalog_Model_Resource_Category_Treeload()fungsi. Saya sudah bergabung dengan koleksi produk dengan koleksi kategori seperti di bawah ini.
Saya telah menambahkan product_count bidang tambahan yang berisi jumlah produk aktif aktual.
Saya menggunakan modul pihak ke-3 untuk menampilkan kategori pada menu paling atas dan saya telah menetapkan kondisi berdasarkan jumlah produk ketika menu diberikan.
Jawaban:
Cara termudah untuk melakukan ini adalah dengan hanya menulis ulang
Mage_Catalog_Block_Navigation
blok:=> Dalam metode yang
_renderCategoryMenuItemHtml()
Anda ingin mengganti loop=> dengan ini:
=> dan juga dalam metode
renderCategoriesMenuHtml()
ganti kode=> dengan ini:
=> Akhirnya tambahkan metode yang baru saja kami gunakan dalam kode kami:
Ingatlah bahwa metode ini memeriksa setiap kategori secara individual dengan menggunakan katalog / kategori model. Jadi, jika Anda memiliki banyak kategori, Anda mungkin ingin menulis ulang kode agar tidak mengalami masalah kinerja. Di toko yang lebih kecil yang kami jalankan, ini berfungsi dengan baik.
sumber
Tidak ada fitur bawaan untuk menyembunyikan kategori kosong (tetapi Anda dapat secara manual memilih Aktif = Tidak untuk setiap kategori di admin area-> katalog-> kelola kategori)
Berikut ini tautan pada posting bagus dari blog Josh Prattski , di mana ia menulis langkah demi langkah panduan tentang cara membuat ekstensi untuk tujuan ini.
sumber
Jika Anda hanya ingin menyembunyikannya di navigasi katalog Anda bisa menambahkan kondisi if di templat untuk memeriksa jumlah produk dalam kategori itu.
sumber
Mungkin ini akan membantu juga.
Pergi ke backend dari toko web Anda.
Label
Display Mode
dapat diatur kesumber
Untuk menyembunyikan kategori kosong dari menu Atas, lakukan hal berikut:
sumber
Apa yang berhasil bagi saya adalah membuat pohon kategori templat dan mengimplementasikan fungsi kondisi yang membuat pohon kategori:
sumber
Anda dapat menjalankan sql berikut untuk menonaktifkan semua kategori tanpa produk.
Lebih detail Anda dapat menemukan di sini http://quicktips.ru/all/hide-all-categories-without-products-and-show-categories-with-pr/
sumber
apa yang saya lakukan untuk menyembunyikan kategori kosong adalah menulis ulang
Mage_Catalog_Model_Resource_Category_Tree
load()
fungsi. Saya sudah bergabung dengan koleksi produk dengan koleksi kategori seperti di bawah ini.tambahkan kode
$arrNodes = $this->_conn->fetchAll($select);
ini sebelum baris ini.Dan bungkus kode ini dengan kondisi ini, kelas ini dipanggil dari model frontend dan backend juga
Saya telah menambahkan product_count bidang tambahan yang berisi jumlah produk aktif aktual.
Saya menggunakan modul pihak ke-3 untuk menampilkan kategori pada menu paling atas dan saya telah menetapkan kondisi berdasarkan jumlah produk ketika menu diberikan.
sumber