【问题标题】:Get attributes of child product magento获取子产品magento的属性
【发布时间】:2015-06-15 17:14:34
【问题描述】:

我需要在 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());

谢谢!

【问题讨论】:

    标签: php xml magento


    【解决方案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));
                }
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-27
      • 2023-04-02
      相关资源
      最近更新 更多