脚本生成多个描述而不是一个

时间:2014-05-27 16:43:05

标签: php mysql magento

我为我的Magento 1.7使用简短描述生成器插件,它有点错误。以下代码来自“ProductController.php”:

Request()方法 - > getParam( '产品');

    foreach ($pIds as $pId) {
        $obj = Mage::getModel('catalog/product');
        $_product=$obj->load($pId);
        $attribs=$_product->getAttributes();
        $i=0;
        foreach ($attribs as $attrib) {

            if ($attrib->getUsedInProductListing() && $attrib->getIsUserDefined()) {

                $prodAttrVal=$attrib->getStoreLabel().': ';
                $pa=$attrib->getFrontend()->getValue($_product);
                //$pa=$_product->getAttributeText($attrib->getAttributeCode());
                if ($pa==null) $pa='не указано';
                $prodAttrVal.=$pa;
                if ($i % 2==0) $str.=' '.$prodAttrVal.' | ';
                else $str.=' '.$prodAttrVal.'.';
                $i++;
            }

        }
        if ($i % 2!=0) $str.=' ';
        $str.=' ';
        $_product->setDescription($str);
        $obj->save();
    }
    Mage::dispatchEvent('catalog_product_massupdate_after', array('products'=>$pIds));
    $this->_redirect('adminhtml/catalog_product/index/', array());
}

}

当我在目录中选择N个产品并选择“Generate Short Description”时,脚本会通过以下模式生成简短描述:“Attr1:blah.Attr2:blah.Attr3:blah.Attr1:blah.Attr2:blah.Attr3:blah “。 - 在某些产品中重复N次,但在其他产品中,它只做一次描述,因为它必须是正确的。产品名称或SKU的相似性并不依赖。

有什么不对?

1 个答案:

答案 0 :(得分:0)

我认为这一行存在问题

$obj = Mage::getModel('catalog/product'); //this line

   foreach ($pIds as $pId) {

        $_product=$obj->load($pId);
        $attribs=$_product->getAttributes();
        $i=0;
        foreach ($attribs as $attrib) {

            if ($attrib->getUsedInProductListing() && $attrib->getIsUserDefined()) {

                $prodAttrVal=$attrib->getStoreLabel().': ';
                $pa=$attrib->getFrontend()->getValue($_product);
                //$pa=$_product->getAttributeText($attrib->getAttributeCode());
                if ($pa==null) $pa='не указано';
                $prodAttrVal.=$pa;
                if ($i % 2==0) $str.=' '.$prodAttrVal.' | ';
                else $str.=' '.$prodAttrVal.'.';
                $i++;
            }

        }
        if ($i % 2!=0) $str.=' ';
        $str.=' ';
        $_product->setDescription($str);
        $_product->save();
    }
    Mage::dispatchEvent('catalog_product_massupdate_after', array('products'=>$pIds));
    $this->_redirect('adminhtml/catalog_product/index/', array());
}

如果您有查询,请告诉我