嗨 我有一個類別XXX下的類別我有一個子類別yyy。 該產品被分配到yyy類別。此外我已交叉銷售5件產品。 當我點擊yyy時,我需要獲得所有交叉銷售的產品名稱,這些產品名稱在左側分配爲交叉銷售。magento交叉銷售子類別
分類
XXXXXXXX
YYYYYYY
zzzzzzz
交叉銷售產品
Crosssell1 Crosssell2 Crosssell3
我怎麼能走呢?
嗨 我有一個類別XXX下的類別我有一個子類別yyy。 該產品被分配到yyy類別。此外我已交叉銷售5件產品。 當我點擊yyy時,我需要獲得所有交叉銷售的產品名稱,這些產品名稱在左側分配爲交叉銷售。magento交叉銷售子類別
分類
XXXXXXXX
YYYYYYY
zzzzzzz
交叉銷售產品
Crosssell1 Crosssell2 Crosssell3
我怎麼能走呢?
您將需要創建一個將出現在左列中的塊。我們來創建一個函數來獲取產品ID的初始列表。如果你的塊擴展Mage_Catalog_Block_Product_List
那麼它可能會喜歡這樣的:
public function getCurrentProductIds()
{
return $this->getLoadedProductCollection()->getAllIds();
}
但是,這僅適用於當前頁面上顯示的產品工作。如果你需要顯示在該類別後頁面中的所有相關產品,那麼該功能可能是這樣的:
public function getCurrentProductIds()
{
return Mage::registry('current_category')->getProductCollection()->getAllIds();
}
兩個函數會返回一個整數列表。
接下來是必不可少的部分。獲取相關產品。
public function getCrossSellsCollection()
{
$productIds = $this->getCurrentProductIds();
$link = Mage::getSingleton('catalog/product_link')
->useCrossSellLinks(); // very important, this sets the linkTypeId to 5
$collection = $link->getProductCollection()
->addProductFilter($productIds) // find products associated with these
->addExcludeProductFilter($productIds) // don't let these sames ones be loaded twice, that's a guaranteed error
->addAttributeToSelect(array('name', 'url_key, 'url_path')); // list as many attributes here as you need
return $collection;
}
這返回的Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection
一個對象,你可以從一個模板的方式爲產品列表相同的迭代。這一點是開放的調整和主題,你認爲合適。
<?php $_crossSellsCollection = $this->getCrossSellsCollection(); ?>
<?php if ($_crossSellsCollection->count()): ?>
<ul>
<?php foreach ($_crossSellsCollection as $_product): ?>
<li>
<a href="<?php echo $_product->getProductUrl() ?>"><?php echo $_product->getName() ?></a>
</li>
<?php endforeach ?>
</ul>
<?php endif ?>
(希望你最近學會了如何接受的答案,但你的0%的分數表明othewise)
得到它的幫助表示感謝 – 2010-11-05 03:51:28
謝謝,clockworkgeek。這是一個可惜的,我不能downvote的作者(125聲譽閾值):) – Wiseman 2011-03-23 09:16:07