Posting in the Magento forums has been disabled pending the implementation of a new and improved forum solution which should better serve the community.

For new questions please post at magento.stackexchange.com, the community-run support site for the Magento community. We will be providing updates on the new forum solution soon. For questions or concerns please email community@magento.com.

Magento Forum

merge products with the same attribute
 
ruudboy
Jr. Member
 
Total Posts:  11
Joined:  2012-12-09
 

Hi.

I have products with the same attribute called “reference”.
I want to show only one product if they have the same reference in the category view.

I tried to change list.phtml with the following:

<?php $i=0; foreach ($_productCollection as $_product): ?>
<?php 
$attributes 
$_product->getAttributes();
if ( 
$prevReverence == $attributes['reference']->getFrontend()->getValue($_product) ) continue;
$prevReverence $attributes['reference']->getFrontend()->getValue($_product);
?>

This works but with this method I remove them to late because if a product page needs to show 20 products and i have 8 products with the same reference this method will show 12 products instead of 20.

If i’m not clear enough please let me know.

 
Magento Community Magento Community
Magento Community
Magento Community
 
ruudboy
Jr. Member
 
Total Posts:  11
Joined:  2012-12-09
 

I tried the next one

$_productCollection = clone $this->getLoadedProductCollection();
    
$_productCollection->clear()
                        ->
getSelect()
                        ->
group('at_name_default.value');

This looks like it works because i group on the value of at_name_default (because reference is an attribute)
But i also have products with the same name.
These values are also in the value field.
So products with the same name are excluded also.

What i want is that `at_name_default`.`name` is unique but only when `at_name_default`.`attribute_id` = 179 (not 178 witch is the productname)

The query is:

SELECT `e`.*, `cat_index`.`position` AS `cat_index_position`, `price_index`.`price`, `price_index`.`tax_class_id`, `price_index`.`final_price`, IF(price_index.tier_price IS NOT NULLLEAST(price_index.min_priceprice_index.tier_price), price_index.min_price) AS `minimal_price`, `price_index`.`min_price`, `price_index`.`max_price`, `price_index`.`tier_price`, IF(at_name.value_id 0at_name.valueat_name_default.value) AS `nameFROM `catalog_product_entity` AS `e`
 
INNER JOIN `catalog_category_product_index` AS `cat_indexON cat_index.product_id=e.entity_id AND cat_index.store_id=AND cat_index.visibility IN(24) AND cat_index.category_id='401'
 
INNER JOIN `catalog_product_index_price` AS `price_indexON price_index.entity_id e.entity_id AND price_index.website_id '2' AND price_index.customer_group_id 0
 LEFT JOIN 
`catalog_product_entity_varchar` AS `at_name_defaultON (`at_name_default`.`entity_id` = `e`.`entity_id`) AND (`at_name_default`.`attribute_id` = '63') AND `at_name_default`.`store_id` = 0
 LEFT JOIN 
`catalog_product_entity_varchar` AS `at_nameON (`at_name`.`entity_id` = `e`.`entity_id`) AND (`at_name`.`attribute_id` = '63') AND (`at_name`.`store_id` = 2GROUP BY `at_name_default`.`valueORDER BY `nameasc LIMIT 20
 
Magento Community Magento Community
Magento Community
Magento Community
Magento Community
Magento Community
Back to top