문제는에서 호출에 addStoreFilter()
있습니다 getUsedProductCollection()
.
public function getUsedProductCollection($product = null)
{
$collection = Mage::getResourceModel('catalog/product_type_configurable_product_collection')
->setFlag('require_stock_items', true)
->setFlag('product_children', true)
->setProductFilter($this->getProduct($product));
if (!is_null($this->getStoreFilter($product))) {
$collection->addStoreFilter($this->getStoreFilter($product));
}
return $collection;
}
현재 상점에서 판매 가능한 제품 만 표시하는 필터가 추가됩니다.
$configurable
구성 가능한 제품의 유형 인스턴스 인 경우 다음을 호출하기 전에 이와 같이 상점 필터를 설정 해제 할 수 있습니다 getUsedProductCollection()
.
$configurable->setStoreFilter(null);
완벽한 솔루션 :
$configurable = $product->getTypeInstance();
$configurable->setStoreFilter(null);
$simpleCollection = $configurable->getUsedProductCollection()
->addAttributeToSelect('*')
->addFilterByRequiredOptions();
foreach ($simpleCollection as $simple) {
//$simple->getName();
}