我想在结帐购物车页面中列出推荐商品列表,我试图使用layaout / catalog.xml中的相关产品块,但它适用于产品视图页面中的单个产品,并且在结账购物车页面中可以有多个产品,所以,如果能做到这一点,我怎么能做到这一点?
答案 0 :(得分:3)
要实现您的需求,只需添加“交叉销售”产品关系即可实现此目标。
阅读:http://www.magentocommerce.com/knowledge-base/entry/how-do-i-set-up-product-relations/
答案 1 :(得分:0)
如果您查看Mage_Catalog_Block_Product_List_Related::_prepareData
方法,您会看到它使用以下代码加上一些内务管理:
$this->_itemCollection = $product->getRelatedProductCollection()
...
您可以创建自己的Block,从购物车中抓取产品,并循环使用相同的代码。类似的东西:
$cartHelper = Mage::helper('checkout/cart');
$cart = $cartHelper->getCart();
$cartItems = $cart->getQuote()->getAllItems();
$relatedCollection = new Varien_Data_Collection();
foreach ($cartItems as $cartItem) {
$tempColl = $cartItem->getRelatedProductCollection();
... insert housekeeping code from Related block
... add $tempColl to $relatedCollection
}
您可能需要对集合进行重复数据删除(toArray()
然后array_unique
),因为购物车中的商品可能具有相同的相关产品,但这至少会让您进入游戏。
HTH, JD