У меня есть сомнения относительно того, как котировки и заказы вызывается в методе оплаты. Я знаю, что Цитата – это набор предлагаемых продуктов или услуг. В magento Цитата данные создаются непосредственно перед нажатием кнопки «Заказать заказ» Onepage Checkout. После размещения заказа Данные заказа создаются в Magento. Счёт-фактура поставляется с заказом, если заказ подтвержден.
Но мне было интересно, почему класс Mage_Payment_Model_Method_Abstract в проверке метода проверяет экземпляр Info-класса, если он является экземпляром Mage_Sales_Model_Order_Payment, принимает getOrder () else take getQuote ()
Я не совсем понимаю это. Вызывает ли функция 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; }
Цитата в Magento – это в основном заказ, который еще не был размещен. Он содержит товарные позиции (корзину покупок), адреса и способы оплаты / доставки. Он создается, как только вы добавляете товар в корзину. Во время проверки в котировку добавляются данные биллинга и доставки. Наконец, когда пользователь нажимает на место, заказ преобразуется в заказ.
Чтобы ответить на ваш вопрос об утверждении оплаты: Способ оплаты включается в котировку, а также заказ и подтверждается в обоих местах. Способ оплаты может быть ограничен определенными странами, поэтому в методе проверки метод оплаты для цитаты будет проверять страну с котировками, а метод оплаты для заказа будет проверять страну заказа.