我遇到的问题是,在信用卡交易期间,对交易的保存操作会导致抛出错误,抱怨未在保存的对象上设置store_id。有问题的代码在Mage_Eav_Model_Entity_Abstract中:_collectSaveData($ newObject)
if (array_key_exists($k, $origData)) {
if ($this->_isAttributeValueEmpty($attribute, $v)) {
$delete[$attribute->getBackend()->getTable()][] = array(
'attribute_id' => $attrId,
'value_id' => $attribute->getBackend()->getValueId()
);
} else if ($v !== $origData[$k]) {
$update[$attrId] = array(
'value_id' => $attribute->getBackend()->getValueId(),
'value' => $v,
);
} else if ($v == $origData[$k] && $origData['store_id'] != $this->getDefaultStoreId()) { <--- the exception origin
$insert[$attrId] = $v;
}
} else if (!$this->_isAttributeValueEmpty($attribute, $v)) {
$insert[$attrId] = $v;
}
存储的对象是Mage_Customer_Model_Address类型。问题很明显;地址模型没有定义store_id。我的问题是a)为什么不?,或者b)它应该被定义吗?或者c)这是一个错误吗?
我正在使用Magento ver。 1.5.x的-devel的-90295