Товары по-прежнему отображаются, если установлено значение «Не отображается по отдельности»

Использование Magmi для загрузки CSV, чтобы сделать простые продукты невидимыми по отдельности.

После очистки кэша Magento и переиндексации продукты по-прежнему отображаются на странице категорий, однако при нажатии на простые продукты вы получаете страницу 404.

Можно ли как-то остановить показ этих продуктов на странице категории.

Пример того, как это происходит http://boxchilli.co/s2as/kayaks-1.html

ВОДЯНОЙ ШЛЕМ PROTEC ACE - БЕЛЫЙ вверху не предназначен для показа, но ВОДЯНОЙ ШЛЕМ PROTEC ACE - БЕЛЫЙ2

Код для 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>
<!--<script type="text/javascript">
jQuery(window).load(function() {
    jQuery('.page').css('background-image','none');
});
</script>-->
<?php else: ?>
<div class="category-products">
<?php $position = 'top'; ?>
    <?php echo $this->getToolbarHtml($position) ?>
    <?php // List mode ?>
    <?php if($this->getMode()!='grid'): ?>
    <?php $_iterator = 0; ?>
    <ol class="products-list" id="products-list">
    <?php foreach ($_productCollection as $_product): ?>
        <li class="item<?php if( ++$_iterator == sizeof($_productCollection) ): ?> last<?php endif; ?>">
            <?php // Product Image ?>
            <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(130); ?>" width="130" height="130" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>
            <?php // Product description ?>
            <div class="product-shop">
                <div class="f-fix">
                    <?php $_productNameStripped = $this->stripTags($_product->getName(), null, true); ?>
                    <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped; ?>"><?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?></a></h2>
                    <?php if($_product->getRatingSummary()): ?>
                    <?php echo $this->getReviewsSummaryHtml($_product) ?>
                    <?php endif; ?>
                    <?php echo $this->getPriceHtml($_product, true) ?>
                    <?php if($_product->isSaleable()): ?>
                        <p><button type="button" title="<?php echo $this->__('BUY NOW') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('BUY NOW') ?></span></span></button></p>
                    <?php else: ?>
                        <p class="availability out-of-stock"><span><?php echo $this->__('Out of stock') ?></span></p>
                    <?php endif; ?>
                    <div class="desc std">
                        <?php $shortened = truncateText($_product['description'],250,'.'); ?>
                        <?php 
                        $product_data = $_product->getData();
                        if($_product->getName() == 'Mystic Warrior III (3) Kitesurf Waist Harness 2012 - Black'){print_r($product_data);} 
                        ?>
                        <?php print_r($_product['description']); ?>
                        <a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped ?>" class="link-learn"><?php echo $this->__('Learn More') ?></a>
                    </div>
                    <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; ?>
                    </ul>
                </div>
            </div>
        </li>
    <?php endforeach; ?>
    </ol>
    <script type="text/javascript">decorateList('products-list', 'none-recursive')</script>

    <?php else: ?>

    <?php // Grid Mode ?>

    <?php $_collectionSize = $_productCollection->count() ?>
    <?php $_columnCount = $this->getColumnCount(); ?>
    <?php $_columnCount = 4; ?>
    <?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() ?>" 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(158); ?>" alt="<?php echo $this->stripTags($this->getImageLabel($_product, 'small_image'), null, true) ?>" /></a>
                <?php $shortened = truncateText($_product->getName(),250,'.'); ?>
                <h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $this->stripTags($shortened, 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->__('BUY NOW') ?>" class="button btn-cart" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('BUY NOW') ?></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; ?>
                    </ul>
                </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; ?>
    <?php $position = 'bottom'; ?>
    <div class="toolbar-bottom">
        <?php  echo $this->getToolbarBlock()->setTemplate('catalog/product/list/toolbar_bottom.phtml')->toHtml(); ?> 
    </div>
</div>
<?php endif; ?>

person lee murphy    schedule 20.08.2013    source источник
comment
Убедитесь, что в видимости этих продуктов действительно указано «Не видно по отдельности». Кроме того, как вы получаете продукты для этой страницы? Опубликуйте шаблон .phtml, который вы используете для отображения списка продуктов, если он не используется по умолчанию base/default/template/catalog/product/list.phtml. Или хотя бы просто то, как вы тянете коллекцию продуктов на этой странице.   -  person Jason    schedule 20.08.2013
comment
@Jason Добавил код, запрошенный в вопросе, я также дважды проверил продукты в magento, и для них установлено значение «Не видно по отдельности».   -  person lee murphy    schedule 21.08.2013


Ответы (2)


Решил проблему.

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

person lee murphy    schedule 21.08.2013
comment
Рад, что вы поняли это, обычно, если процесс переиндексации успешен, и они все еще появляются, это связано с тем, как называется коллекция, но теперь я вижу, что вы используете стандартный метод getLoadedProductCollection(). Иногда товары вызываются с помощью прямого Mage::getModel( 'catalog/product' )->getCollection() без добавления видимости в качестве фильтра, поэтому изначально я просил показать код шаблона ;D - person Jason; 21.08.2013

Убедитесь, что продукты также не относятся к категории. У меня была такая же проблема с унаследованным сайтом.

person Hemogoblin    schedule 20.07.2018