Я добавил атрибут yes/no для своих продуктов, который позволил бы мне отображать на первой странице рекомендуемые продукты (атрибут yes). Теперь я хочу отобразить 1 случайный продукт на моей домашней странице. Это мой код прямо сейчас:Просмотр случайного товара на домашней странице Magento
$show_num_items = 2;
$show_index_array = array();
$index_iterator = 1;
$_productCollection = Mage::getResourceModel('reports/product_collection')
->addAttributeToSelect('*')
->addAttributeToFilter('type_id', 'configurable');
if($_productCollection->getSize()):
$show_index_array = range(0,($_productCollection->getSize()-1));
shuffle($show_index_array);
$show_index_array = array_slice($show_index_array, 0, $show_num_items);
foreach($_productCollection as $_product):
$_recommended = $_product->getData('recommend_product');
if($_recommended == 1):
if(in_array($index_iterator, $show_index_array)): ?>
<div><img src="<?php echo $this->helper('catalog/image')->init($_product, 'image'); ?>" />
</div>
<dl>
<dt><a href="<?php echo $_product->getProductUrl(); ?>"><?php echo $_product->getName(); ?></a></dt>
<dd><?php echo $_product->getResource()->getAttribute('short_description')->getFrontend()->getValue($_product); ?></dd>
<dd><a href="<?php echo $_product->getProductUrl(); ?>">Read More</a></dd>
</dl>
<?php endif;
$index_iterator++;
endif;
endforeach;
endif;
Это не то, что чистое я знаю, она работает, но есть случаи, в которых он не возвращает продукты и случаи, в которых она возвращает 2. Как я могу сделать это возвращение 1 продукт всегда?
На самом деле, это было то, что я изначально, но нет продуктов показали, таким образом я попытался изменить значение – user1597438
не заметил, что вы испытывали, если продукты были рекомендованы после загрузки коллекции. Таким образом, случайно выбранный продукт может не рекомендоваться, и поэтому ничего не может отображаться. Я отредактировал свой ответ соответственно – blmage
awesome! большое спасибо. – user1597438