Overview

Packages

  • currencysymbol
  • MAbout
  • Mage
    • Admin
    • Adminhtml
    • AdminNotification
    • Api
    • Api2
    • Authorizenet
    • Backup
    • Bundle
    • Captcha
    • Catalog
    • CatalogIndex
    • CatalogInventory
    • CatalogRule
    • CatalogSearch
    • Centinel
    • Checkout
    • Cms
    • Compiler
    • Connect
    • Contacts
    • Core
    • Cron
    • CurrencySymbol
    • Customer
    • Dataflow
    • Directory
    • DirtectPost
    • Downloadable
    • Eav
    • GiftMessage
    • GoogleAnalytics
    • GoogleBase
    • GoogleCheckout
    • ImportExport
    • Index
    • Install
    • Log
    • Media
    • Newsletter
    • Oauth
    • Page
    • PageCache
    • Paygate
    • Payment
    • Paypal
    • PaypalUk
    • Persistent
    • Poll
    • ProductAlert
    • Rating
    • Reports
    • Review
    • Rss
    • Rule
    • Sales
    • SalesRule
    • Sedfriend
    • Sendfriend
    • Shipping
    • Sitemap
    • Tag
    • Tax
    • Usa
    • Weee
    • Widget
    • Wishlist
    • XmlConnect
  • None
  • Phoenix
    • Moneybookers
  • PHP
  • Zend
    • Date
    • Mime
    • XmlRpc

Classes

  • Mage_XmlConnect_Adminhtml_MobileController
  • Mage_XmlConnect_Block_Adminhtml_History
  • Mage_XmlConnect_Block_Adminhtml_History_Grid
  • Mage_XmlConnect_Block_Adminhtml_Mobile
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Form
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Submission
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Cache
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Content
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Accordion
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Accordion_Images
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Accordion_Tabs
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Accordion_Themes
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Preview
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Design_Themes
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Flurryanalytics
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_General
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Notification
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Payment
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Settings
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Social
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tab_Submission_History
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Edit_Tabs
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Addrow
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Color
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Country
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Datetime
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Font
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Image
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Page
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Tabs
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Form_Element_Theme
  • Mage_Xmlconnect_Block_Adminhtml_Mobile_Grid
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Grid_Renderer_Bool
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Grid_Renderer_Type
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Preview_Content
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Preview_Tabitems
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Form
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Renderer_Country_Androidmarket
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Renderer_Country_Istore
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Tab_Container
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Tab_Container_Submission
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Submission_Tabs
  • Mage_XmlConnect_Block_Adminhtml_Mobile_Widget_Form
  • Mage_XmlConnect_Block_Adminhtml_Queue
  • Mage_XmlConnect_Block_Adminhtml_Queue_Edit
  • Mage_XmlConnect_Block_Adminhtml_Queue_Edit_Form
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Action
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Application
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Id
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Msgtitle
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Pushtitle
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Status
  • Mage_XmlConnect_Block_Adminhtml_Queue_Grid_Renderer_Template
  • Mage_XmlConnect_Block_Adminhtml_Template
  • Mage_XmlConnect_Block_Adminhtml_Template_Edit
  • Mage_XmlConnect_Block_Adminhtml_Template_Edit_Form
  • Mage_XmlConnect_Block_Adminhtml_Template_Grid
  • Mage_XmlConnect_Block_Adminhtml_Template_Grid_Renderer_Application
  • Mage_XmlConnect_Block_Adminhtml_Template_Grid_Renderer_Name
  • Mage_XmlConnect_Block_Adminhtml_Template_Preview
  • Mage_XmlConnect_Block_Adminhtml_Template_Preview_Form
  • Mage_XmlConnect_Block_Cart
  • Mage_XmlConnect_Block_Cart_Crosssell
  • Mage_XmlConnect_Block_Cart_Info
  • Mage_XmlConnect_Block_Cart_Item_Renderer
  • Mage_XmlConnect_Block_Cart_Item_Renderer_Configurable
  • Mage_XmlConnect_Block_Cart_Item_Renderer_Grouped
  • Mage_XmlConnect_Block_Cart_Paypal_Mecl_Details
  • Mage_XmlConnect_Block_Cart_Paypal_Mecl_Review
  • Mage_XmlConnect_Block_Cart_Paypal_Mecl_Shippingmethods
  • Mage_XmlConnect_Block_Cart_Paypal_Mep_Totals
  • Mage_XmlConnect_Block_Cart_Totals
  • Mage_XmlConnect_Block_Catalog
  • Mage_XmlConnect_Block_Catalog_Category
  • Mage_XmlConnect_Block_Catalog_Category_Info
  • Mage_XmlConnect_Block_Catalog_Filters
  • Mage_XmlConnect_Block_Catalog_Product
  • Mage_XmlConnect_Block_Catalog_Product_Attributes
  • Mage_XmlConnect_Block_Catalog_Product_Gallery
  • Mage_XmlConnect_Block_Catalog_Product_List
  • Mage_XmlConnect_Block_Catalog_Product_Options
  • Mage_XmlConnect_Block_Catalog_Product_Options_Bundle
  • Mage_XmlConnect_Block_Catalog_Product_Options_Configurable
  • Mage_XmlConnect_Block_Catalog_Product_Options_Giftcard
  • Mage_XmlConnect_Block_Catalog_Product_Options_Grouped
  • Mage_XmlConnect_Block_Catalog_Product_Options_Simple
  • Mage_XmlConnect_Block_Catalog_Product_Options_Virtual
  • Mage_XmlConnect_Block_Catalog_Product_Price
  • Mage_XmlConnect_Block_Catalog_Product_Price_Bundle
  • Mage_XmlConnect_Block_Catalog_Product_Price_Default
  • Mage_XmlConnect_Block_Catalog_Product_Price_Giftcard
  • Mage_XmlConnect_Block_Catalog_Product_Related
  • Mage_XmlConnect_Block_Catalog_Product_Review
  • Mage_XmlConnect_Block_Catalog_Product_Review_List
  • Mage_XmlConnect_Block_Catalog_Search
  • Mage_XmlConnect_Block_Catalog_Search_Suggest
  • Mage_XmlConnect_Block_Checkout_Address_Billing
  • Mage_XmlConnect_Block_Checkout_Address_Form
  • Mage_XmlConnect_Block_Checkout_Address_Shipping
  • Mage_XmlConnect_Block_Checkout_Agreements
  • Mage_XmlConnect_Block_Checkout_Order_Review
  • Mage_XmlConnect_Block_Checkout_Order_Review_Info
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Authorizenet
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Ccsave
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Checkmo
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Authorizenet
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Ccsave
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Checkmo
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Free
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Paypal_Abstract
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Paypal_Express
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Paypal_Mecl
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Pbridge_Authorizenet
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Pbridge_Paypal_Direct
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Pbridge_Paypaluk_Direct
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Pbridge_Verisign
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Info_Purchaseorder
  • Mage_XmlConnect_Block_Checkout_Payment_Method_List
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Paypal_Direct
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Paypal_Payflow
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Abstract
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Authorizenet
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Paypal
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Paypaluk
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Pbridge_Verisign
  • Mage_XmlConnect_Block_Checkout_Payment_Method_Purchaseorder
  • Mage_XmlConnect_Block_Checkout_Pbridge_Result
  • Mage_XmlConnect_Block_Checkout_Shipping_Method_Available
  • Mage_XmlConnect_Block_Cms_Page
  • Mage_XmlConnect_Block_Configuration
  • Mage_XmlConnect_Block_Customer_Address_Form
  • Mage_XmlConnect_Block_Customer_Address_List
  • Mage_XmlConnect_Block_Customer_Form
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Boolean
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Date
  • Mage_XmlConnect_Block_Customer_Form_Renderer_File
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Image
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Multiline
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Multiselect
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Select
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Text
  • Mage_XmlConnect_Block_Customer_Form_Renderer_Textarea
  • Mage_XmlConnect_Block_Customer_GiftcardCheck
  • Mage_XmlConnect_Block_Customer_Order_Details
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Bundle
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Default
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Downloadable
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Giftcard
  • Mage_XmlConnect_Block_Customer_Order_Item_Renderer_Grouped
  • Mage_XmlConnect_Block_Customer_Order_Items
  • Mage_XmlConnect_Block_Customer_Order_List
  • Mage_XmlConnect_Block_Customer_Order_Totals
  • Mage_XmlConnect_Block_Customer_Order_Totals_Customerbalance
  • Mage_XmlConnect_Block_Customer_Order_Totals_Customerbalance_Refunded
  • Mage_XmlConnect_Block_Customer_Order_Totals_Giftcards
  • Mage_XmlConnect_Block_Customer_Order_Totals_Tax
  • Mage_XmlConnect_Block_Customer_Storecredit
  • Mage_XmlConnect_Block_Home
  • Mage_XmlConnect_Block_Review_Form
  • Mage_XmlConnect_Block_Wishlist
  • Mage_XmlConnect_CartController
  • Mage_XmlConnect_CatalogController
  • Mage_XmlConnect_CheckoutController
  • Mage_XmlConnect_CmsController
  • Mage_XmlConnect_ConfigurationController
  • Mage_XmlConnect_Controller_Action
  • Mage_XmlConnect_CustomerController
  • Mage_XmlConnect_Helper_Android
  • Mage_XmlConnect_Helper_Catalog_Category_Image
  • Mage_XmlConnect_Helper_Customer_Form_Renderer
  • Mage_XmlConnect_Helper_Customer_Order
  • Mage_XmlConnect_Helper_Data
  • Mage_XmlConnect_Helper_Image
  • Mage_XmlConnect_Helper_Ipad
  • Mage_XmlConnect_Helper_Iphone
  • Mage_XmlConnect_Helper_Theme
  • Mage_XmlConnect_IndexController
  • Mage_XmlConnect_Model_Adminhtml_System_Config_Backend_Baseurl
  • Mage_XmlConnect_Model_Adminhtml_System_Config_Backend_Currency_Default
  • Mage_XmlConnect_Model_Application
  • Mage_XmlConnect_Model_Catalog_Category_Image
  • Mage_XmlConnect_Model_ConfigData
  • Mage_XmlConnect_Model_History
  • Mage_XmlConnect_Model_Mysql4_Application
  • Mage_XmlConnect_Model_Mysql4_Application_Collection
  • Mage_XmlConnect_Model_Mysql4_Cms_Page_Collection
  • Mage_XmlConnect_Model_Mysql4_ConfigData
  • Mage_XmlConnect_Model_Mysql4_ConfigData_Collection
  • Mage_XmlConnect_Model_Mysql4_Filter_Collection
  • Mage_XmlConnect_Model_Mysql4_History
  • Mage_XmlConnect_Model_Mysql4_History_Collection
  • Mage_XmlConnect_Model_Mysql4_Queue
  • Mage_XmlConnect_Model_Mysql4_Queue_Collection
  • Mage_XmlConnect_Model_Mysql4_Setup
  • Mage_XmlConnect_Model_Mysql4_Template
  • Mage_XmlConnect_Model_Mysql4_Template_Collection
  • Mage_XmlConnect_Model_Observer
  • Mage_XmlConnect_Model_Payment_Method_Paypal_Config
  • Mage_XmlConnect_Model_Payment_Method_Paypal_Mecl
  • Mage_XmlConnect_Model_Payment_Method_Paypal_Mep
  • Mage_XmlConnect_Model_Paypal_Mecl_Checkout
  • Mage_XmlConnect_Model_Paypal_Mep_Checkout
  • Mage_XmlConnect_Model_Preview_Abstract
  • Mage_XmlConnect_Model_Preview_Android
  • Mage_XmlConnect_Model_Preview_Ipad
  • Mage_XmlConnect_Model_Preview_Iphone
  • Mage_XmlConnect_Model_Queue
  • Mage_XmlConnect_Model_Resource_Application
  • Mage_XmlConnect_Model_Resource_Application_Collection
  • Mage_XmlConnect_Model_Resource_Cms_Page_Collection
  • Mage_XmlConnect_Model_Resource_ConfigData
  • Mage_XmlConnect_Model_Resource_ConfigData_Collection
  • Mage_XmlConnect_Model_Resource_Filter_Collection
  • Mage_XmlConnect_Model_Resource_History
  • Mage_XmlConnect_Model_Resource_History_Collection
  • Mage_XmlConnect_Model_Resource_Queue
  • Mage_XmlConnect_Model_Resource_Queue_Collection
  • Mage_XmlConnect_Model_Resource_Setup
  • Mage_XmlConnect_Model_Resource_Template
  • Mage_XmlConnect_Model_Resource_Template_Collection
  • Mage_XmlConnect_Model_Simplexml_Element
  • Mage_XmlConnect_Model_Simplexml_Form
  • Mage_XmlConnect_Model_Simplexml_Form_Abstract
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Abstract
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Checkbox
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Collection
  • Mage_XmlConnect_Model_Simplexml_Form_Element_CountryListSelect
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Date
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Email
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Fieldset
  • Mage_XmlConnect_Model_Simplexml_Form_Element_File
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Image
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Multiline
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Multiselect
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Select
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Text
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Textarea
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Validator
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Validator_Abstract
  • Mage_XmlConnect_Model_Simplexml_Form_Element_Validator_Rule
  • Mage_XmlConnect_Model_Tabs
  • Mage_XmlConnect_Model_Template
  • Mage_XmlConnect_Model_Theme
  • Mage_XmlConnect_Paypal_MeclController
  • Mage_XmlConnect_Paypal_MepController
  • Mage_XmlConnect_PbridgeController
  • Mage_XmlConnect_ReviewController
  • Mage_XmlConnect_WishlistController

Interfaces

  • Mage_XmlConnect_Model_Simplexml_Form_Element_Renderer_Interface
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Magento
  4:  *
  5:  * NOTICE OF LICENSE
  6:  *
  7:  * This source file is subject to the Open Software License (OSL 3.0)
  8:  * that is bundled with this package in the file LICENSE.txt.
  9:  * It is also available through the world-wide-web at this URL:
 10:  * http://opensource.org/licenses/osl-3.0.php
 11:  * If you did not receive a copy of the license and are unable to
 12:  * obtain it through the world-wide-web, please send an email
 13:  * to license@magentocommerce.com so we can send you a copy immediately.
 14:  *
 15:  * DISCLAIMER
 16:  *
 17:  * Do not edit or add to this file if you wish to upgrade Magento to newer
 18:  * versions in the future. If you wish to customize Magento for your
 19:  * needs please refer to http://www.magentocommerce.com for more information.
 20:  *
 21:  * @category    Mage
 22:  * @package     Mage_XmlConnect
 23:  * @copyright   Copyright (c) 2012 Magento Inc. (http://www.magentocommerce.com)
 24:  * @license     http://opensource.org/licenses/osl-3.0.php  Open Software License (OSL 3.0)
 25:  */
 26: 
 27: /**
 28:  * Wrapper that performs Paypal MEP and Checkout communication
 29:  *
 30:  * @category    Mage
 31:  * @package     Mage_XmlConnect
 32:  * @author      Magento Core Team <core@magentocommerce.com>
 33:  */
 34: class Mage_XmlConnect_Model_Paypal_Mep_Checkout
 35: {
 36:     /**#@+
 37:      * Keys for passthrough variables in sales/quote_payment and sales/order_payment
 38:      * Uses additional_information as storage
 39:      */
 40:     const PAYMENT_INFO_PAYER_EMAIL = 'paypal_payer_email';
 41:     const PAYMENT_INFO_TRANSACTION_ID = 'paypal_mep_checkout_transaction_id';
 42:     /**#@-*/
 43: 
 44:     /**
 45:      * Payment method type
 46:      *
 47:      * @var string
 48:      */
 49:     protected $_methodType = Mage_XmlConnect_Model_Payment_Method_Paypal_Mep::MEP_METHOD_CODE;
 50: 
 51:     /**
 52:      * Quote model
 53:      *
 54:      * @var Mage_Sales_Model_Quote
 55:      */
 56:     protected $_quote = null;
 57: 
 58:     /**
 59:      * Checkout session model
 60:      *
 61:      * @var Mage_Checkout_Model_Session
 62:      */
 63:     protected $_checkoutSession;
 64: 
 65:     /**
 66:      * XmlConnect default helper
 67:      *
 68:      * @var Mage_XmlConnect_Helper_Data
 69:      */
 70:     protected $_helper;
 71: 
 72:     /**
 73:      * Set quote instances
 74:      *
 75:      * @throws Mage_Core_Exception
 76:      * @param array $params
 77:      */
 78:     public function __construct($params = array())
 79:     {
 80:         $this->_checkoutSession = Mage::getSingleton('checkout/session');
 81:         if (isset($params['quote']) && $params['quote'] instanceof Mage_Sales_Model_Quote) {
 82:             $this->_quote = $params['quote'];
 83:         } else {
 84:             Mage::throwException(
 85:                 Mage::helper('xmlconnect')->__('Quote instance is required.')
 86:             );
 87:         }
 88:     }
 89: 
 90:     /**
 91:      * Prepare quote, reserve order ID for specified quote
 92:      *
 93:      * @return string
 94:      */
 95:     public function initCheckout()
 96:     {
 97:         $this->_quote->reserveOrderId()->save();
 98: 
 99:         /**
100:          * Reset multishipping flag before any manipulations with quote address
101:          * addAddress method for quote object related on this flag
102:          */
103:         if ($this->_quote->getIsMultiShipping()) {
104:             $this->_quote->setIsMultiShipping(false);
105:             $this->_quote->save();
106:         }
107: 
108:         /*
109:         * want to load the correct customer information by assigning to address
110:         * instead of just loading from sales/quote_address
111:         */
112:         $customer = Mage::getSingleton('customer/session')->getCustomer();
113:         if ($customer) {
114:             $this->_quote->assignCustomer($customer);
115:         }
116:         if (!Mage::getSingleton('customer/session')->isLoggedIn()
117:             && Mage::getSingleton('checkout/session')->getQuote()->isAllowedGuestCheckout()
118:         ) {
119:             $this->_prepareGuestQuote();
120:         }
121:         return $this->_quote->getReservedOrderId();
122:     }
123: 
124:     /**
125:      * Save shipping and billing address information to quote
126:      *
127:      * @param array $data
128:      * @return array
129:      */
130:     public function saveShipping($data)
131:     {
132:         if (empty($data)) {
133:             return array('error' => 1, 'message' => Mage::helper('xmlconnect')->__('Invalid data.'));
134:         }
135: 
136:         $address = $this->_quote->getBillingAddress();
137: 
138:         $this->_applyCountryWorkarounds($data);
139:         /** @var $model Mage_XmlConnect_Model_Application */
140:         $model = Mage::helper('xmlconnect')->getApplication();
141: 
142:         $paypalMepAllowSpecific = $model->getData('config_data[payment:paypalmep/allowspecific]');
143:         if ($paypalMepAllowSpecific !== null) {
144:             if ((int)$paypalMepAllowSpecific > 0) {
145:                 $allowedCountries = explode(',', $model->getData('config_data[payment][paypalmep/applicable]'));
146:                 $allowedCountries = array_map('trim', $allowedCountries);
147:                 if (!in_array(trim($data['country_id']), $allowedCountries)) {
148:                     return array(
149:                         'error' => 1,
150:                         'message' => Mage::helper('xmlconnect')->__('Buyer country is not allowed by store.')
151:                     );
152:                 }
153:             }
154:         }
155: 
156:         if (empty($data['firstname']) && empty($data['lastname'])) {
157:             if (Mage::getSingleton('customer/session')->isLoggedIn()) {
158:                 $customer = Mage::getSingleton('customer/session')->getCustomer();
159:                 $data['firstname'] = $customer->getFirstname();
160:                 $data['lastname'] = $customer->getLastname();
161:             } else {
162:                 $data['firstname'] = Mage::helper('xmlconnect')->__('Guest');
163:                 $data['lastname'] = Mage::helper('xmlconnect')->__('Guest');
164:             }
165:         }
166: 
167:         $address->addData($data);
168: 
169:         $this->_ignoreAddressValidation();
170: 
171:         $address->implodeStreetAddress();
172: 
173:         if (!$this->_quote->isVirtual()) {
174:             $billing = clone $address;
175:             $billing->unsAddressId()->unsAddressType();
176:             $shipping = $this->_quote->getShippingAddress();
177:             $shippingMethod = $shipping->getShippingMethod();
178:             $shipping->addData($billing->getData())->setSameAsBilling(1)->setShippingMethod($shippingMethod)
179:                 ->setCollectShippingRates(true);
180:         }
181: 
182:         $this->_quote->collectTotals()->save();
183:         return array();
184:     }
185: 
186:     /**
187:      * Specify quote shipping method
188:      *
189:      * @param string $shippingMethod
190:      * @return array
191:      */
192:     public function saveShippingMethod($shippingMethod)
193:     {
194:         if (empty($shippingMethod)) {
195:             return array('error' => 1, 'message' => Mage::helper('xmlconnect')->__('Invalid shipping method.'));
196:         }
197: 
198:         $rate = $this->_quote->getShippingAddress()->getShippingRateByCode($shippingMethod);
199:         if (!$rate) {
200:             return array('error' => 1, 'message' => Mage::helper('xmlconnect')->__('Invalid shipping method.'));
201:         }
202: 
203:         $shippingAddress = $this->_quote->getShippingAddress();
204:         if (!$this->_quote->getIsVirtual() && $shippingAddress) {
205:             if ($shippingMethod != $shippingAddress->getShippingMethod()) {
206:                 $this->_ignoreAddressValidation();
207:                 $this->_quote->getShippingAddress()->setShippingMethod($shippingMethod);
208:                 $this->_quote->collectTotals()->save();
209:             }
210:         }
211: 
212:         return array();
213:     }
214: 
215:     /**
216:      * Specify quote payment method
217:      *
218:      * @param array $data
219:      * @return array
220:      */
221:     public function savePayment($data)
222:     {
223:         if ($this->_quote->isVirtual()) {
224:             $this->_quote->getBillingAddress()->setPaymentMethod($this->_methodType);
225:         } else {
226:             $this->_quote->getShippingAddress()->setPaymentMethod($this->_methodType);
227:         }
228: 
229:         $payment = $this->_quote->getPayment();
230:         $data['method'] = $this->_methodType;
231:         $payment->importData($data);
232: 
233:         $email = isset($data['payer']) ? $data['payer'] : null;
234:         $payment->setAdditionalInformation(self::PAYMENT_INFO_PAYER_EMAIL, $email);
235:         $payment->setAdditionalInformation(
236:             self::PAYMENT_INFO_TRANSACTION_ID, isset($data['transaction_id']) ? $data['transaction_id'] : null
237:         );
238:         $this->_quote->setCustomerEmail($email);
239: 
240:         $this->_quote->collectTotals()->save();
241: 
242:         return array();
243:     }
244: 
245:     /**
246:      * Place the order when customer returned from paypal
247:      * Until this moment all quote data must be valid
248:      *
249:      * @return array
250:      */
251:     public function saveOrder()
252:     {
253:         $this->_ignoreAddressValidation();
254: 
255:         $order = Mage::getModel('sales/service_quote', $this->_quote)->submit();
256:         $this->_quote->save();
257: 
258:         $this->_getCheckoutSession()->clear();
259: 
260:         /**
261:          * Prepare session to success or cancellation page
262:          */
263:         $quoteId = $this->_quote->getId();
264:         $this->_getCheckoutSession()->setLastQuoteId($quoteId)->setLastSuccessQuoteId($quoteId)
265:             ->setLastOrderId($order->getId())->setLastRealOrderId($order->getIncrementId());
266: 
267:         if ($order->getState() == Mage_Sales_Model_Order::STATE_PROCESSING
268:             && Mage::getSingleton('customer/session')->isLoggedIn()
269:         ) {
270:             try {
271:                 $order->sendNewOrderEmail();
272:             } catch (Exception $e) {
273:                 Mage::logException($e);
274:             }
275:         }
276: 
277:         return array();
278:     }
279: 
280:     /**
281:      * Get last order increment id by order id
282:      *
283:      * @return string
284:      */
285:     public function getLastOrderId()
286:     {
287:         $lastId  = $this->_getCheckoutSession()->getLastOrderId();
288:         $orderId = false;
289:         if ($lastId) {
290:             $order = Mage::getModel('sales/order');
291:             $order->load($lastId);
292:             $orderId = $order->getIncrementId();
293:         }
294:         return $orderId;
295:     }
296: 
297:     /**
298:      * Make sure addresses will be saved without validation errors
299:      *
300:      * @return null
301:      */
302:     protected function _ignoreAddressValidation()
303:     {
304:         $this->_quote->getBillingAddress()->setShouldIgnoreValidation(true);
305:         if (!$this->_quote->getIsVirtual()) {
306:             $this->_quote->getShippingAddress()->setShouldIgnoreValidation(true);
307:         }
308:     }
309: 
310:     /**
311:      * Get frontend checkout session object
312:      *
313:      * @return Mage_Checkout_Model_Session
314:      */
315:     protected function _getCheckoutSession()
316:     {
317:         return $this->_checkoutSession;
318:     }
319: 
320:     /**
321:      * Prepare quote for guest checkout order submit
322:      *
323:      * @return Mage_XmlConnect_Model_Paypal_Mep_Checkout
324:      */
325:     protected function _prepareGuestQuote()
326:     {
327:         $quote = $this->_quote;
328:         $quote->setCustomerId(null)->setCustomerIsGuest(true)
329:             ->setCustomerGroupId(Mage_Customer_Model_Group::NOT_LOGGED_IN_ID);
330:         return $this;
331:     }
332: 
333:     /**
334:      * Adopt specified request array from PayPal
335:      *
336:      * @param array $request
337:      * @return null
338:      */
339:     protected function _applyCountryWorkarounds(&$request)
340:     {
341:         $request['country_id'] = isset($request['country_id']) ? trim($request['country_id']) : null;
342:         if (empty($request['country_id'])) {
343:             $request['country_id'] = strtoupper(Mage::getStoreConfig('general/country/default'));
344:         } else {
345:             $request['country_id'] = strtoupper($request['country_id']);
346:         }
347:     }
348: }
349: 
Magento 1.7.0.2 API documentation generated by ApiGen 2.8.0