所有的产品网站id存储在catalog_product_website
。如果您在此处打开此表格,则可以看到与网站相关的产品。
这里是过滤器,
<?php
require_once('app/Mage.php'); //Path to Magento
umask(0);
Mage::app();
echo '<pre>';
$collection = Mage::getResourceModel('catalog/product_collection');
$collection->addWebsiteFilter('0');
//echo $collection->getSelect(); exit;
$collection->getFirstItem();
// ->addAttributeToFilter('website_ids', 'null');
//echo $orders->getSelect();
//exit;
print_r($collection);
在这种$collection->addWebsiteFilter('0');
过滤webssite IDS(当前为0),这样你就可以更改值as1,0,2或NULL
。而已。
在你的情况下,尝试使用NULL或空像''。
更新:
如果用''
过滤器,你会得到错误,因为有与产品实体ID和网站ID,这意味着该website_id
不能为空外键的表catalog_product_website
。所以请尝试直接查询。 Magento中,你可以通过这个得到集合查询,
echo $collection->getSelect(); exit;
或使用,
SELECT `e`.* FROM `catalog_product_entity` AS `e`
INNER JOIN `catalog_product_website` AS `product_website` ON product_website.product_id = e.entity_id AND product_website.website_id IN('')
如果您有任何疑问,请在这里评论。
感谢您的帮助,但是使用“”或“空”返回“无效的网站代码请求”,并使用NULL返回所有产品。也许我必须通过对表格的直接查询来做到这一点。 :/ – DarkVader 2014-10-23 08:20:48