【问题标题】:How to get product collection of products with no website Id in Magento?如何在 Magento 中获取没有网站 ID 的产品集合?
【发布时间】:2014-10-22 07:03:04
【问题描述】:

我知道我在 Magento 目录中有一些产品完全缺少 websiteID。我试图找到这样的产品:

  $products = Mage::getModel('catalog/product')
  ->getCollection()
  ->addAttributeToSelect('*')
  ->addAttributeToFilter('website_ids', 'null');

然而这会崩溃。在没有设置 website_id 的情况下获取产品集合的正确方法是什么?

【问题讨论】:

    标签: magento


    【解决方案1】:

    所有产品网站 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-&gt;addWebsiteFilter('0');过滤网站id(当前为0),所以你可以将值更改为1,0,2或NULL。而已。

    在您的情况下,尝试使用 NULL 或像 '' 这样的空。

    更新:

    如果你用''过滤你会得到错误,因为表catalog_product_website有产品实体id和网站id的外键,这意味着website_id不能为空。所以尝试直接查询。在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' 会返回“请求的网站代码无效”,使用 NULL 会返回所有产品。也许我必须通过直接查询表来做到这一点。 ://
    【解决方案2】:

    这对我有用

    SELECT catalog_product_entity.entity_id
    FROM catalog_product_entity
    LEFT JOIN catalog_product_website
        ON catalog_product_entity.entity_id = catalog_product_website.product_id
    WHERE catalog_product_website.product_id IS NULL
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多