0

我被困在这里。客户希望在产品详细信息页面(在产品加售部分)上随机显示产品。出于多种原因,我选择不使用内置的追加销售功能,但无需讨论。

我目前正在展示一个随机产品,如下所示:

<?php

    $category = Mage::getModel('catalog/category')->load(9);
    $products = Mage::getModel('catalog/product')
        ->getCollection()
        ->addCategoryFilter($category)
        ->load();

    foreach ($products as $product) {
        $result[$product->getId()] = $product;
    }

    $_product = Mage::getModel('catalog/product')->load(array_rand($result, 1));

?>

<a href="<?php echo $_product->getProductUrl(); ?>" title="<?php echo $_product->getName(); ?>">

    <img src="<?php echo $this->helper('catalog/image')->init($_product, 'thumbnail')->resize(190); ?>" />

    <?php echo $_product->getName(); ?><br />
    <?php echo Mage::helper('core')->currency($_product->getPrice()); ?>

</a>

问题是通过调用 Mage::getModel('catalog/product'),我相信当前产品正在被覆盖。例如,当我单击“添加到购物车”按钮时,我的自定义特色加售产品将被添加到购物车,而不是产品详细信息页面中的实际产品。

4

1 回答 1

2

原因是因为您覆盖$_product了默认模板使用的变量。使用你自己的变量名,你会没事的

$_myProduct = Mage::getModel('catalog/product')->load(array_rand($result, 1));
于 2013-02-09T23:13:05.103 回答