我需要从拥有它的magento商店中的所有产品中读取一个属性(有些可能由于属性集不同而没有它),用它做一些事情(正则表达式/替换等),然后将新计算的值保存在不同的属性中相同的产品。
例如,加载产品A,识别出它确实有属性X。加载X的前端值“9000”,将其乘以2,将18000保存在产品A的属性Y中。
在这里完成一些帖子之后,我想出了这段代码。它允许我列出我们商店中几个产品的属性 ID(这里是制造商)。
问题:这只是制造商的 ID,而不是他们的实际名称(我需要实际名称)。我怎么得到那些。我在另一篇文章中找到了这个片段:
$product = Mage::getModel('catalog/product')->load($_product->getEntityId());
$product->setData('add_ten_pence', 1)->getResource()->saveAttribute($product, 'add_ten_pence');
基本上我需要它的“getData-version”。由于某种原因,以下行不起作用。
$value = $product->getAttributeText($attribute_code);
非常感谢您对此事的任何意见。我正在寻找的属性值是前端类型的“下拉列表”,如果它改变了任何东西。
到目前为止我的代码:
umask(0);
Mage::app('default');
Mage::app ()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$productCollection = Mage::getModel('catalog/product')->getCollection();
$i = 0;
$storeId = 1;
foreach($productCollection as $_product)
{
echo "Updating SKU:".$_product->getSku()."\tID:".$_product->getEntityId()." ";
$manufacturer = Mage::getResourceModel('catalog/product')->getAttributeRawValue($_product->getEntityId(), 'manufacturer', $storeId);
echo "\tManufacturer: ".$manufacturer."<br>";
$i++; //(DEBUG break loop early to reduce loading time)
if($i>10) break;
}
?>