在Magento中设置fronend属性

时间:2015-11-06 10:51:35

标签: php magento module magento-1.9

我最近获得了Magento 360视图图像的扩展。部分扩展为后端的产品添加了一个字段,要求输入文件夹名称。我正在尝试编写一些代码,这些代码将为大量产品设置此属性。到目前为止,我已设法使用以下代码读取该属性:

$productSKUs = array(102);
$products = Mage::getModel('catalog/product')->getCollection()->addAttributeToSelect('*');
$products->addAttributeToFilter( 'sku', array( 'in' => $productSKUs) );

foreach($products as $product)
{
    $prouductInfo = $product->getAttributes();
    $objFolderName = $prouductInfo['imagecreator_obj_folder']->getFrontend()->getValue($product);
    echo $objFolderName;
}

但是我找不到如何将属性设置为新值。

如果我想做的事情是可能的,那么任何建议都会受到赞赏。

谢谢, 亚当

2 个答案:

答案 0 :(得分:0)

Can you try : 

foreach($products as $product)
{
    $product->setImagecreatorObjFolder('newValue')->save();
    //OR
    $product->setData('imagecreator_obj_folder','newValue')->save();
    // If this not work, try one more option, load product and then save its value which is demonstrated below
    $productData = Mage::getModel('catalog/product')->load($product->getId());
    $productData->setData('imagecreator_obj_folder','newValue')->save();

}

答案 1 :(得分:0)

Magento通过EAV模型背后的规则将属性表与产品表联系起来,因此首先要做的就是像往常一样将产品放入循环中。

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

然后

$product->setData('imagecreator_obj_folder', 'newValue')->getResource()->saveAttribute($product, 'imagecreator_obj_folder');

您可以像处理一样将此逻辑插入到集合中。