升级到Magento 1.6.2.0(从1.4开始)后,表 sales_flat_order_item 中的 product_option 字段在下新订单时不会更新。
在升级前的旧订单中,条目显示为:
a:2:{s:15:“info_buyRequest”; a:3:{s:7:“options”; a:2 ......等等。
但升级后:
一个:0:{}
我已尝试切换到标准模板,添加带有选项的新测试产品,删除扩展程序无济于事。
也许有人知道如何填充 product_options 字段?
将产品添加到购物篮时,选项值会插入 sales_flat_quote_item_option ,但在下达实际订单时,不会插入 sales_flat_order_item 。
感谢。
答案 0 :(得分:1)
升级后我没有遇到过这个问题,但这里有一些指示,希望能帮助您查明问题并提供一些背景信息。
从报价项目到订单项目的转换由Mage_Sales_Model_Convert_Quote::itemToOrderItem()
处理。
这是产品选项的复制方式
$options = $item->getProductOrderOptions();
if (!$options) {
$options = $item->getProduct()
->getTypeInstance(true)
->getOrderOptions($item->getProduct());
}
$orderItem->setProductOptions($options);
getOrderOptions()
从产品中提取options数组,包括info_buyRequest
和任何选定的属性选项。
复合产品处理已与Magento 1.5统一。任何选项,无论它们是可配置产品选项,捆绑产品配置还是自定义选项,都由相同的复合产品子系统处理。
这些更改还旨在尽可能保持向后兼容性,但是必须升级一些覆盖深层核心功能的扩展才能使用新进程。
要确定是否存在更改有问题的类的重写,我将运行以下代码来检查目录和销售模块。
require_once 'app/Mage.php';
Mage::app();
print_r(array(
'Mage_Catalog Model Rewrites' => Mage::getConfig()->getNode('global/models/catalog/rewrite'),
'Mage_Sales Model Rewrites' => Mage::getConfig()->getNode('global/models/sales/rewrite')
));
如果重写了产品类型模型,销售订单或报价项目或销售转换或服务模型,请尝试禁用这些扩展。