1

这个答案几乎提供了这个解决方案https://stackoverflow.com/a/14249171 它确实正确地替换了产品名称。

但我需要更进一步,检查产品名称、描述和简短描述,以在所有三个区域中将“示例”替换为“测试”。我不确定是否可以修改提供的当前脚本以包含这些其他属性。

4

1 回答 1

1

这可以解决问题:

$newName = str_replace('example','test',$product->getName());
$product->setName($newName);

找到它并添加其他属性:

$newDescription = str_replace('example','test',$product->getDescription());
$product->setDescription($newDescription);
$newShortDescription = str_replace('example','test',$product->getShortDescription());
$product->setShortDescription($newShortDescription);

然后像这样保存每个属性:

$product->getResource()->saveAttribute($product,'description');
$product->getResource()->saveAttribute($product,'short_description');

或者只是保存产品(耗费时间和资源)

$product->save();

要仅选择名称或描述或 short_desc 中具有示例的产品,请使用此

 -addAttributeToFilter(array(array('attribute'=>'name','like'=>'%example%'), array('attribute'=>'description','like'=>'%example%'),array('attribute'=>'short_description','like'=>'%example%')))

代替

->addAttributeToFilter('name',array('like','%example%'))
于 2013-03-01T08:49:22.457 回答