2012-02-14 19 views
6

Ödeme yönteminde tekliflerin ve siparişlerin nasıl çağrıldığına dair bir şüphem var. Bildiğim, bir teklifin sunulan bir dizi ürün veya hizmet olmasıdır. Magento'da Alıntı Verileri, Onepage Checkout'un Sipariş Ver düğmesini tıklatmadan hemen önce oluşturulur. Sipariş verildikten sonra Sipariş verileri Magento'da oluşturulur. Sipariş onaylandığında Fatura Siparişin yanında gelir.Magento - Alıntı ve Sipariş Arasındaki Fark

Ama Mage_Sales_Model_Order_Payment örneğidir getOrder almak ise validate Yönteminde Sınıf Mage_Payment_Model_Method_Abstract Bilgisi sınıf Örneği denetler neden merak ediyorum() else

Ben bu konuda net değilim() getquote alır. Validate() işlevi iki kez çağrılırsa, ilk kez Alıntı oluşturulduğunda ve Sipariş oluşturulduğunda ikinci kez VEYA Ödeme Yöntemi Sınıfının kendisi iki kez çağrılır.

Lütfen karışıklığımı netleştirin.

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

cevap

11

Magento'daki bir alıntı, temel olarak henüz yerleştirilmemiş bir sipariştir. Ürün kalemlerini (alışveriş sepeti), adresleri ve ödeme/gönderim yöntemlerini içerir. Bir öğeyi sepete eklediğiniz anda oluşturulmuştur. Ödeme sırasında teklife fatura ve gönderim verileri eklenir. Son olarak, kullanıcı yer siparişini tıkladığında, teklif bir siparişe dönüştürülür.

Ödeme doğrulama ile ilgili sorunuzu yanıtlamak için: Ödeme yöntemi teklifin yanı sıra siparişe eklenmiş ve her iki yerde de doğrulanmıştır. Bir ödeme yöntemi, belirli ülkelerle sınırlı olabilir, bu nedenle, validate yönteminde, bir teklif için bir ödeme yöntemi, teklif ülkesini doğrular ve sipariş için bir ödeme yöntemi, sipariş ülkesini doğrular.