Magento如何在数据库中保存订购的产品?

时间:2011-04-21 11:30:19

标签: magento new-operator product

发送订单后,Magento如何保存订单产品(在sales_flat_order_item表中)。我需要这些文件,因为我想在数据库中保存正常价格;如果您有特价,Magento只会在有人下订单时将特价保存在数据库中。 或者有没有人知道如何在每个订购产品的数据库中保存正常价格?

2 个答案:

答案 0 :(得分:4)

慢慢?小心?用SQL?我小子,我小子。

说实话,是的,你是正确的,订单项目表上存储的唯一数据是客户实际支付的价格(而不是正常价格)。如果要在该表上保存额外数据,请执行以下操作:

  1. 使用安装程序SQL脚本
  2. 创建新模块
  3. 让模块的安装程序在订单商品表
  4. 中添加新列
  5. 将观察者添加到订单商品
  6. 上的预存储事件中
  7. 让观察者将常规价格记录到新列中
  8. 现在,您应该在数据库中拥有该数据,并且能够像任何其他列一样正常检索它。希望有所帮助!

    谢谢, 乔

答案 1 :(得分:0)

我很好奇为什么你甚至需要将原始价格存储在表格中...当你循环订购商品时,你可以随时查看:

$origPrice = Mage::getModel('catalog/product')->load($item->getProductId())->getData('price');

或者您可以编写自己的模块,在“sales_flat_order_item”中创建新列,或创建自己的表,引用该表中的特定ID。您可以让模块观察订单成功事件,并遍历订单中的所有产品并在数据库中设置值。

就像约瑟夫在上面的评论中所说,你绝不应该修改核心代码。如果您需要进行更改,请编写适当的模块。如果你正在修改核心代码(或者,在我看来,如果你正在创建这个目录:app / code / local / Mage /),那么你做错了。