我需要在magento 1.8.0中使用我的可配置产品的一些信息生成自定义XML架构。在这些信息中,我需要从每个可配置的简单产品中获取一些属性(大小,颜色)。到目前为止,这是我的代码中的一个相关部分,它可以生成我的XML,除了我无法找到获取属性的方法' color'和' shirt_size'来自简单的产品。
$products = Mage::getModel('catalog/product')->getCollection();
$products->addAttributeToFilter('status', 1);
$products->addAttributeToFilter('visibility', 4);
$products->addAttributeToSelect('*');
$xml = new SimpleXMLElement('<xml/>');
foreach ($products as $product_all) {
$sku = $product_all->getSku();
$price = $product_all->getPrice();
$prod = $xml->addChild('product');
$prod->addChild('product_id', "$sku");
$prod->addChild('price', "$price");
$prod->addChild('color', "");
$prod->addChild('shirt_size', "");
}
print($xml->asXML());
谢谢!
答案 0 :(得分:1)
您可以尝试这样的事情,它会加载子产品,然后获取其配置选项的属性值:
foreach ($products as $product_all) {
...
$prod = $xml->addChild('product');
...
/* @var Mage_Catalog_Model_Product $product_all */
if ($product_all->isConfigurable()) {
$options = $product_all->getOptionList();
/* @var Mage_Catalog_Model_Product_Type_Configurable $type */
$type = $product_all->getTypeInstance();
$children = $type->getUsedProducts(null, $product_all);
/* @var Mage_Catalog_Model_Product $child */
foreach ($children as $child) {
foreach ($options as $option) {
$prod->addChild($option->code, $child->getAttributeText($option->code));
}
}
}
}