Magento的getAttributeText()在shell脚本不工作(Magento getA

2019-10-16 22:33发布

我有以下代码遍历所有的产品和呼应SKU和制造商,但$马努始终是一片空白,即使我做正确得到SKU。

private function organize() {
    $products = Mage::getModel('catalog/product')->getCollection();
    foreach ($products as $product) {
        $sku = $product->getSku();
        $manu = $product->getAttributeText('manufacturer');
        // The following also doesn't work
        //$manu = $product->getResource()->getAttribute('manufacturer')->getFrontend()->getValue($product);
        echo $sku." - ".$manu."\n";
    }
}

这正在作为从Mage_Shell_Abstract延伸的命令行脚本

可能是什么错我的代码?

大卫

Answer 1:

我更喜欢@Tim的意见(对他的课程学分)作为我们不需要做产品的另一个负载(当我们从我们收集的foreach做它自动加载)

因为它不存储在主表(没有自动选择的制造商属性catalog_product_entity )。

$products = Mage::getModel('catalog/product')->getCollection()
    ->addAttributeToSelect('manufacturer');


Answer 2:

当遍历集合在这里,EAV属性不会加载。 试试这个:

$products = Mage::getModel('catalog/product')->getCollection();
    foreach ($products->getAllIds() as $productId) {
        $product = Mage::getModel('catalog/product');
        $product->load($productId);
        $sku = $product->getSku();
        $manu = $product->getAttributeText('manufacturer');
        echo $sku." - ".$manu."\n";
    }


文章来源: Magento getAttributeText() not working in shell script
标签: magento