Как добавить Избранные продукты в коллекцию продукта
-
13-12-2019 - |
Вопрос
Я пытаюсь изменить какой-то код для вывода продуктов с атрибутом «Figure», установленным на «Да»
Вот что я работаю с:
<?php
class Mage_Catalog_Block_Product_Featured extends Mage_Catalog_Block_Product_Abstract{
public function __construct(){
parent::__construct();
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product', 'featured');
$attributeId = $attribute->getId();
$storeId = Mage::app()->getStore()->getId();
$products = Mage::getResourceModel('reports/product_collection')
->addOrderedQty()
->addAttributeToSelect('*')
->addAttributeToSelect(array('name', 'price', 'small_image', 'featured'))
->setStoreId($storeId)
->addStoreFilter($storeId)
->addViewsCount();
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($products);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($products);
$products->setPageSize(16)->setCurPage(1);
$this->setProductCollection($products);
}
}
.
Это делает вывод продуктов, но не из них.
- .
- Как изменить запрос, чтобы он выбирал только избранные продукты
- Похоже, он добавляет все атрибуты на выбор, это правильно и как я выводят значение атрибута в моем шаблоне PHTML?
Решение
Попробуйте сделать как
$products = Mage::getResourceModel('reports/product_collection')
->addOrderedQty()
->addAttributeToSelect('*')
->addAttributeToSelect(array('name', 'price', 'small_image', 'featured'))
->addAttributeToFilter('featured',array('eq'=>true))
->setStoreId($storeId)
->addStoreFilter($storeId)
->addViewsCount();
.
Также убедитесь, что код вашего атрибута является featured
в файле phtml вы можете получить атрибут, как
<?php $_helper = $this->helper('catalog/output'); ?>
<?php echo $_helper->productAttribute($_product, $_product->getAttributeCode(), 'attribute_code') ?>
. Другие советы
Пожалуйста, попробуйте белдый код
public function __construct()
{
parent::__construct();
$collection = Mage::getResourceModel('catalog/product_collection');
$collection = $this->_addProductAttributesAndPrices($collection)
->addAttributeToSelect('featured')
->addStoreFilter()
->addAttributeToFilter('featured',true)
->setPageSize(16)
->setCurPage(1);
Mage::getSingleton('catalog/product_status')->addVisibleFilterToCollection($collection);
Mage::getSingleton('catalog/product_visibility')->addVisibleInCatalogFilterToCollection($collection);
$collection->setPageSize(16)
->setCurPage(1);
$this->setProductCollection($collection);
}
. Не связан с magento.stackexchange