2012-02-14 16 views
6

私は、お支払い方法で見積もりと注文がどのように呼び出されているか疑いがあります。私が知っていることは、見積もりが提供された一連の製品またはサービスであるということです。マゼンタで見積もりデータは、[ページのチェックアウト]の[注文ボタン]をクリックする直前に作成されます。注文が行われた後、注文データがMagentoで作成されます。注文が確認された場合、請求書は注文の横に表示されます。Magento - 見積もりと注文の差

しかし、それはMage_Sales_Model_Order_PaymentのインスタンスがgetOrderを取るであるかどうかを検証メソッドのクラスMage_Payment_Model_Method_Abstractは、情報クラスのインスタンスをチェックし、なぜ私が思っていた()他の

私はこれではっきりしていないよ()たgetQuoteを取ります。 Validate()関数は2回呼び出されます。つまり、Quoteが初めて作成され、2番目にOrderが作成されたとき、またはPayment Method Class自体が2回呼び出されたときです。

私の混乱を明確にしてください。

/** 
     * Validate payment method information object 
     * 
     * @param Varien_Object $info 
     * @return Mage_Payment_Model_Abstract 
     */ 
     public function validate() 
     { 
      /** 
       * to validate paymene method is allowed for billing country or not 
       */ 
      $paymentInfo = $this->getInfoInstance(); 
      if ($paymentInfo instanceof Mage_Sales_Model_Order_Payment) { 
       $billingCountry = $paymentInfo->getOrder()->getBillingAddress()->getCountryId(); 
      } else { 
       $billingCountry = $paymentInfo->getQuote()->getBillingAddress()->getCountryId(); 
      } 
      if (!$this->canUseForCountry($billingCountry)) { 
       Mage::throwException($this->_getHelper()->__('Selected payment type is not allowed for billing country.')); 
      } 
      return $this; 
     } 

答えて

11

マゼンタの引用符は、基本的にまだ配置されていない順序です。商品アイテム(ショッピングカート)、住所、お支払い方法、配送方法が含まれています。カートに商品を追加するとすぐに作成されます。チェックアウト中に、請求および出荷データが見積に追加されます。最後に、ユーザーがプレースオーダーをクリックすると、見積もりがオーダーに変換されます。

お支払いの確認に関するご質問:お支払い方法は、お見積もりと注文に含まれ、両方の場所で有効性が確認されています。支払い方法は特定の国に限定されている可能性があります。したがって、確認方法では、見積もりの​​支払方法によって見積り国が確認され、注文の支払方法によって注文国が確認されます。

関連する問題