Как отобразить продукты, которые имеют то же значение атрибута, что и связанные продукты, на странице просмотра продукта?


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

Например, я нахожусь на странице, на которой показана "Красная" обувь, у меня должна быть красная футболка, Красный холодильник, Красный все остальное, что будет отображаться в качестве сопутствующих товаров (максимум 5 товаров).

Я знаю, что это можно легко сделать в Enterprise edition, но как это сделать в Community edition?

Любой помогите, пожалуйста?

Примечание:

Все продукты являются простыми продуктами.

Author: Shathish, 2013-09-06

2 answers

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

$currentProduct = Mage::registry('current_product');
if ($currentProduct){
    $collection = Mage::getModel('catalog/product')->getCollection()
        ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes()) //add some attribtues to select
        ->addMinimalPrice() //add prices to select
        ->addFinalPrice()
        ->addTaxPercents()
        ->addAttributeToFilter('color', array('eq'=>$currentProduct->getColor());//filter products with the same color
    Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection); //only active products
    Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);//only visible products
    $collection->setPage(1,5);//limit to 5 products
}
else{
    $collection = new Varien_Data_Collection();
}

Теперь в $collection у вас должны быть нужные вам продукты. Вы можете использовать это в своем пользовательском шаблоне.

 3
Author: Marius, 2013-09-06 07:27:33

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

Итак, я изменяю файл приложение/дизайн/интерфейс/МОЯ тема/по умолчанию/шаблон/каталог/продукт/список/связанный.phtml

Первое, что я делаю в этом файле, это получаю значение атрибута family, выполнив следующие действия

            //get the name of the family that the product being viewed is a part of
             $itemcollectionname = Mage::getModel('catalog/product')->load($_product->getId())->getAttributeText('family');

Затем я попытался использовать код в приведенном выше сообщении следующим образом

             $rcollection = Mage::getModel('catalog/product')->getCollection()
             ->addAttributeToSelect(Mage::getSingleton('catalog/config')->getProductAttributes()) //add some attribtues to select
             ->addAttributeToFilter('family', array('eq'=>$itemcollectionname);//filter products with the same family
             Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($rcollection); //only active products
             Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($rcollection);//only visible products
            $rcollection->setPage(1,5);//limit to 5 products
            echo "$rcollection<br />";
 0
Author: Jayreis, 2014-12-23 16:07:51