2016-07-08 6 views
1

Я не слишком опытен в PHP, но моя цель состоит в том, чтобы связанные образцы продуктов не отображались на странице, если их нет в наличии. (Выделено на снимке экрана)Magento Product pag - отображение связанных продуктов, отсутствующих на складе

Related product swatches are highlighted

Вот PHP код:

<ol class="mini-products-list" id="block-related"> 
    <?php foreach($this->getItems() as $_item): ?> 
     <li class="item"> 
      <?php if(!$_item->isComposite() && $_item->isSaleable()): ?> 
       <?php if (!$_item->getRequiredOptions()): ?> 
        <input type="checkbox" class="checkbox related-checkbox" id="related-checkbox<?php echo $_item->getId() ?>" name="related_products[]" value="<?php echo $_item->getId() ?>" /> 
       <?php endif; ?> 
      <?php endif; ?> 
      <div class="product"> 
       <a href="<?php echo $_item->getProductUrl() ?>" title="<?php echo $this->escapeHtml($_item->getName()) ?>" class="product-image"><img src="<?php echo $this->helper('catalog/image')->init($_item, 'thumbnail')->resize(50) ?>" width="50" height="50" alt="<?php echo $this->escapeHtml($_item->getName()) ?>" /></a> 
       <div class="product-details"> 
        <p class="product-name"><a href="<?php echo $_item->getProductUrl() ?>"><?php echo $this->escapeHtml($_item->getName()) ?></a></p> 
        <?php echo $this->getPriceHtml($_item, true, '-related') ?> 
        <?php if ($this->helper('wishlist')->isAllow()) : ?> 
         <a href="<?php echo $this->getAddToWishlistUrl($_item) ?>" class="link-wishlist"><?php echo $this->__('Add to Wishlist') ?></a> 
        <?php endif; ?> 
       </div> 
      </div> 
     </li> 
    <?php endforeach ?> 
    </ol> 

А вот связанные с JQuery/JS:

<script type="text/javascript"> 
//<![CDATA[ 
$$('.related-checkbox').each(function(elem){ 
    Event.observe(elem, 'click', addRelatedToProduct) 
}); 

var relatedProductsCheckFlag = false; 
function selectAllRelated(txt){ 
    if (relatedProductsCheckFlag == false) { 
     $$('.related-checkbox').each(function(elem){ 
      elem.checked = true; 
     }); 
     relatedProductsCheckFlag = true; 
     txt.innerHTML="<?php echo $this->__('unselect all') ?>"; 
    } else { 
     $$('.related-checkbox').each(function(elem){ 
      elem.checked = false; 
     }); 
     relatedProductsCheckFlag = false; 
     txt.innerHTML="<?php echo $this->__('select all') ?>"; 
    } 
    addRelatedToProduct(); 
} 

function addRelatedToProduct(){ 
    var checkboxes = $$('.related-checkbox'); 
    var values = []; 
    for(var i=0;i<checkboxes.length;i++){ 
     if(checkboxes[i].checked) values.push(checkboxes[i].value); 
    } 
    if($('related-products-field')){ 
     $('related-products-field').value = values.join(','); 
    } 
} 
//]]> 
</script> 

Любая помощь будет оценена, спасибо!

ответ

0

У вас есть возможность Нет в наличии set to Нет? (Система -> Конфигурация -> Инвентарь)

Вы также можете попробовать добавить $_item->isAvailable() в инструкцию if.

+0

Добавление инструкции $ _item-> isAvailable() to if PERFECT, из-за отсутствия продуктов, которые не будут отображаться как связанный товарный образец! : D. Чтобы ответить на ваш вопрос «Показывать товар на складе», установлено «нет», что мы хотим, чтобы на страницах с запасом отображались возможности клиентов, которые могли бы использовать ссылку на страницу или Google продукт, но не показывать на страницах категорий. Спасибо за вашу помощь! – CLaB

+0

Я ищу тот же тип функциональности для «родственных цветов продукта», чтобы проверить эту ссылку на мой вопрос-> http://stackoverflow.com/questions/38316719/magento-related-product-color-swatches – CLaB

0

Решение я в конечном итоге происходит с: добавив $ _item-> isAvailable(), чтобы, если заявление дает желаемый эффект сопутствующих товаров, которые в наличии не будет отображаться в виде соответствующего образца продукта на странице продукта.

Смежные вопросы