2013-07-09 4 views
2

Я использую следующий код, чтобы показать некоторые пользовательские атрибуты изображения для всех простых продуктов, которые подключены к настраиваемому продукту.Показать атрибут Magento, ограничивающий один простой продукт

Это прекрасно работает, когда продукт имеет только один вариант, например цвет. Проблема заключается в том, когда продукт имеет множество вариаций так, например:

  • Размер: M/Цвет: красный
  • Размер: L/Цвет: красный
  • Размер: XL/Цвет: красный

  • Размер: M/Цвет: зеленый

  • Размер: L/Цвет: зеленый
  • Размер: XL/Цвет: зеленый

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

<?php 
    $conf = Mage::getModel('catalog/product_type_configurable')->setProduct($_product); 
$col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions(); ?> 
<div class="relative"> 
    <?php 
foreach($col as $simple_product){ ?> 
<div class="container-swatch"> 
    <img width="35" height="35" src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $simple_product->getSwatch() ?>"> 
     <div class="content"> 

     <img src="<?php echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog/product' . $simple_product->getLargeSwatch() ?>"> 
     <div class="inside-swatch-name"><?php echo $simple_product->getAttributeText('real_colour'); ?></div> 

     </div> 
</div> 
<?php } ?> 

ответ

1

Попробуйте это (на странице просмотра продукта):

$_product->getTypeInstance()->getUsedProductCollection($_product)->groupByAttribute('color'); 

Или изменить color с соответствующим кодом атрибута для варианта атрибута цвета

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