Magento选项未在订单,发票上显示(数据库未填充)

时间:2012-02-14 07:36:29

标签: magento

升级到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

感谢。

1 个答案:

答案 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')
));

如果重写了产品类型模型,销售订单或报价项目或销售转换或服务模型,请尝试禁用这些扩展。