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の場合、見積もりには注文があります。
フラグはメソッドによって に設定さ0Mage_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を予約したモジュールを書く機会が2回ありました。

于 2013-09-26T13:43:55.003 に答える