代码之家  ›  专栏  ›  技术社区  ›  Poles

如何检查产品是否为简单产品

  •  2
  • Poles  · 技术社区  · 10 年前

    我知道如何检查产品是否可配置。我还了解了如何检查简单产品是否是可配置产品的子产品。但有人能告诉我如何检查产品是否是纯简单的产品吗?

    这意味着我要检查我创建的产品 Attribute set='Default' Product type='Simple Product' attribute set='Default' Product type='configurable Product' .

    3 回复  |  直到 10 年前
        1
  •  3
  •   Smeagol    10 年前

    试试这个

    $attributeSetModel = Mage::getModel("eav/entity_attribute_set")->load($product->getAttributeSetId());
    $attributeSetName  = $attributeSetModel->getAttributeSetName();
    
    $parentIds = Mage::getResourceSingleton('catalog/product_type_configurable')->getParentIdsByChild($product->getId());
    
    if ($product->getTypeId() == 'simple' && empty($parentIds) && $attributeSetName == 'Default') {
        echo "This is a simple product with no parent configurable product in the 'Default' attribute set";
    };
    
        2
  •  0
  •   Kārlis Millers    10 年前
    <?php if( $_product->getTypeId() == 'simple' ): ?>
    //your code for simple products 
    <?php endif; ?>
    
        3
  •  0
  •   Amit Bera    10 年前

    我希望,你想要 simple collection filter with default attribute 它们是 not in configurable products child Simple Product .

    然后首先获取默认属性集id

     $entityType = Mage::getModel('catalog/product')->getResource()->getEntityType();
     $collection = Mage::getResourceModel('eav/entity_attribute_set_collection')
                ->setEntityTypeFilter($entityType->getId());
    $collection->addFieldToFilter('attribute_set_name','Default');
    $attrbuteSetId= $collection->getFirstItem()->getId();
    

    过滤后产品 Collection with simple product type and of non default Attribute set .

    $productCollection=Mage::getModel('catalog/product')->getCollection()
                            ->addAttributeToFilter('type_id','simple')
                            ->addAttributeToFilter('attribute_set_id',array('nin'=>$attrbuteSetId));
    

    然后取出 Simple product ids which are used in Configurable product .

    $select = Mage::getSingleton('core/resource')->getConnection('core_read')
            ->select()
            ->from('catalog_product_super_link', array('product_id'))
            ->group('product_id');
    $resource = Mage::getSingleton('core/resource');
    $readConnection = $resource->getConnection('core_read');
    $results = $readConnection->fetchAll($select);
    

    现在是最后的集合

    $productCollection->addAttributeToFilter('entity_id',array('nin'=>$results));