[英]Magento - Difference between Quote and Order
我对如何在付款方式中调用报价和订单表示怀疑。 我所知道的是,Quote是一组提供的产品或服务。 在Magento引用数据是在单击Onepage Checkout的下订单按钮之前创建的。 下订单后,在Magento中创建订单数据。 如果确认订单,则订单旁边有发票。
但我想知道为什么验证方法中的类Mage_Payment_Model_Method_Abstract检查Info类实例是否是Mage_Sales_Model_Order_Payment的实例取getOrder()否则取getQuote()
我不清楚这一点。 Validate()函数是否被调用两次,即第一次创建Quote时,第二次是Order创建时,或者Payment Method Class本身被调用两次。
请澄清我的困惑。
/**
* 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中的一个引用基本上是一个尚未放置的订单。 它包含产品项目(购物车),地址和付款/运输方式。 只要您将商品添加到购物车,就会创建它。 结账时,计费和发货数据会添加到报价中。 最后,当用户点击下订单时,报价将转换为订单。
要回答有关付款验证的问题:付款方式包含在报价和订单中,并在两个地方进行验证。 付款方式可能仅限于某些国家/地区,因此在验证方法中,报价的付款方式将验证报价国家/地区,订单的付款方式将验证订单国家/地区。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.