Magento - список бестселлеров на полную страницу загружает только 3 продукта - PullRequest
2 голосов
/ 02 декабря 2011

Попытка загрузки бестселлеров, но этот скрипт загружает мне только 3 продукта, независимо от того, что я делаю, кто-нибудь может дать мне подсказку, чтобы я мог отобразить по крайней мере 16 продуктов?

Проблема здесь в том, что с функцией $_productCollection = $this->getProductCollection();, когда я считаю, она получает только 3 продукта, как я могу изменить ее, чтобы я мог получать больше продуктов с помощью этой функции?

<?php 
// You can pass a $totalToFetch parametar to the fetchBestsellers()
// $_productCollection = $this->fetchBestsellers(5);
$_productCollection = $this->getProductCollection();
?>






<?php if(!$_productCollection->count()): ?>

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


    <div class="title-list-product"><h1><?php echo $this->__('MAIS VENDIDOS')?></h1></div>
    <?php // Grid Mode ?>
    <div class="shadow">
    <div class="product-list-detail">
                    <?php
    $currentUrl = $this->helper('core/url')->getCurrentUrl();
    $baseurl = Mage::app()->getStore()->getBaseUrl();
     if ($currentUrl == $baseurl){$break=3;} else {$break=16;}
     ?>
     <?php $_columnCount = $this->getColumnCount(); ?>
    <?php $i=0; foreach ($_productCollection as $_product): ?>
            <?php if ($i >=$break) break; ?>
            <?php $_product = $model = Mage::getModel('catalog/product')->load($_product->getId());?>
        <?php if ($i++%$_columnCount==0): ?>
        <ul class="products-grid" style="height:auto;">
        <?php endif ?>
            <li class="item<?php if(($i-1)%$_columnCount==0): ?> first<?php elseif(($i%$_columnCount==0) ||($i==$_collectionSize)): ?> last<?php endif; ?>">
                <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_product, 'small_image')->resize(155); ?>" width="135" height="135" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>
                <div class="name-sku-price">
                    <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($_product->getName(), null, true) ?>)"><?php echo $this->helper('catalog/output')->productAttribute($_product, $_product->getName() , 'name') ?></a></h2>
                    <?php $ids = $_product->getCategoryIds(); $cat = Mage::getModel('catalog/category')->load($ids[0]); ?>
                    <span class="sku"><a href="<?php echo $cat->getUrl();?>"><?php echo $cat->getName(); ?></a></span>
                    <?php echo $this->getPriceHtml($_product, true) ?>

                    <?php echo $this->getReviewsSummaryHtml($_product,'short') ?>

                </div>
                <!--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>
        </div>
<?php endif; ?>

Ответы [ 3 ]

5 голосов
/ 06 декабря 2011

заменил $_productCollection = $this->getProductCollection(); функцию

для этого:

$visibility = array(
                      Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH,
                      Mage_Catalog_Model_Product_Visibility::VISIBILITY_IN_CATALOG
                  );

$_productCollection = Mage::getResourceModel('reports/product_collection')
                              ->addAttributeToSelect('*')
                              ->addOrderedQty()
                              ->addAttributeToFilter('visibility', $visibility)
                              ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED))
                              ->setOrder('ordered_qty', 'desc');

Теперь я получаю все свои бестселлеры. ТКС в любом случае, ребята

0 голосов
/ 02 декабря 2011

Оформить заказ XML, где вы определяете этот блок. Я предполагаю, что есть некоторый предел, установленный или не установленный параметр, и по умолчанию равен 3. ИЛИ вы должны непосредственно проверить блок, который возвращает вам коллекцию продуктов.

В 1.6 я не нашел стандартного блока бестселлеров, так что это должен быть какой-то пользовательский модуль или что-то в этом роде?

0 голосов
/ 02 декабря 2011

Вы пытались повторно проиндексировать данные своего продукта, чтобы не отставать от изменений продукта?Magento выполняет много операций кэширования и индексации для повышения производительности.

Попробуйте зайти в область администрирования, перейдите в раздел Система-> Управление индексами и проверьте, не имеет ли красный статус «Требуется переиндексация».Вам придется переиндексировать данные, щелкнув ссылки рядом с ними, в частности данные «Категория Продукты».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...