У меня есть сомнения по поводу того, как котировки и заказы вызываются в способе оплаты.Что я знаю, так это то, что цитата - это набор предлагаемых продуктов или услуг.В magento Цитата данные создаются непосредственно перед нажатием кнопки Разместить заказ на Onepage Checkout.После размещения заказа данные заказа создаются в Magento.Счет-фактура следует за заказом, если заказ подтвержден.
Но мне было интересно, почему класс Mage_Payment_Model_Method_Abstract в методе validate проверяет экземпляр класса Info, если он является экземпляром Mage_Sales_Model_Order_Payment take getOrder (), иначе take get * Quote ()
1004 * Мне не ясно с этим.Вызывается ли функция Validate () два раза, т. Е. Первый раз, когда создается цитата, и второй раз, когда создается ордер, ИЛИ сам ли метод метода оплаты вызывается два раза.
Пожалуйста, разъясните мою путаницу.
/**
* 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;
}