/ / Magento - список товарів певної категорії [дублікат] - magento, grid, block

Magento - список продуктів у конкретній категорії [дублікат] - magento, grid, block

Можливі дублікати:
Як отримати товари з певної категорії в електронній комерції 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

У вашому коді є кілька помилок, дозвольте мені виділити їх:

  1. $category=$category->getProductCollection(); - це дуже погана практика. Ви "призначаєте Колекцію товару змінній, яка раніше була категорією. У такому коді легко загубитися. Будь ласка, не забудьте використовувати змінні правила іменування для вашої змінної. Це як би повинно бути $productCollection=$category->getProductCollection();

  2. Замість того, щоб зациклювати колекцію, яку тивже маєте, ви отримуєте масив ідентифікаторів і переглядаєте їх, завантажуючи об'єкти під час кожного циклу. Це призведе до витоків пам'яті та дуже великої кількості часу, який виконуватиме ваш код. foreach вислів повинен бути таким: foreach ($productCollection as $product).

  3. Ви насправді не задавали тут питання. Ви сказали, що збираєтеся створити сітку, і розмістили свій код, але де проблема?

  4. Якщо ви хочете створити Product Grid, перегляньте, як це робиться в модулі основного каталогу Magento: блок Mage_Catalog_Block_Product_List та шаблон каталогу / продукту / списку.phtml