我有以下SQL查询来检索产品:
$query = "SELECT *,m.m_name,m.m_website FROM belvg_countdown c
INNER JOIN catalog_product_entity e ON e.entity_id=c.entity_id
LEFT JOIN manufacturers_products mp ON c.entity_id=mp.product_id
LEFT JOIN manufacturers m ON mp.manufacturers_id=m.manufacturers_id
WHERE DATE_FORMAT(expire_datetime_off , '%Y-%m-%d') > DATE_FORMAT(NOW() , '%Y-%m-%d')
AND DATE_FORMAT(expire_datetime_on , '%Y-%m-%d')!=DATE_FORMAT(NOW() , '%Y-%m-%d')
AND entity_type='product'";
现在我还要添加一个语句来仅加载名为“featured”的类别的产品。 你能帮我理解我应该比较/查询什么才能获得“特色”产品吗?
感谢。
答案 0 :(得分:0)
请参阅以下网址,这对您来说非常有帮助
Magento ->addCategoryFilter - filtering product collection by root category
或尝试
好吧,我认为这样做有效,没有经过太多测试,但似乎已经完成了诀窍。您需要首先获取商店根类别ID,然后加入一些字段,以便您可以访问产品“category_id”,然后使用以下内容进行过滤:
$_rootcatID = Mage::app()->getStore()->getRootCategoryId();
$_testproductCollection = Mage::getResourceModel('catalog/product_collection')
->joinField('category_id','catalog/category_product','category_id','product_id=entity_id',null,'left')
->addAttributeToFilter('category_id', array('in' => $_rootcatID))
->addAttributeToSelect('*');
$_testproductCollection->load();
foreach($_testproductCollection as $_testproduct){
echo $this->htmlEscape($_testproduct->getName())."<br/>";
};
答案 1 :(得分:0)
您不需要所有此查询来获取特定类别的有效产品。 使用集合。
$producs = Mage::getModel('catalog/category')->load(#categoryid or $_category->getId())
->getProductCollection()
->addAttributeToSelect('*')
->addAttributeToFilter('is_saleable', 1)
->joinField('is_in_stock', 'cataloginventory/stock_item', 'is_in_stock', 'product_id=entity_id', '{{table}}.stock_id=1', 'left');