2

问题:

是否有确定的方法可以在不加载 Order 对象的情况下检查 Quote 对象是否具有相关的 Order 对象?

研究

我已经查看了以下方法,但我不是 100% 它们是准确的:

  • is_active,因此当订单完成时,此字段设置为 0,但我不确定这是唯一发生的情况。
  • reserved_order_id,措辞似乎可能无法满足保留的订单。
  • converted_at(感谢@Marius),似乎总是null适合我。
  • subtotal,这看起来很有趣,如果报价有小计,它肯定已被订购。

我想我可以设置一个标志并将其添加到convert_quote_to_order观察者,但必须有一个简单的内置方法来执行此操作,真的我不希望在我做然后检查时将订单对象加入我的集合的额外开销。

非常感谢。

4

1 回答 1

9

检查字段converted_at( $quote->getConvertedAt())。如果是null,则表示它没有订单。如果它有订单,这应该是创建订单的日期。
[编辑]
好的。我已经检查过了,我可以确认这is_active是检查报价是否有关联订单的可靠方法。如果值是0报价有订单。
该标志0由该方法设置,Mage_Sales_Model_Service_Quote::_inactivateQuote并在下订单时调用此方法:
Mage_Sales_Model_Service_Quote::submitOrder
Mage_Sales_Model_Service_Quote::submitNominalItems
Mage_Sales_Model_Service_Quote::submitAll
另一方面,reserved_order_id对于转换为订单的报价不是一个可靠的标志。它可以用一个值填写,但订单可能会丢失。我曾经有过几次编写一个模块,在该模块中我在下订单之前保留了订单 ID。

于 2013-09-26T13:43:55.003 回答