Herhangi bir ürün yok magento gizle kategorileri

2 Cevap php

Ben Ana Site aynı kök kategorisini kullanan birçok site var. Eklenen her ürün, (wow.) eklenmiştir site ve aynı zamanda Ana Siteye eklenir. Ancak, bu sitede ürünler var ise, yalnızca görünür bir site başına temelinde kategoriler istiyorum.

Ben varsa:

Category1
Category2
Category3

Site2 ve site3 Category2 ve Category3 ürün var oysa Ama Site1 sadece category1 ve Category2 ürünler vardır; Ben sadece Category1 / 2 Site1 görünmesini istiyorsanız ve yalnızca Kategori2 / 3 sadece Site2 ve site3 görünür.

Ancak, Site1/2/3 tüm ürünler de Ana Siteye eklenen çünkü; Ana Sayfa Category1/2/3 listelemek.

Ürün yok Ana Siteye doğrudan eklenir. Bu sadece diğer siteler için bir depo görevi görür.

Şimdi, (eminim gibi) bu etkinleştirmek için gerçekten çok kolay bir yolu yok varsa, sadece şablon görüntülenir ediliyor sitede ürün var kategorilerini listeler benim kendi tema yazı kadar basit olurdu?

Ben Magento kullandığı teknolojileri bir acemi değilim; böylece özel kod yazma sorun yok. Benim kod tabanı yükseltme Magento sonraki sürümleri ile gelecekte daha kolay olacağını bu yüzden, ancak, bu kadar düzenlemek istemez.

Thanks,
-nelson

2 Cevap

Peki, ne yapabilirim (model) aracılığıyla bir koleksiyon ile kendi yardımcısı oluşturmak ve sonra ürün sayısı dayalı koleksiyon filtre vardır.

Sadece kaba taslak, ama başka bir magento ilgili bir soru bazı kod gönderdiniz: Magento products by categories. Bunu ürünleri saymak eklediğinde, bu yapıldığı zaman, tekrar filtre istiyorum nasıl ve görebilirsiniz.

Bu performans açısından son derece "büyük" olduğunu sanmıyorum, bu yüzden bunun yerine kendi modeli sınıfları kullanarak, sen could bunu uzanan ve varsayılan filtreler ekleyerek veya doğrudan veritabanına için kısayol, kendi yazabilirsiniz.

Sürece Eğer cilt / şablon kalmak gibi, güncelleme ile hiçbir büyük sorunları vardır.

Bu size yardımcı olabilir kategorileri gizlemek için basit bir çözümdür.

Top.phtml dosyasının orijinal içeriği aşağıdaki gibi görünmelidir.

<?php $_menu = $this->renderCategoriesMenuHtml(0,'level-top') ?>
<?php if($_menu): ?>
<div>
    <ul id="nav">
        <?php echo $_menu ?>
    </ul>
</div>
<?php endif ?>

Aşağıda bu kodla yukarıdaki kodu değiştirin.

<?php $_menu = ''?>
<?php $excludeCat = array(); ?>
<?php foreach ($this->getStoreCategories() as $_category): ?>
    <?php if($_category->getProductCount() <=0) {
          $excludeCat[] = $_category->getId(); 
    }
    ?>
    <?php $_menu .= $this->drawItem($_category) ?>
<?php endforeach ?>
<?php if ($_menu): ?>
<div>
    <ul id="nav">
    <?php foreach ($this->getStoreCategories() as $_category): ?>
    <?php if (!in_array($_category->getId(), $excludeCat)) : ?> <?php echo $this->drawItem($_category) ?>
    <?php endif; ?>
    <?php endforeach ?>
    </ul>
</div>
<?php endif; ?>