我正在尝试更新我的产品图片标签。我希望它们与产品名称相同。
我尝试了什么
$mediaModel = Mage::getModel("catalog/product_attribute_backend_media");
$images = $product->getMediaGalleryImages();
foreach ($images as $image) {
$mediaModel->updateImage(
$product->getId(),
$image->getFile(),
array("label" => $title)
);
}
但后来我收到了这个错误
致命错误:在第401行的app / code / core / Mage / Catalog / Model / Product / Attribute / Backend / Media.php中的非对象上调用成员函数getAttributeCode()
我也试过
$mediaModel = Mage::getModel("catalog/product_attribute_media_api");
$images = $mediaModel->items($product->getId());
foreach ($images as $image) {
$mediaModel->update(
$product->getId(),
$image['file'],
array("label" => $title)
);
}
哪个运行正常,但值不会在管理员中更新。
我该怎么做?
答案 0 :(得分:0)
$product = Mage::getModel('catalog/product')->loadByAttribute('sku','xxxxxxxxx');
$mediaModel = Mage::getModel("catalog/product_attribute_media_api");
$images = $mediaModel->items($product->getId());
foreach ($images as $image) {
$mediaModel->update(
$product->getId(),
$image['file'],
array("label" => 'Image label here')
);
}
$product->getResource()->saveAttribute($product, 'media_gallery');
此代码适用于我。刷新后端之前清除缓存
答案 1 :(得分:-2)
试试这个
$product->getImageLabel();