【问题标题】:Magento displays incorrect products in category viewMagento 在类别视图中显示不正确的产品
【发布时间】:2011-12-22 22:16:20
【问题描述】:

当我第一次在 list.phtml 中加载产品集合时(或者当我完全关闭缓存时),返回的产品是驻留在最后创建的类别中的产品(即具有最高 id 的类别)。打开缓存时,页面刷新时会显示正确的产品。删除缓存后,会出现同样的情况(为了显示正确的产品,我需要在显示产品列表时刷新一次页面)。

还有一件奇怪的事;如果我打电话给

$_product->getCategory()->getName()

返回了正确的类别名称,但是当

$_product->getName()

被调用,错误的产品名称返回......我在这里完全不知所措。我在其他地方读过一篇类似的帖子,其中指出当缓存打开时,这个问题就会消失,但只有在第一次页面刷新之后才会出现,这是非常不可取的。

<?php $_coreHelper = $this->helper('core'); ?>

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

    <?php echo Mage::getModel('catalog/layer')->getCurrentCategory()->getName(); ?>
    <?php echo Mage::getModel('catalog/layer')->getCurrentCategory()->getId(); ?> 


    <?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 $_collectionSize = $_productCollection->count() ?>
        <?php $_columnCount = 4; ?>
        <?php $i=0; foreach ($_productCollection as $_product): ?>

         <?php echo var_dump($_product->getCategory()->getName());  ?>

        <?php if ($i++%$_columnCount==0): ?>
            <ul class="products-grid" style="padding-left:0px;">
        <?php endif ?>

        <li style="height:230px;" class="hreview-aggregate hproduct item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif($i%$_columnCount==0): ?> last<?php endif; ?>">

        <h2 class="item fn product-name">
            <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_product->getName() ?>"><?php echo substr($this->htmlEscape($_product->getName()), 0, 22).'...' ?></a>
        </h2>

        <div>
            <div>
                <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->getImageLabel($_product, 'small_image') ?>" class="url product-image"><img class="photo fn" src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(100); ?>" width="100" height="100" alt="<?php echo $this->htmlEscape($this->getImageLabel($_product, 'small_image')) ?>" /></a>    
            </div>
            <div style="clear:both"></div>
        </div>

        <div>

            <div>
            <div>
                <div>
                    <div><span style="font-size:13px;font-weight:bold;"><?php echo $_coreHelper->currency($newprice,true,false) ?> <?php echo $this->helper('tax')->__('Ex. BTW') ?></span></div><br />
                    <div><?php echo  $_coreHelper->currency($newtaxprice,true,false) ?> <?php echo $this->helper('tax')->__('Inc. BTW') ?></div>
              </div>
            </div>
            <div style="clear:both;"></div>

            <br />

            <form action="<?=$this->getAddToCartUrl($_product);?>" method="post" id="product_addtocart_form_<?=$_product->getId();?>" <?if($_product->getOptions()){?> enctype="multipart/form-data"<?}?>>
               <?if(!$_product->isGrouped()){?>
                  <input type="text" name="qty" id="qty" maxlength="12" value="<?echo ($this->getMinimalQty($_product)?$this->getMinimalQty($_product):1);?>" style="width:30px;" /> x
               <?}?>
                <button type="button" class="button-order" onclick="this.form.submit()"><span><span><?=$this->__('Bestellen');?></span></span></button>
                <br /><br />
                <span><a href="" style="color:#888;">Zet in verlanglijst</a></span>
            </form> 
            </div>

        </div>

        <div style="clear:both"></div>
                    </li>
                <?php if ($i%$_columnCount==0 || $i==$_collectionSize): ?>
                </ul>
                <?php endif ?>
                <?php endforeach ?>
                <script type="text/javascript">decorateGeneric($$('ul.products-grid'), ['odd','even','first','last'])</script>
            <?php endif; ?>

            <div class="toolbar-bottom">
                <?php echo $this->getToolbarHtml() ?>
            </div>
        </div>

【问题讨论】:

  • 是使用您的自定义块还是使用标准块呈现类别页面?如果使用自定义检查或发布 getLoadedProductCollection

标签: magento product


【解决方案1】:
  1. 在重新索引页面中重新索引您的所有产品。
  2. 清除缓存。
  3. 重新加载您的产品页面。

【讨论】:

  • 这是一个与我们为了从外部 ERP 解决方案获取价格而进行的一些修改有关的问题。问题已解决。感谢您的支持!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-03
相关资源
最近更新 更多