2011-02-09 8 views
10

によって喚起されましたanother question私は最近SOを見ましたが、誰かが見積もりアイテム(Mage_Sales_Model_Quote_Item)と見積もりアドレスアイテム(Mage_Sales_Model_Quote_Address_Item)の違いを説明できるかどうかを見たいと思っていましたか?Magento:Quote ItemとQuote Address Itemの概念の違いは何ですか?

私は、商品の数量、数量、および特別なオプションを含む顧客のカート内の広告申込情報(Mage_Sales_Model_Quote_Item - sales_flat_quote_item dbテーブルにマップされています)の概念を理解していると思います。私が理解していないのは、見積もりアドレスアイテムMage_Sales_Model_Quote_Address_Item - sales_flat_quote_address_item dbテーブルにマップされたもの)がのためのものです。私はそれに関連付けられているアドレスがあることがわかりますが、一体何のためですか?私はそれがマルチアドレス配送(私が一度も使用していない)と関係があるかもしれないと想像することができますが、それは野生の推測です。

2番目の質問(実際にはこの質問の全体の理由:/)では、Quote Itemsを扱うカスタムモジュールがQuote Address Itemを安全に無視できる場合がありますか?

答えて

7

各項目は、私はこの前に対処してきた別のアドレスに

+1

その場合、quote_itemのデータの大部分がこのテーブルにクローンされている理由は何ですか? quote_addressのオプションのaddress_idフィールドのように見えますが、同じ問題が解決されました。 –

+1

@Joseph。完全にあなたと同意します。そのすべてのデータが複製されていることを迷惑に思っています...また、ワンページのチェックアウトだけを使用するショップでさえ、これの背後にある推論を知ってうれしいですが、まあまあです。 – shaune

11

をマップする必要があるとして、「複数のアドレスへの船」に関連し、その。

基本的には、あなたがそれを記述したものです。これはカート内の広告申込情報をすべての詳細で表したものです。

引用アドレス項目に関しては、引用項目オブジェクトへの参照、アドレスオブジェクトへの参照、およびこの特定のアドレスに出荷される見積もり項目のサブセット数量を含む単なるオブジェクトです(しかし、それらは無用に引用項目からすべてを複製します)。

複数チェックアウトの場合、いくつかのMagento Orderオブジェクトを作成するために使用される見積もりアドレス項目です(各注文は、見積もり項目のサブセットとは別個の注文です)。

もちろん、これは頑丈なデザインです。見積もりアイテムのデータを保存して住所IDフィールドを追加し、「見積もり住所アイテム」の概念を完全に削除した方が良いでしょう。過度の正規化のケースに似ているように見える。

カートを混乱させたいコードは、1ページのチェックアウトのみを扱う場合(そしてマルチシッピングが無効な場合)、引用アドレス項目を無視することができます。

多点チェックアウトでも変更が正しく表示されるようにするには、引用アドレス項目を混乱させる必要があります(これらの領域のコードはかなり醜いです)。

+1

非常に良い答え。私はMagentoの背後にあるいくつかのコンセプトを理解しようとしており、これは読むのに非常に便利でした。 – clime

+0

@Raif atef nice explain –

関連する問題