在“产品详细信息”页面上调用产品模型覆盖默认产品

时间:2013-02-09 22:16:23

标签: magento

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

我目前正在展示一个随机产品:

<?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'),我相信当前的产品被覆盖了。例如,当我点击“添加到购物车”按钮时,我的自定义特色加售产品将被添加到购物车而不是产品详细信息页面中的实际产品。

1 个答案:

答案 0 :(得分:2)

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

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