我對如何在報價方法中調用報價和訂單有疑問。我所知道的是報價是一系列提供的產品或服務。在magento中,報價數據是在單擊Onepage Checkout的下訂單按鈕之前創建的。訂單下達後在Magento中創建訂單數據。如果訂單已確認,則發票將顯示在訂單旁邊。Magento - 報價和訂單之間的區別
但我想知道爲什麼類Mage_Payment_Model_Method_Abstract在validate方法檢查信息類的實例,如果它是Mage_Sales_Model_Order_Payment的一個實例採取getOrder()其他需要的getQuote()
我不隨本清。是否兩次調用Validate()函數,即第一次創建Quote時,第二次創建Order時,或者是兩次調用Payment Method類本身。
請澄清我的困惑。
/**
* 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;
}