我创建了代码,该代码应该找到不可见的简单产品,这些简单产品未附加到可配置产品上。
$collection = $objectManager->create('Magento\Catalog\Model\ResourceModel\Product\Collection')
->addFieldToFilter('visibility', 4)
->addFieldToFilter('type_id', "configurable");
$childIds = array();
/** @var \Magento\Catalog\Model\Product $product */
foreach ($collection as $product) {
$typeInstance = $product->getTypeInstance();
$children = $product->getTypeInstance()->getChildrenIds($product->getId());
foreach ($children as $group) {
foreach ($group as $id) {
$childIds[] = $id;
}
}
}
$collection = $objectManager->create('\Magento\Catalog\Model\ResourceModel\Product\Collection')
->addAttributeToSelect('sku')
->addAttributeToFilter('entity_id', array('nin' => $childIds))
->addFieldToFilter('visibility', 1)
->addFieldToFilter('type_id', "simple")
->addAttributeToSort('entity_id', 'DESC');
这可能会帮助需要获取此类列表的人。 有人有更有效的方法来做同样的事情吗?