在我的主页 - magento中显示所有产品

时间:2012-08-06 14:47:52

标签: magento

我正在尝试从一开始就构建一个模板。我已准备好所有东西,现在我有一个主页,我想在网格中显示所有可用的产品。所以我从布局中渲染了list.phtml。 list.phtml:

<?php
$_productCollection=$this->getLoadedProductCollection();

$_helper = $this->helper('catalog/output');

?>
<?php if(!$_productCollection->count()): ?>
<p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
<?php else: ?>
<div class="category-products">

<?php // Grid Mode ?>

<?php $_collectionSize = $_productCollection->count() ?>
<?php $_columnCount = $this->getColumnCount(); ?>
<?php $i=0; foreach ($_productCollection as $_product): ?>
    <?php if ($i++%$_columnCount==0): ?>
        <ul class="products-grid">
    <?php endif ?>

            <li>
                productsample
            </li>


    <?php if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
        </ul>
    <?php endif ?>

<?php endforeach ?>
</div>
<?php endif; ?>

这显示了产品数量的时间,单词productsample,所以我认为我正在加载所有产品,但我的问题是我不知道如何显示它们(照片,链接,addtocart,价格,名称.. 。) 感谢所有

2 个答案:

答案 0 :(得分:0)

当我使用getdata时,我得到了这个:

array(11){[“entity_id”] =&gt; string(1)“2”[“entity_type_id”] =&gt; string(1)“4”[“attribute_set_id”] =&gt; string(2)“10”[“type_id”] =&gt; string(6)“simple”[“sku”] =&gt; string(10)“1343918767”[“has_options”] =&gt; string(1)“0”[“required_options”] =&gt; string(1)“0”[“created_at”] =&gt; string(19)“2012-08-02 14:46:29”[“updated_at”] =&gt; string(19)“2012-08-02 17:09:43”[“is_salable”] =&gt; string(1)“1”[“stock_item”] =&gt; object(Varien_Object)#336(5){[“_ data”:protected] =&gt; array(1){[“is_in_stock”] =&gt; string(1)“1”} [“_ hasDataChanges”:protected] =&gt; bool(false)[“_ origData”:protected] =&gt; NULL [“_ idFieldName”:protected] =&gt; NULL [“_isDeleted”:protected] =&gt; bool(false)}}

我需要名字,价格......

我已经解决了这个问题:$ _productCollection = $ this-&gt; getLoadedProductCollection(); 作为交换:$ _productCollection = Mage :: getModel('catalog / product') - &gt; getCollection();

因为如果我使用第一个,它会告诉我实际类别中没有产品。

然后我在foreach里面的默认list.phtm中的foreach里面的代码,但它没有向我显示产品。产品img中存在某种错误,因为它在第一个产品中停止,在其图像中。这是代码:

代码:

<?php
//     $_productCollection=$this->getLoadedProductCollection();
$_productCollection=Mage::getModel('catalog/product')->getCollection();

$_helper = $this->helper('catalog/output');

?>
<?php if(!$_productCollection->count()): ?>
<p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
<?php else: ?>
<div class="category-products">

<?php // Grid Mode ?>

<?php $_collectionSize = $_productCollection->count() ?>
<?php $_columnCount = $this->getColumnCount(); ?>
<?php $i=0; foreach ($_productCollection as $_product): ?>
    <?php if ($i++%$_columnCount==0): ?>
        <ul class="products-grid">
    <?php endif ?>

        <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">
            <a href="<?php echo $_product->getProductUrl() ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(135); ?>" width="135" height="135" /></a>
            <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>"><?php echo $_helper->productAttribute($_product, $_product->getName(), 'name') ?></a></h2>
            <?php if($_product->getRatingSummary()): ?>
            <?php echo $this->getReviewsSummaryHtml($_product, 'short') ?>
            <?php endif; ?>
            <?php echo $this->getPriceHtml($_product, true) ?>
            <div class="actions">
                <?php if($_product->isSaleable()): ?>
                    <button type="button" title="<?php echo $this->__('Add to Cart') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button>
                <?php else: ?>
                    <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
                <?php endif; ?>
                <ul class="add-to-links">
                    <?php if ($this->helper('wishlist')->isAllow()) : ?>
                        <li><a href="<?php echo $this->helper('wishlist')->getAddUrl($_product) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a></li>
                    <?php endif; ?>
                    <?php if($_compareUrl=$this->getAddToCompareUrl($_product)): ?>
                        <li><span class="separator">|</span> <a href="<?php echo $_compareUrl ?>" class="link-compare"><?php echo $this->__('Add to Compare') ?></a></li>
                    <?php endif; ?>
                </ul>
            </div>
        </li>


    <?php if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
        </ul>
    <?php endif ?>

<?php endforeach ?>
</div>
<?php endif; ?>

首先&lt; a&gt;里面&lt; li&gt;,它的img不工作

答案 1 :(得分:0)

如果您使用cms主页,则只需将此代码{{block type="catalog/product_list" category_id="your cat id" template="catalog/product/list.phtml"}}分配给此类别。 或者您可以直接使用list.phtml文件代码列出刚放在代码下面的所有产品。

  $_productCollection = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*')->addAttributeToFilter('visibility', 4)->addAttributeToFilter('status', 1)->load();

只需输入此代码而不是此$_productCollection=$this->getLoadedProductCollection();