Можливі дублікати:
Як отримати товари з певної категорії в електронній комерції magento
Я хочу побудувати шаблон (.phtml), що відображає сітку продуктів (назва, ціна опису, невелике зображення із посиланням) для Magento 1.7, подібно до блоку "Новий продукт" за замовчуванням. Ось, що я маю на сьогодні ...
<?php
$category=Mage::getModel("catalog/category")->load(4);
$category=$category->getProductCollection();
foreach($category->getAllIds() as $id)
{
$product=Mage::getModel("catalog/product")->load($id);
echo $product->getName()."<br/>";
echo $product->getUrl()."<br/>";
echo $product->getImageUrl()."<br/>";
echo $product->getImageDescription()."<br/><br/>";
}
Відповіді:
0 для відповіді № 1У вашому коді є кілька помилок, дозвольте мені виділити їх:
$category=$category->getProductCollection();
- це дуже погана практика. Ви "призначаєте Колекцію товару змінній, яка раніше була категорією. У такому коді легко загубитися. Будь ласка, не забудьте використовувати змінні правила іменування для вашої змінної. Це як би повинно бути$productCollection=$category->getProductCollection();
Замість того, щоб зациклювати колекцію, яку тивже маєте, ви отримуєте масив ідентифікаторів і переглядаєте їх, завантажуючи об'єкти під час кожного циклу. Це призведе до витоків пам'яті та дуже великої кількості часу, який виконуватиме ваш код.
foreach
вислів повинен бути таким:foreach ($productCollection as $product)
.Ви насправді не задавали тут питання. Ви сказали, що збираєтеся створити сітку, і розмістили свій код, але де проблема?
Якщо ви хочете створити Product Grid, перегляньте, як це робиться в модулі основного каталогу Magento: блок
Mage_Catalog_Block_Product_List
та шаблон каталогу / продукту / списку.phtml