私はここで立ち往生しています。クライアントは、製品の詳細ページ (製品のアップセル セクション) にランダムな製品を表示したいと考えていました。複数の理由から、組み込みのアップセル機能を使用しないことにしましたが、それについて説明する必要はありません。
現在、次のようなランダムな製品を表示しています。
<?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') を呼び出すことによって、現在の製品が上書きされていると思われることです。たとえば、「カートに追加」ボタンをクリックすると、製品詳細ページの実際の製品ではなく、カスタム特集アップセル製品がカートに追加されます。