2012-02-14 36 views
6

Tôi có nghi ngờ về cách báo giá và đơn đặt hàng đang được gọi trong phương thức thanh toán. Những gì tôi biết là Trích dẫn là một tập hợp các sản phẩm hoặc dịch vụ được cung cấp. Trong Magento Dữ liệu trích dẫn được tạo ngay trước khi nhấp vào nút Đặt hàng của Onepage Checkout. Sau khi Order được đặt, dữ liệu Order được tạo trong Magento. Hóa đơn đến bên cạnh Đặt hàng nếu Đơn đặt hàng được xác nhận.Magento - Sự khác biệt giữa Báo giá và Đơn hàng

Nhưng tôi đã tự hỏi tại sao các lớp Mage_Payment_Model_Method_Abstract trong Validate Phương pháp kiểm tra Thông tin lớp Instance nếu nó là một thể hiện của Mage_Sales_Model_Order_Payment mất getOrder() khác mất getQuote()

Tôi không rõ ràng với điều này. Liệu các Validate() chức năng được gọi là hai thời gian i.e lần đầu tiên khi báo giá được tạo ra và lần thứ hai khi Order được tạo ra HOẶC hiện phương thức thanh toán lớp chính nó được gọi là hai lần.

Hãy làm rõ sự nhầm lẫn của tôi.

/** 
     * 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; 
     } 

Trả lời

11

Trích dẫn trong Magento về cơ bản là đơn đặt hàng chưa được đặt. Nó chứa các sản phẩm (giỏ mua hàng), địa chỉ và phương thức thanh toán/giao hàng. Nó được tạo ngay sau khi bạn thêm một mục vào giỏ hàng. Trong quá trình thanh toán, dữ liệu thanh toán và giao hàng được thêm vào báo giá. Cuối cùng, khi người dùng nhấp vào đặt hàng, báo giá được chuyển đổi thành đơn đặt hàng.

Để trả lời câu hỏi của bạn về xác thực thanh toán: Phương thức thanh toán được bao gồm trong báo giá cũng như thứ tự và được xác thực ở cả hai nơi. Phương thức thanh toán có thể bị hạn chế ở một số quốc gia nhất định, do đó, trong phương thức xác thực, phương thức thanh toán cho báo giá sẽ xác thực quốc gia báo giá và phương thức thanh toán cho đơn đặt hàng sẽ xác thực quốc gia đặt hàng.

Các vấn đề liên quan