2011-12-22 91 views
0

當我第一次在list.phtml中加載productcollection時(或者完全打開緩存時),返回的產品是駐留在最後創建的類別中的產品(即具有最高ID的類別)。當緩存打開時,在頁面上刷新顯示正確的產品。緩存被刪除後,也會出現相同的情況(對於正確的產品來說,當顯示產品列表時,我需要刷新頁面一次)。Magento在類別視圖中顯示不正確的產品

一件奇怪的事情;如果我叫

$_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> 
+0

是使用您的自定義模塊還是使用標準模塊渲染的類別頁面?如果使用自定義檢查或發佈getLoadedProductCollection –

回答

1
  1. 重新索引所有的產品在重新索引頁。
  2. 清除緩存。
  3. 重新載入您的產品頁面。
+0

這是一個與我們爲了從外部ERP解決方案獲取價格而進行的修改有關的問題。問題已解決。感謝您的支持 ! –

相關問題