首页 文章

在magento中编辑现有产品名称的模块?

提问于
浏览
0

请尝试在magento中创建一个模块,通过将现有产品名称与随机生成的数字连接来编辑产品名称 .

$ model = Mage :: getModel('catalog / product') - > load(1111)//获取产品型号$ collection = $ model-> getCollection(); //产品系列foreach($ collection as $ product)//获取产品的循环{$ model-> load($ product-> getId()); $ pname = $ product-> getName(); $ this-> model = Mage :: getModel('catalog / product'); $ new_name = $ pname . ' ” .rand(1000,5000); $这 - >模型 - >的setName($ NEW_NAME); }

这是我的代码,我正在尝试创建一个模块来实现此功能,而无需编辑核心文件或使用管理面板 .

2 回答

  • 2

    对不起,但你的代码很难看 .

    如果你想使用集合(这是一种从对象列表中访问数据的好方法),你不能使用 - > load()(非常昂贵,只有在访问单个对象的数据时才应该使用它,比如产品页)

    请尝试使用此代码:

    $collection = Mage::getModel('catalog/product')->getCollection(); //products collection
        $collection->addAttributeToSelect('name'); //retrieve only product name (optimising SQL)
    
        foreach ($collection as $product) //loop for getting products
        {
            $pname = $product->getName(); 
            $new_name = $pname.' '.rand(1000,5000);
            $product->setName($new_name);
            $product->save(); // you missed that
        }
    

    如果你有一个高数字或产品,你也可以使用SQL CONCAT()函数进行单个SQL查询...

  • 0

    class Digital_GoogleMpn_Model_Observer {public function googleMpn(Varien_Event_Observer $ observer)
    {
    $ product = $ observer-> getEvent() - > getProduct(); $ pname = $ product-> getName();

    $ google_mpn = rand(1000,5000);

    $ new_name =“{$ pname} . ” ” {$ google_mpn}“;

    $产品 - >的setName($ NEW_NAME);

    $产品 - )>保存(;

    }}

相关问题