2014-09-12 56 views
0

我有一個Magento擴展,它應該向PayPal順序添加捐贈,但它在Model/Observer.php中引發錯誤。這是人們完成PayPal並被重定向回我的網站。顯示此錯誤時的URL爲/ paypal/express/placeOrder /。錯誤是Fatal error: Call to a member function getBaseDonation() on a non-object in [path]/Model/Observer.php on line 215。 215行在if(!$ donation)內{Magento擴展錯誤:調用非對象上的成員函數

public function addPaypalItem($observer) 
    { 
     $cart = $observer->getEvent()->getPaypalCart(); 
     $quote = $cart->getSalesEntity(); 

     $donation = $quote->getBaseDonation(); 
     if (!$donation) { 
      $donation = $quote->getShippingAddress()->getBaseDonation() ? $quote->getShippingAddress()->getBaseDonation() : $quote->getBillingAddress()->getBaseDonation(); 
     } 

     if ($donation > 0) { 
      $cart->addItem(
       Mage::helper('donations')->__('Donation'), 
       1, 
       $donation 
      ); 
     } 

     return $this; 
    } 

如何解決這個非對象問題?謝謝!

回答

0

首先,我認爲你應該重新檢查getShippingAddress()函數以確保它在我們的工作流程中返回一個對象。

如果是,請檢查您的擴展是否已覆蓋ShippingAddress對象以輸入BaseDonation值。

$quote->getBaseDonation() is different from $quote->getShippingAddress()->getBaseDonation(); 
相關問題