从Magento中的脚本保存具有层定价的产品模型时出现奇怪的行为

Jos*_*ton 3 php magento

当我尝试从具有层级定价的Magento Enterprise 1.8脚本中保存产品模型时,我发现了一些奇怪的行为.

以此代码为例:

// This product has a tier price
$product = Mage::getModel('catalog/product')->load(194760);
$product->setName('Changed Product Title');
$product->save();
Run Code Online (Sandbox Code Playgroud)

保存获取异常时(详见下文).但是,如果我在模型中没有任何改变,我就不会得到例外.我有一种感觉,这是因为我没有更新任何东西,所以Magento没有那么多工作.

// Same product, but I changed nothing and it works 
$product = Mage::getModel('catalog/product')->load(194760);
$product->save();
Run Code Online (Sandbox Code Playgroud)

奇怪的是,如果我正在设置或修改等级价格信息,我能够成功保存产品(等待我不创建任何重复的内容)

// This works pending the tier price does not already exist
$mud_array = array();
$mud_array[] = array(
    'website_id' => 0,
    'cust_group' => 32000,
    'price_qty' => 5,
    'price' => 6
);
$product = Mage::getModel('catalog/product')->load(194760);
$product->setTierPrice($mud_array);
$product->save();
Run Code Online (Sandbox Code Playgroud)

我看到的例外情况如下:

致命错误:未捕获异常'Mage_Eav_Model_Entity_Attribute_Exception',消息'SQLSTATE [23000]:完整性约束违规:1062重复条目'194760-1-0-5.0000-0',用于/ path/to/magento/app /中的关键字"UNQ_CATALOG_PRODUCT_TIER_PRICE"代码/核心/法师/ EAV /型号/实体/ Abstract.php:61

因此,当产品中存在等级价格并且您尝试更改模型内的任何内容时,它似乎会尝试重新插入所有等级价格信息.

谁看过这个吗?有办法解决这个问题吗?感谢您的任何帮助,您可以提供.

Gnu*_*mie 5

我在EE 1.12中遇到了同样的问题,但是使用了"group_price"属性.只是通过在我的脚本的乞讨添加来设法修复错误

法师::应用程序() - > setCurrentStore(Mage_Core_Model_App :: ADMIN_STORE_ID);