Magento 1.7:非系统产品属性未保存在PHP脚本中
我有一个脚本,它使用Magento 1.7:非系统产品属性未保存在PHP脚本中,magento,Magento,我有一个脚本,它使用 $product=Mage::getModel(“目录/产品”)->loadByAttribute('sku',$data['id') 如果修改或检索系统属性(如权重),一切正常: $product->getWeight();//返回正确的权重 $product->设定重量(5.0);//正确设置重量 我有两个自定义属性:google\u product\u category和mpn。如果我尝试使用相同的技术修改它们,例如: $product->setMpn('123ABC
$product=Mage::getModel(“目录/产品”)->loadByAttribute('sku',$data['id')代码>
如果修改或检索系统属性(如权重),一切正常:
$product->getWeight();//返回正确的权重
$product->设定重量(5.0);//正确设置重量
我有两个自定义属性:google\u product\u category和mpn。如果我尝试使用相同的技术修改它们,例如:
$product->setMpn('123ABC')
$product->setGoogleProductCategory(“电子产品”)代码>
调用不会抛出错误,但数据不会保存(是的,我随后调用$product->save()
我做错了什么?你能发布你的脚本吗?你是开发者模式吗
看起来问题是因为商店面积
查看Mage\u目录\u型号\u产品
->setOrigData
public function setOrigData($key=null, $data=null)
{
if (Mage::app()->getStore()->isAdmin()) {
return parent::setOrigData($key, $data);
}
return $this;
}
保存产品时,需要将数据与原始数据进行比较
如果从“管理”区域运行origdata,它可以检索origdata。如果您的脚本从“默认”区域运行,它将无法获取原始数据
因此,如果您处于开发人员模式,在代码的某个点上会抛出一个警告,这将破坏您的脚本(我可能是错的,因为您说过没有抛出错误)
您可以通过将Mage::app('default')
更改为Mage::app('admin')
或者使用Mage::app()->setCurrentStore('admin')代码>你能发布你的脚本吗?你是开发者模式吗
看起来问题是因为商店面积
查看Mage\u目录\u型号\u产品
->setOrigData
public function setOrigData($key=null, $data=null)
{
if (Mage::app()->getStore()->isAdmin()) {
return parent::setOrigData($key, $data);
}
return $this;
}
保存产品时,需要将数据与原始数据进行比较
如果从“管理”区域运行origdata,它可以检索origdata。如果您的脚本从“默认”区域运行,它将无法获取原始数据
因此,如果您处于开发人员模式,在代码的某个点上会抛出一个警告,这将破坏您的脚本(我可能是错的,因为您说过没有抛出错误)
您可以通过将Mage::app('default')
更改为Mage::app('admin')
或者使用Mage::app()->setCurrentStore('admin')
尝试删除var/cache
下的所有文件。您还可以尝试调用$product->getResource()->getAttribute('mpn')->getBackend()->getTable()
进行调试尝试删除var/cache
下的所有文件。您还可以尝试调用$product->getResource()->getAttribute('mpn')->getBackend()->getTable()
进行调试