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_Adminhtml_AjaxController
  • Mage_Adminhtml_Api_RoleController
  • Mage_Adminhtml_Api_UserController
  • Mage_Adminhtml_Block_Abstract
  • Mage_Adminhtml_Block_Api_Buttons
  • Mage_Adminhtml_Block_Api_Editroles
  • Mage_Adminhtml_Block_Api_Edituser
  • Mage_Adminhtml_Block_Api_Grid_Role
  • Mage_Adminhtml_Block_Api_Role
  • Mage_Adminhtml_Block_Api_Role_Grid_User
  • Mage_Adminhtml_Block_Api_Roles
  • Mage_Adminhtml_Block_Api_Tab_Roleinfo
  • Mage_Adminhtml_Block_Api_Tab_Rolesedit
  • Mage_Adminhtml_Block_Api_Tab_Rolesusers
  • Mage_Adminhtml_Block_Api_Tab_Userroles
  • Mage_Adminhtml_Block_Api_User
  • Mage_Adminhtml_Block_Api_User_Edit
  • Mage_Adminhtml_Block_Api_User_Edit_Form
  • Mage_Adminhtml_Block_Api_User_Edit_Tab_Main
  • Mage_Adminhtml_Block_Api_User_Edit_Tab_Roles
  • Mage_Adminhtml_Block_Api_User_Edit_Tabs
  • Mage_Adminhtml_Block_Api_User_Grid
  • Mage_Adminhtml_Block_Api_Users
  • Mage_Adminhtml_Block_Backup
  • Mage_Adminhtml_Block_Backup_Dialogs
  • Mage_Adminhtml_Block_Backup_Grid
  • Mage_Adminhtml_Block_Cache
  • Mage_Adminhtml_Block_Cache_Additional
  • Mage_Adminhtml_Block_Cache_Grid
  • Mage_Adminhtml_Block_Cache_Notifications
  • Mage_Adminhtml_Block_Catalog
  • Mage_Adminhtml_Block_Catalog_Category_Abstract
  • Mage_Adminhtml_Block_Catalog_Category_Checkboxes_Tree
  • Mage_Adminhtml_Block_Catalog_Category_Edit
  • Mage_Adminhtml_Block_Catalog_Category_Edit_Form
  • Mage_Adminhtml_Block_Catalog_Category_Helper_Image
  • Mage_Adminhtml_Block_Catalog_Category_Helper_Pricestep
  • Mage_Adminhtml_Block_Catalog_Category_Helper_Sortby_Available
  • Mage_Adminhtml_Block_Catalog_Category_Helper_Sortby_Default
  • Mage_Adminhtml_Block_Catalog_Category_Tab_Attributes
  • Mage_Adminhtml_Block_Catalog_Category_Tab_Design
  • Mage_Adminhtml_Block_Catalog_Category_Tab_General
  • Mage_Adminhtml_Block_Catalog_Category_Tab_Product
  • Mage_Adminhtml_Block_Catalog_Category_Tabs
  • Mage_Adminhtml_Block_Catalog_Category_Tree
  • Mage_Adminhtml_Block_Catalog_Category_Widget_Chooser
  • Mage_Adminhtml_Block_Catalog_Form
  • Mage_Adminhtml_Block_Catalog_Form_Renderer_Attribute_Urlkey
  • Mage_Adminhtml_Block_Catalog_Form_Renderer_Config_DateFieldsOrder
  • Mage_Adminhtml_Block_Catalog_Form_Renderer_Config_YearRange
  • Mage_Adminhtml_Block_Catalog_Form_Renderer_Fieldset_Element
  • Mage_Adminhtml_Block_Catalog_Helper_Form_Wysiwyg
  • Mage_Adminhtml_Block_Catalog_Helper_Form_Wysiwyg_Content
  • Mage_Adminhtml_Block_Catalog_Product
  • Mage_Adminhtml_Block_Catalog_Product_Attribute
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Edit
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Edit_Form
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Edit_Tab_Front
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Edit_Tab_Main
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Edit_Tab_Options
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Edit_Tab_System
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Edit_Tabs
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Grid
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_New_Product_Attributes
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_New_Product_Created
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Set_Grid
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Set_Main
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Set_Main_Formattribute
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Set_Main_Formgroup
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Set_Main_Formset
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Set_Main_Tree_Attribute
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Set_Main_Tree_Group
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Set_Toolbar_Add
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Set_Toolbar_Main
  • Mage_Adminhtml_Block_Catalog_Product_Attribute_Set_Toolbar_Main_Filter
  • Mage_Adminhtml_Block_Catalog_Product_Composite_Configure
  • Mage_Adminhtml_Block_Catalog_Product_Composite_Error
  • Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset
  • Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Configurable
  • Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Grouped
  • Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Options
  • Mage_Adminhtml_Block_Catalog_Product_Composite_Fieldset_Qty
  • Mage_Adminhtml_Block_Catalog_Product_Composite_Update_Result
  • Mage_Adminhtml_Block_Catalog_Product_Created
  • Mage_Adminhtml_Block_Catalog_Product_Edit
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Action_Attribute
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Action_Attribute_Tab_Attributes
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Action_Attribute_Tab_Inventory
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Action_Attribute_Tab_Websites
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Action_Attribute_Tabs
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Js
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Ajax_Serializer
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Alerts
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Alerts_Price
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Alerts_Stock
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Attributes
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Attributes_Create
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Categories
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Crosssell
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Inventory
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Options
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Options_Option
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Options_Type_Abstract
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Options_Type_Date
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Options_Type_File
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Options_Type_Select
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Options_Type_Text
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Price
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Price_Group
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Price_Group_Abstract
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Price_Recurring
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Price_Tier
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Related
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Reviews
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Settings
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Super_Config
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Super_Config_Grid
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Super_Config_Grid_Filter_Inventory
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Super_Config_Grid_Renderer_Checkbox
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Super_Config_Grid_Renderer_Inventory
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Super_Config_Simple
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Super_Group
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Super_Settings
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Tag
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Tag_Customer
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Upsell
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Websites
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs_Configurable
  • Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs_Grouped
  • Mage_Adminhtml_Block_Catalog_Product_Frontend_Product_Watermark
  • Mage_Adminhtml_Block_Catalog_Product_Grid
  • Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Apply
  • Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Boolean
  • Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Config
  • Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery
  • Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Gallery_Content
  • Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Image
  • Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Msrp_Enabled
  • Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Msrp_Price
  • Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Price
  • Mage_Adminhtml_Block_Catalog_Product_Helper_Form_Weight
  • Mage_Adminhtml_Block_Catalog_Product_Price
  • Mage_Adminhtml_Block_Catalog_Product_Widget_Chooser
  • Mage_Adminhtml_Block_Catalog_Product_Widget_Chooser_Container
  • Mage_Adminhtml_Block_Catalog_Search
  • Mage_Adminhtml_Block_Catalog_Search_Edit
  • Mage_Adminhtml_Block_Catalog_Search_Edit_Form
  • Mage_Adminhtml_Block_Catalog_Search_Grid
  • Mage_Adminhtml_Block_Checkout_Agreement
  • Mage_Adminhtml_Block_Checkout_Agreement_Edit
  • Mage_Adminhtml_Block_Checkout_Agreement_Edit_Form
  • Mage_Adminhtml_Block_Checkout_Agreement_Grid
  • Mage_Adminhtml_Block_Cms_Block
  • Mage_Adminhtml_Block_Cms_Block_Edit
  • Mage_Adminhtml_Block_Cms_Block_Edit_Form
  • Mage_Adminhtml_Block_Cms_Block_Grid
  • Mage_Adminhtml_Block_Cms_Block_Widget_Chooser
  • Mage_Adminhtml_Block_Cms_Page
  • Mage_Adminhtml_Block_Cms_Page_Edit
  • Mage_Adminhtml_Block_Cms_Page_Edit_Form
  • Mage_Adminhtml_Block_Cms_Page_Edit_Tab_Content
  • Mage_Adminhtml_Block_Cms_Page_Edit_Tab_Design
  • Mage_Adminhtml_Block_Cms_Page_Edit_Tab_Main
  • Mage_Adminhtml_Block_Cms_Page_Edit_Tab_Meta
  • Mage_Adminhtml_Block_Cms_Page_Edit_Tabs
  • Mage_Adminhtml_Block_Cms_Page_Grid
  • Mage_Adminhtml_Block_Cms_Page_Grid_Renderer_Action
  • Mage_Adminhtml_Block_Cms_Page_Widget_Chooser
  • Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content
  • Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content_Files
  • Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content_Newfolder
  • Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Content_Uploader
  • Mage_Adminhtml_Block_Cms_Wysiwyg_Images_Tree
  • Mage_Adminhtml_Block_Customer
  • Mage_Adminhtml_Block_Customer_Edit
  • Mage_Adminhtml_Block_Customer_Edit_Form
  • Mage_Adminhtml_Block_Customer_Edit_Renderer_Attribute_Group
  • Mage_Adminhtml_Block_Customer_Edit_Renderer_Newpass
  • Mage_Adminhtml_Block_Customer_Edit_Renderer_Region
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Account
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Addresses
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Cart
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Carts
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter_Grid
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter_Grid_Filter_Status
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter_Grid_Renderer_Action
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter_Grid_Renderer_Status
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Orders
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Reviews
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Tag
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Tags
  • Mage_Adminhtml_Block_Customer_Edit_Tab_View
  • Mage_Adminhtml_Block_Customer_Edit_Tab_View_Accordion
  • Mage_Adminhtml_Block_Customer_Edit_Tab_View_Cart
  • Mage_Adminhtml_Block_Customer_Edit_Tab_View_Grid_Renderer_Item
  • Mage_Adminhtml_Block_Customer_Edit_Tab_View_Orders
  • Mage_Adminhtml_Block_Customer_Edit_Tab_View_Sales
  • Mage_Adminhtml_Block_Customer_Edit_Tab_View_Wishlist
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Wishlist
  • Mage_Adminhtml_Block_Customer_Edit_Tab_Wishlist_Grid_Renderer_Description
  • Mage_Adminhtml_Block_Customer_Edit_Tabs
  • Mage_Adminhtml_Block_Customer_Form_Element_Boolean
  • Mage_Adminhtml_Block_Customer_Form_Element_File
  • Mage_Adminhtml_Block_Customer_Form_Element_Image
  • Mage_Adminhtml_Block_Customer_Grid
  • Mage_Adminhtml_Block_Customer_Grid_Filter_Country
  • Mage_Adminhtml_Block_Customer_Grid_Renderer_Multiaction
  • Mage_Adminhtml_Block_Customer_Group
  • Mage_Adminhtml_Block_Customer_Group_Edit
  • Mage_Adminhtml_Block_Customer_Group_Edit_Form
  • Mage_Adminhtml_Block_Customer_Group_Grid
  • Mage_Adminhtml_Block_Customer_Online
  • Mage_Adminhtml_Block_Customer_Online_Filter
  • Mage_Adminhtml_Block_Customer_Online_Grid
  • Mage_Adminhtml_Block_Customer_Online_Grid_Renderer_Ip
  • Mage_Adminhtml_Block_Customer_Online_Grid_Renderer_Type
  • Mage_Adminhtml_Block_Customer_Online_Grid_Renderer_Url
  • Mage_Adminhtml_Block_Customer_Sales_Order_Address_Form_Renderer_Vat
  • Mage_Adminhtml_Block_Customer_System_Config_Validatevat
  • Mage_Adminhtml_Block_Dashboard
  • Mage_Adminhtml_Block_Dashboard_Abstract
  • Mage_Adminhtml_Block_Dashboard_Bar
  • Mage_Adminhtml_Block_Dashboard_Diagrams
  • Mage_Adminhtml_Block_Dashboard_Graph
  • Mage_Adminhtml_Block_Dashboard_Grid
  • Mage_Adminhtml_Block_Dashboard_Grids
  • Mage_Adminhtml_Block_Dashboard_Orders_Grid
  • Mage_Adminhtml_Block_Dashboard_Sales
  • Mage_Adminhtml_Block_Dashboard_Searches_Last
  • Mage_Adminhtml_Block_Dashboard_Searches_Renderer_Searchquery
  • Mage_Adminhtml_Block_Dashboard_Searches_Top
  • Mage_Adminhtml_Block_Dashboard_Tab_Amounts
  • Mage_Adminhtml_Block_Dashboard_Tab_Customers_Most
  • Mage_Adminhtml_Block_Dashboard_Tab_Customers_Newest
  • Mage_Adminhtml_Block_Dashboard_Tab_Orders
  • Mage_Adminhtml_Block_Dashboard_Tab_Products_Ordered
  • Mage_Adminhtml_Block_Dashboard_Tab_Products_Viewed
  • Mage_Adminhtml_Block_Dashboard_Totals
  • Mage_Adminhtml_Block_Denied
  • Mage_Adminhtml_Block_Media_Editor
  • Mage_Adminhtml_Block_Media_Uploader
  • Mage_Adminhtml_Block_Messages
  • Mage_Adminhtml_Block_Newsletter_Problem
  • Mage_Adminhtml_Block_Newsletter_Problem_Grid
  • Mage_Adminhtml_Block_Newsletter_Problem_Grid_Filter_Checkbox
  • Mage_Adminhtml_Block_Newsletter_Problem_Grid_Renderer_Checkbox
  • Mage_Adminhtml_Block_Newsletter_Queue
  • Mage_Adminhtml_Block_Newsletter_Queue_Edit
  • Mage_Adminhtml_Block_Newsletter_Queue_Edit_Form
  • Mage_Adminhtml_Block_Newsletter_Queue_Grid
  • Mage_Adminhtml_Block_Newsletter_Queue_Grid_Renderer_Action
  • Mage_Adminhtml_Block_Newsletter_Queue_Preview
  • Mage_Adminhtml_Block_Newsletter_Queue_Preview_Form
  • Mage_Adminhtml_Block_Newsletter_Subscriber
  • Mage_Adminhtml_Block_Newsletter_Subscriber_Grid
  • Mage_Adminhtml_Block_Newsletter_Subscriber_Grid_Filter_Checkbox
  • Mage_Adminhtml_Block_Newsletter_Subscriber_Grid_Filter_Website
  • Mage_Adminhtml_Block_Newsletter_Subscriber_Grid_Renderer_Checkbox
  • Mage_Adminhtml_Block_Newsletter_Template
  • Mage_Adminhtml_Block_Newsletter_Template_Edit
  • Mage_Adminhtml_Block_Newsletter_Template_Edit_Form
  • Mage_Adminhtml_Block_Newsletter_Template_Grid
  • Mage_Adminhtml_Block_Newsletter_Template_Grid_Renderer_Action
  • Mage_Adminhtml_Block_Newsletter_Template_Grid_Renderer_Sender
  • Mage_Adminhtml_Block_Newsletter_Template_Preview
  • Mage_Adminhtml_Block_Newsletter_Template_Preview_Form
  • Mage_Adminhtml_Block_Notification_Baseurl
  • Mage_Adminhtml_Block_Notification_Grid
  • Mage_Adminhtml_Block_Notification_Grid_Renderer_Actions
  • Mage_Adminhtml_Block_Notification_Grid_Renderer_Notice
  • Mage_Adminhtml_Block_Notification_Grid_Renderer_Severity
  • Mage_Adminhtml_Block_Notification_Inbox
  • Mage_Adminhtml_Block_Notification_Security
  • Mage_Adminhtml_Block_Notification_Survey
  • Mage_Adminhtml_Block_Notification_Toolbar
  • Mage_Adminhtml_Block_Notification_Window
  • Mage_Adminhtml_Block_Page
  • Mage_Adminhtml_Block_Page_Footer
  • Mage_Adminhtml_Block_Page_Head
  • Mage_Adminhtml_Block_Page_Header
  • Mage_Adminhtml_Block_Page_Menu
  • Mage_Adminhtml_Block_Page_Notices
  • Mage_Adminhtml_Block_Permissions_Buttons
  • Mage_Adminhtml_Block_Permissions_Editroles
  • Mage_Adminhtml_Block_Permissions_Edituser
  • Mage_Adminhtml_Block_Permissions_Grid_Role
  • Mage_Adminhtml_Block_Permissions_Grid_User
  • Mage_Adminhtml_Block_Permissions_Role
  • Mage_Adminhtml_Block_Permissions_Role_Grid_User
  • Mage_Adminhtml_Block_Permissions_Roles
  • Mage_Adminhtml_Block_Permissions_Tab_Roleinfo
  • Mage_Adminhtml_Block_Permissions_Tab_Rolesedit
  • Mage_Adminhtml_Block_Permissions_Tab_Rolesusers
  • Mage_Adminhtml_Block_Permissions_Tab_Useredit
  • Mage_Adminhtml_Block_Permissions_Tab_Userroles
  • Mage_Adminhtml_Block_Permissions_User
  • Mage_Adminhtml_Block_Permissions_User_Edit
  • Mage_Adminhtml_Block_Permissions_User_Edit_Form
  • Mage_Adminhtml_Block_Permissions_User_Edit_Tab_Main
  • Mage_Adminhtml_Block_Permissions_User_Edit_Tab_Roles
  • Mage_Adminhtml_Block_Permissions_User_Edit_Tabs
  • Mage_Adminhtml_Block_Permissions_User_Grid
  • Mage_Adminhtml_Block_Permissions_UsernRoles
  • Mage_Adminhtml_Block_Permissions_Users
  • Mage_Adminhtml_Block_Poll_Answer_Edit
  • Mage_Adminhtml_Block_Poll_Answer_Edit_Form
  • Mage_Adminhtml_Block_Poll_Edit
  • Mage_Adminhtml_Block_Poll_Edit_Form
  • Mage_Adminhtml_Block_Poll_Edit_Tab_Answers
  • Mage_Adminhtml_Block_Poll_Edit_Tab_Answers_Form
  • Mage_Adminhtml_Block_Poll_Edit_Tab_Answers_Grid
  • Mage_Adminhtml_Block_Poll_Edit_Tab_Answers_List
  • Mage_Adminhtml_Block_Poll_Edit_Tab_Form
  • Mage_Adminhtml_Block_Poll_Edit_Tabs
  • Mage_Adminhtml_Block_Poll_Grid
  • Mage_Adminhtml_Block_Poll_Poll
  • Mage_Adminhtml_Block_Promo_Catalog
  • Mage_Adminhtml_Block_Promo_Catalog_Edit
  • Mage_Adminhtml_Block_Promo_Catalog_Edit_Form
  • Mage_Adminhtml_Block_Promo_Catalog_Edit_Js
  • Mage_Adminhtml_Block_Promo_Catalog_Edit_Tab_Actions
  • Mage_Adminhtml_Block_Promo_Catalog_Edit_Tab_Conditions
  • Mage_Adminhtml_Block_Promo_Catalog_Edit_Tab_Main
  • Mage_Adminhtml_Block_Promo_Catalog_Edit_Tabs
  • Mage_Adminhtml_Block_Promo_Catalog_Grid
  • Mage_Adminhtml_Block_Promo_Quote
  • Mage_Adminhtml_Block_Promo_Quote_Edit
  • Mage_Adminhtml_Block_Promo_Quote_Edit_Form
  • Mage_Adminhtml_Block_Promo_Quote_Edit_Tab_Actions
  • Mage_Adminhtml_Block_Promo_Quote_Edit_Tab_Conditions
  • Mage_Adminhtml_Block_Promo_Quote_Edit_Tab_Coupons
  • Mage_Adminhtml_Block_Promo_Quote_Edit_Tab_Coupons_Form
  • Mage_Adminhtml_Block_Promo_Quote_Edit_Tab_Coupons_Grid
  • Mage_Adminhtml_Block_Promo_Quote_Edit_Tab_Coupons_Grid_Column_Renderer_Used
  • Mage_Adminhtml_Block_Promo_Quote_Edit_Tab_Labels
  • Mage_Adminhtml_Block_Promo_Quote_Edit_Tab_Main
  • Mage_Adminhtml_Block_Promo_Quote_Edit_Tab_Main_Renderer_Checkbox
  • Mage_Adminhtml_Block_Promo_Quote_Edit_Tabs
  • Mage_Adminhtml_Block_Promo_Quote_Grid
  • Mage_Adminhtml_Block_Promo_Widget_Chooser
  • Mage_Adminhtml_Block_Promo_Widget_Chooser_Daterange
  • Mage_Adminhtml_Block_Promo_Widget_Chooser_Sku
  • Mage_Adminhtml_Block_Rating_Edit
  • Mage_Adminhtml_Block_Rating_Edit_Form
  • Mage_Adminhtml_Block_Rating_Edit_Tab_Form
  • Mage_Adminhtml_Block_Rating_Edit_Tab_Options
  • Mage_Adminhtml_Block_Rating_Edit_Tabs
  • Mage_Adminhtml_Block_Rating_Grid
  • Mage_Adminhtml_Block_Rating_Rating
  • Mage_Adminhtml_Block_Report_Config_Form_Field_MtdStart
  • Mage_Adminhtml_Block_Report_Config_Form_Field_YtdStart
  • Mage_Adminhtml_Block_Report_Customer_Accounts
  • Mage_Adminhtml_Block_Report_Customer_Accounts_Grid
  • Mage_Adminhtml_Block_Report_Customer_Orders
  • Mage_Adminhtml_Block_Report_Customer_Orders_Grid
  • Mage_Adminhtml_Block_Report_Customer_Totals
  • Mage_Adminhtml_Block_Report_Customer_Totals_Grid
  • Mage_Adminhtml_Block_Report_Filter_Form
  • Mage_Adminhtml_Block_Report_Grid
  • Mage_Adminhtml_Block_Report_Grid_Abstract
  • Mage_Adminhtml_Block_Report_Grid_Column_Renderer_Blanknumber
  • Mage_Adminhtml_Block_Report_Grid_Column_Renderer_Currency
  • Mage_Adminhtml_Block_Report_Grid_Column_Renderer_Customer
  • Mage_Adminhtml_Block_Report_Grid_Column_Renderer_Product
  • Mage_Adminhtml_Block_Report_Grid_Shopcart
  • Mage_Adminhtml_Block_Report_Product
  • Mage_Adminhtml_Block_Report_Product_Downloads
  • Mage_Adminhtml_Block_Report_Product_Downloads_Grid
  • Mage_Adminhtml_Block_Report_Product_Downloads_Renderer_Purchases
  • Mage_Adminhtml_Block_Report_Product_Grid
  • Mage_Adminhtml_Block_Report_Product_Lowstock
  • Mage_Adminhtml_Block_Report_Product_Lowstock_Grid
  • Mage_Adminhtml_Block_Report_Product_Sold
  • Mage_Adminhtml_Block_Report_Product_Sold_Grid
  • Mage_Adminhtml_Block_Report_Product_Viewed
  • Mage_Adminhtml_Block_Report_Product_Viewed_Grid
  • Mage_Adminhtml_Block_Report_Refresh_Statistics
  • Mage_Adminhtml_Block_Report_Refresh_Statistics_Grid
  • Mage_Adminhtml_Block_Report_Review_Customer
  • Mage_Adminhtml_Block_Report_Review_Customer_Grid
  • Mage_Adminhtml_Block_Report_Review_Detail
  • Mage_Adminhtml_Block_Report_Review_Detail_Grid
  • Mage_Adminhtml_Block_Report_Review_Product
  • Mage_Adminhtml_Block_Report_Review_Product_Grid
  • Mage_Adminhtml_Block_Report_Sales_Bestsellers
  • Mage_Adminhtml_Block_Report_Sales_Bestsellers_Grid
  • Mage_Adminhtml_Block_Report_Sales_Coupons
  • Mage_Adminhtml_Block_Report_Sales_Coupons_Grid
  • Mage_Adminhtml_Block_Report_Sales_Grid_Column_Renderer_Date
  • Mage_Adminhtml_Block_Report_Sales_Invoiced
  • Mage_Adminhtml_Block_Report_Sales_Invoiced_Grid
  • Mage_Adminhtml_Block_Report_Sales_Refunded
  • Mage_Adminhtml_Block_Report_Sales_Refunded_Grid
  • Mage_Adminhtml_Block_Report_Sales_Sales
  • Mage_Adminhtml_Block_Report_Sales_Sales_Grid
  • Mage_Adminhtml_Block_Report_Sales_Shipping
  • Mage_Adminhtml_Block_Report_Sales_Shipping_Grid
  • Mage_Adminhtml_Block_Report_Sales_Tax
  • Mage_Adminhtml_Block_Report_Sales_Tax_Grid
  • Mage_Adminhtml_Block_Report_Search
  • Mage_Adminhtml_Block_Report_Search_Grid
  • Mage_Adminhtml_Block_Report_Shopcart_Abandoned
  • Mage_Adminhtml_Block_Report_Shopcart_Abandoned_Grid
  • Mage_Adminhtml_Block_Report_Shopcart_Customer
  • Mage_Adminhtml_Block_Report_Shopcart_Customer_Grid
  • Mage_Adminhtml_Block_Report_Shopcart_Product
  • Mage_Adminhtml_Block_Report_Shopcart_Product_Grid
  • Mage_Adminhtml_Block_Report_Tag_Customer
  • Mage_Adminhtml_Block_Report_Tag_Customer_Detail
  • Mage_Adminhtml_Block_Report_Tag_Customer_Detail_Grid
  • Mage_Adminhtml_Block_Report_Tag_Customer_Grid
  • Mage_Adminhtml_Block_Report_Tag_Popular
  • Mage_Adminhtml_Block_Report_Tag_Popular_Detail
  • Mage_Adminhtml_Block_Report_Tag_Popular_Detail_Grid
  • Mage_Adminhtml_Block_Report_Tag_Popular_Grid
  • Mage_Adminhtml_Block_Report_Tag_Product
  • Mage_Adminhtml_Block_Report_Tag_Product_Detail
  • Mage_Adminhtml_Block_Report_Tag_Product_Detail_Grid
  • Mage_Adminhtml_Block_Report_Tag_Product_Grid
  • Mage_Adminhtml_Block_Report_Wishlist
  • Mage_Adminhtml_Block_Report_Wishlist_Grid
  • Mage_Adminhtml_Block_Review_Add
  • Mage_Adminhtml_Block_Review_Add_Form
  • Mage_Adminhtml_Block_Review_Edit
  • Mage_Adminhtml_Block_Review_Edit_Form
  • Mage_Adminhtml_Block_Review_Grid
  • Mage_Adminhtml_Block_Review_Grid_Filter_Type
  • Mage_Adminhtml_Block_Review_Grid_Renderer_Type
  • Mage_Adminhtml_Block_Review_Main
  • Mage_Adminhtml_Block_Review_Product_Grid
  • Mage_Adminhtml_Block_Review_Rating_Detailed
  • Mage_Adminhtml_Block_Review_Rating_Summary
  • Mage_Adminhtml_Block_Sales
  • Mage_Adminhtml_Block_Sales_Creditmemo
  • Mage_Adminhtml_Block_Sales_Creditmemo_Grid
  • Mage_Adminhtml_Block_Sales_Invoice
  • Mage_Adminhtml_Block_Sales_Invoice_Grid
  • Mage_Adminhtml_Block_Sales_Items_Abstract
  • Mage_Adminhtml_Block_Sales_Items_Column_Default
  • Mage_Adminhtml_Block_Sales_Items_Column_Name
  • Mage_Adminhtml_Block_Sales_Items_Column_Name_Grouped
  • Mage_Adminhtml_Block_Sales_Items_Column_Qty
  • Mage_Adminhtml_Block_Sales_Items_Renderer_Configurable
  • Mage_Adminhtml_Block_Sales_Items_Renderer_Default
  • Mage_Adminhtml_Block_Sales_Order
  • Mage_Adminhtml_Block_Sales_Order_Abstract
  • Mage_Adminhtml_Block_Sales_Order_Address
  • Mage_Adminhtml_Block_Sales_Order_Address_Form
  • Mage_Adminhtml_Block_Sales_Order_Comments_View
  • Mage_Adminhtml_Block_Sales_Order_Create
  • Mage_Adminhtml_Block_Sales_Order_Create_Abstract
  • Mage_Adminhtml_Block_Sales_Order_Create_Billing_Address
  • Mage_Adminhtml_Block_Sales_Order_Create_Billing_Method
  • Mage_Adminhtml_Block_Sales_Order_Create_Billing_Method_Form
  • Mage_Adminhtml_Block_Sales_Order_Create_Comment
  • Mage_Adminhtml_Block_Sales_Order_Create_Coupons
  • Mage_Adminhtml_Block_Sales_Order_Create_Coupons_Form
  • Mage_Adminhtml_Block_Sales_Order_Create_Customer
  • Mage_Adminhtml_Block_Sales_Order_Create_Customer_Grid
  • Mage_Adminhtml_Block_Sales_Order_Create_Data
  • Mage_Adminhtml_Block_Sales_Order_Create_Form
  • Mage_Adminhtml_Block_Sales_Order_Create_Form_Abstract
  • Mage_Adminhtml_Block_Sales_Order_Create_Form_Account
  • Mage_Adminhtml_Block_Sales_Order_Create_Form_Address
  • Mage_Adminhtml_Block_Sales_Order_Create_Giftmessage
  • Mage_Adminhtml_Block_Sales_Order_Create_Giftmessage_Form
  • Mage_Adminhtml_Block_Sales_Order_Create_Header
  • Mage_Adminhtml_Block_Sales_Order_Create_Items
  • Mage_Adminhtml_Block_Sales_Order_Create_Items_Grid
  • Mage_Adminhtml_Block_Sales_Order_Create_Load
  • Mage_Adminhtml_Block_Sales_Order_Create_Messages
  • Mage_Adminhtml_Block_Sales_Order_Create_Newsletter
  • Mage_Adminhtml_Block_Sales_Order_Create_Newsletter_Form
  • Mage_Adminhtml_Block_Sales_Order_Create_Search
  • Mage_Adminhtml_Block_Sales_Order_Create_Search_Grid
  • Mage_Adminhtml_Block_Sales_Order_Create_Search_Grid_Renderer_Price
  • Mage_Adminhtml_Block_Sales_Order_Create_Search_Grid_Renderer_Product
  • Mage_Adminhtml_Block_Sales_Order_Create_Search_Grid_Renderer_Qty
  • Mage_Adminhtml_Block_Sales_Order_Create_Shipping_Address
  • Mage_Adminhtml_Block_Sales_Order_Create_Shipping_Method
  • Mage_Adminhtml_Block_Sales_Order_Create_Shipping_Method_Form
  • Mage_Adminhtml_Block_Sales_Order_Create_Sidebar
  • Mage_Adminhtml_Block_Sales_Order_Create_Sidebar_Abstract
  • Mage_Adminhtml_Block_Sales_Order_Create_Sidebar_Cart
  • Mage_Adminhtml_Block_Sales_Order_Create_Sidebar_Compared
  • Mage_Adminhtml_Block_Sales_Order_Create_Sidebar_Pcompared
  • Mage_Adminhtml_Block_Sales_Order_Create_Sidebar_Pviewed
  • Mage_Adminhtml_Block_Sales_Order_Create_Sidebar_Reorder
  • Mage_Adminhtml_Block_Sales_Order_Create_Sidebar_Viewed
  • Mage_Adminhtml_Block_Sales_Order_Create_Sidebar_Wishlist
  • Mage_Adminhtml_Block_Sales_Order_Create_Store
  • Mage_Adminhtml_Block_Sales_Order_Create_Store_Select
  • Mage_Adminhtml_Block_Sales_Order_Create_Totals
  • Mage_Adminhtml_Block_Sales_Order_Create_Totals_Default
  • Mage_Adminhtml_Block_Sales_Order_Create_Totals_Discount
  • Mage_Adminhtml_Block_Sales_Order_Create_Totals_Grandtotal
  • Mage_Adminhtml_Block_Sales_Order_Create_Totals_Shipping
  • Mage_Adminhtml_Block_Sales_Order_Create_Totals_Subtotal
  • Mage_Adminhtml_Block_Sales_Order_Create_Totals_Table
  • Mage_Adminhtml_Block_Sales_Order_Create_Totals_Tax
  • Mage_Adminhtml_Block_Sales_Order_Creditmemo_Create
  • Mage_Adminhtml_Block_Sales_Order_Creditmemo_Create_Adjustments
  • Mage_Adminhtml_Block_Sales_Order_Creditmemo_Create_Form
  • Mage_Adminhtml_Block_Sales_Order_Creditmemo_Create_Items
  • Mage_Adminhtml_Block_Sales_Order_Creditmemo_Totals
  • Mage_Adminhtml_Block_Sales_Order_Creditmemo_View
  • Mage_Adminhtml_Block_Sales_Order_Creditmemo_View_Comments
  • Mage_Adminhtml_Block_Sales_Order_Creditmemo_View_Form
  • Mage_Adminhtml_Block_Sales_Order_Creditmemo_View_Items
  • Mage_Adminhtml_Block_Sales_Order_Grid
  • Mage_Adminhtml_Block_Sales_Order_Invoice_Create
  • Mage_Adminhtml_Block_Sales_Order_Invoice_Create_Form
  • Mage_Adminhtml_Block_Sales_Order_Invoice_Create_Items
  • Mage_Adminhtml_Block_Sales_Order_Invoice_Create_Tracking
  • Mage_Adminhtml_Block_Sales_Order_Invoice_Totals
  • Mage_Adminhtml_Block_Sales_Order_Invoice_View
  • Mage_Adminhtml_Block_Sales_Order_Invoice_View_Comments
  • Mage_Adminhtml_Block_Sales_Order_Invoice_View_Form
  • Mage_Adminhtml_Block_Sales_Order_Invoice_View_Items
  • Mage_Adminhtml_Block_Sales_Order_Payment
  • Mage_Adminhtml_Block_Sales_Order_Shipment_Create
  • Mage_Adminhtml_Block_Sales_Order_Shipment_Create_Form
  • Mage_Adminhtml_Block_Sales_Order_Shipment_Create_Items
  • Mage_Adminhtml_Block_Sales_Order_Shipment_Create_Tracking
  • Mage_Adminhtml_Block_Sales_Order_Shipment_Packaging
  • Mage_Adminhtml_Block_Sales_Order_Shipment_Packaging_Grid
  • Mage_Adminhtml_Block_Sales_Order_Shipment_Tracking_Info
  • Mage_Adminhtml_Block_Sales_Order_Shipment_View
  • Mage_Adminhtml_Block_Sales_Order_Shipment_View_Comments
  • Mage_Adminhtml_Block_Sales_Order_Shipment_View_Form
  • Mage_Adminhtml_Block_Sales_Order_Shipment_View_Items
  • Mage_Adminhtml_Block_Sales_Order_Shipment_View_Tracking
  • Mage_Adminhtml_Block_Sales_Order_Status
  • Mage_Adminhtml_Block_Sales_Order_Status_Assign
  • Mage_Adminhtml_Block_Sales_Order_Status_Assign_Form
  • Mage_Adminhtml_Block_Sales_Order_Status_Edit
  • Mage_Adminhtml_Block_Sales_Order_Status_Edit_Form
  • Mage_Adminhtml_Block_Sales_Order_Status_Grid
  • Mage_Adminhtml_Block_Sales_Order_Status_New
  • Mage_Adminhtml_Block_Sales_Order_Status_New_Form
  • Mage_Adminhtml_Block_Sales_Order_Totalbar
  • Mage_Adminhtml_Block_Sales_Order_Totals
  • Mage_Adminhtml_Block_Sales_Order_Totals_Item
  • Mage_Adminhtml_Block_Sales_Order_Totals_Tax
  • Mage_Adminhtml_Block_Sales_Order_View
  • Mage_Adminhtml_Block_Sales_Order_View_Form
  • Mage_Adminhtml_Block_Sales_Order_View_Giftmessage
  • Mage_Adminhtml_Block_Sales_Order_View_History
  • Mage_Adminhtml_Block_Sales_Order_View_Info
  • Mage_Adminhtml_Block_Sales_Order_View_Items
  • Mage_Adminhtml_Block_Sales_Order_View_Items_Renderer_Default
  • Mage_Adminhtml_Block_Sales_Order_View_Messages
  • Mage_Adminhtml_Block_Sales_Order_View_Tab_Creditmemos
  • Mage_Adminhtml_Block_Sales_Order_View_Tab_History
  • Mage_Adminhtml_Block_Sales_Order_View_Tab_Info
  • Mage_Adminhtml_Block_Sales_Order_View_Tab_Invoices
  • Mage_Adminhtml_Block_Sales_Order_View_Tab_Shipments
  • Mage_Adminhtml_Block_Sales_Order_View_Tab_Transactions
  • Mage_Adminhtml_Block_Sales_Order_View_Tabs
  • Mage_Adminhtml_Block_Sales_Recurring_Profile_View_Getawayinfo
  • Mage_Adminhtml_Block_Sales_Recurring_Profile_View_Info
  • Mage_Adminhtml_Block_Sales_Recurring_Profile_View_Items
  • Mage_Adminhtml_Block_Sales_Reorder_Renderer_Action
  • Mage_Adminhtml_Block_Sales_Shipment
  • Mage_Adminhtml_Block_Sales_Shipment_Grid
  • Mage_Adminhtml_Block_Sales_Totals
  • Mage_Adminhtml_Block_Sales_Transactions
  • Mage_Adminhtml_Block_Sales_Transactions_Child_Grid
  • Mage_Adminhtml_Block_Sales_Transactions_Detail
  • Mage_Adminhtml_Block_Sales_Transactions_Detail_Grid
  • Mage_Adminhtml_Block_Sales_Transactions_Grid
  • Mage_Adminhtml_Block_Shipping_Carrier_Tablerate_Grid
  • Mage_Adminhtml_Block_Sitemap_Edit
  • Mage_Adminhtml_Block_Sitemap_Edit_Form
  • Mage_Adminhtml_Block_Sitemap_Grid
  • Mage_Adminhtml_Block_Store_Switcher
  • Mage_Adminhtml_Block_Store_Switcher_Form_Renderer_Fieldset
  • Mage_Adminhtml_Block_Store_Switcher_Form_Renderer_Fieldset_Element
  • Mage_Adminhtml_Block_System_Account_Edit
  • Mage_Adminhtml_Block_System_Account_Edit_Form
  • Mage_Adminhtml_Block_System_Cache_Edit
  • Mage_Adminhtml_Block_System_Cache_Form
  • Mage_Adminhtml_Block_System_Config_Dwstree
  • Mage_Adminhtml_Block_System_Config_Edit
  • Mage_Adminhtml_Block_System_Config_Form
  • Mage_Adminhtml_Block_System_Config_Form_Field
  • Mage_Adminhtml_Block_System_Config_Form_Field_Array_Abstract
  • Mage_Adminhtml_Block_System_Config_Form_Field_Datetime
  • Mage_Adminhtml_Block_System_Config_Form_Field_Export
  • Mage_Adminhtml_Block_System_Config_Form_Field_File
  • Mage_Adminhtml_Block_System_Config_Form_Field_Heading
  • Mage_Adminhtml_Block_System_Config_Form_Field_Image
  • Mage_Adminhtml_Block_System_Config_Form_Field_Import
  • Mage_Adminhtml_Block_System_Config_Form_Field_Notification
  • Mage_Adminhtml_Block_System_Config_Form_Field_Regexceptions
  • Mage_Adminhtml_Block_System_Config_Form_Field_Select_Allowspecific
  • Mage_Adminhtml_Block_System_Config_Form_Field_Select_Flatcatalog
  • Mage_Adminhtml_Block_System_Config_Form_Field_Select_Flatproduct
  • Mage_Adminhtml_Block_System_Config_Form_Fieldset
  • Mage_Adminhtml_Block_System_Config_Form_Fieldset_Modules_DisableOutput
  • Mage_Adminhtml_Block_System_Config_Form_Fieldset_Order_Statuses
  • Mage_Adminhtml_Block_System_Config_Switcher
  • Mage_Adminhtml_Block_System_Config_System_Storage_Media_Synchronize
  • Mage_Adminhtml_Block_System_Config_Tabs
  • Mage_Adminhtml_Block_System_Convert_Gui
  • Mage_Adminhtml_Block_System_Convert_Gui_Edit
  • Mage_Adminhtml_Block_System_Convert_Gui_Edit_Form
  • Mage_Adminhtml_Block_System_Convert_Gui_Edit_Tab_Upload
  • Mage_Adminhtml_Block_System_Convert_Gui_Edit_Tab_View
  • Mage_Adminhtml_Block_System_Convert_Gui_Edit_Tab_Wizard
  • Mage_Adminhtml_Block_System_Convert_Gui_Edit_Tabs
  • Mage_Adminhtml_Block_System_Convert_Gui_Grid
  • Mage_Adminhtml_Block_System_Convert_Profile
  • Mage_Adminhtml_Block_System_Convert_Profile_Edit
  • Mage_Adminhtml_Block_System_Convert_Profile_Edit_Filter_Action
  • Mage_Adminhtml_Block_System_Convert_Profile_Edit_Form
  • Mage_Adminhtml_Block_System_Convert_Profile_Edit_Renderer_Action
  • Mage_Adminhtml_Block_System_Convert_Profile_Edit_Tab_Edit
  • Mage_Adminhtml_Block_System_Convert_Profile_Edit_Tab_History
  • Mage_Adminhtml_Block_System_Convert_Profile_Edit_Tab_Run
  • Mage_Adminhtml_Block_System_Convert_Profile_Edit_Tabs
  • Mage_Adminhtml_Block_System_Convert_Profile_Grid
  • Mage_Adminhtml_Block_System_Convert_Profile_Run
  • Mage_Adminhtml_Block_System_Currency
  • Mage_Adminhtml_Block_System_Currency_Edit_Form
  • Mage_Adminhtml_Block_System_Currency_Edit_Tab_Main
  • Mage_Adminhtml_Block_System_Currency_Edit_Tab_Rates
  • Mage_Adminhtml_Block_System_Currency_Edit_Tabs
  • Mage_Adminhtml_Block_System_Currency_Rate_Matrix
  • Mage_Adminhtml_Block_System_Currency_Rate_Services
  • Mage_Adminhtml_Block_System_Design
  • Mage_Adminhtml_Block_System_Design_Edit
  • Mage_Adminhtml_Block_System_Design_Edit_Tab_General
  • Mage_Adminhtml_Block_System_Design_Edit_Tabs
  • Mage_Adminhtml_Block_System_Design_Grid
  • Mage_Adminhtml_Block_System_Email_Template
  • Mage_Adminhtml_Block_System_Email_Template_Edit
  • Mage_Adminhtml_Block_System_Email_Template_Edit_Form
  • Mage_Adminhtml_Block_System_Email_Template_Grid
  • Mage_Adminhtml_Block_System_Email_Template_Grid_Filter_Type
  • Mage_Adminhtml_Block_System_Email_Template_Grid_Renderer_Action
  • Mage_Adminhtml_Block_System_Email_Template_Grid_Renderer_Sender
  • Mage_Adminhtml_Block_System_Email_Template_Grid_Renderer_Type
  • Mage_Adminhtml_Block_System_Email_Template_Preview
  • Mage_Adminhtml_Block_System_Store_Delete
  • Mage_Adminhtml_Block_System_Store_Delete_Form
  • Mage_Adminhtml_Block_System_Store_Delete_Group
  • Mage_Adminhtml_Block_System_Store_Delete_Website
  • Mage_Adminhtml_Block_System_Store_Edit
  • Mage_Adminhtml_Block_System_Store_Edit_Form
  • Mage_Adminhtml_Block_System_Store_Grid
  • Mage_Adminhtml_Block_System_Store_Grid_Render_Group
  • Mage_Adminhtml_Block_System_Store_Grid_Render_Store
  • Mage_Adminhtml_Block_System_Store_Grid_Render_Website
  • Mage_Adminhtml_Block_System_Store_Store
  • Mage_Adminhtml_Block_System_Variable
  • Mage_Adminhtml_Block_System_Variable_Edit
  • Mage_Adminhtml_Block_System_Variable_Edit_Form
  • Mage_Adminhtml_Block_System_Variable_Grid
  • Mage_Adminhtml_Block_Tag
  • Mage_Adminhtml_Block_Tag_Assigned_Grid
  • Mage_Adminhtml_Block_Tag_Customer
  • Mage_Adminhtml_Block_Tag_Customer_Grid
  • Mage_Adminhtml_Block_Tag_Edit
  • Mage_Adminhtml_Block_Tag_Edit_Accordion
  • Mage_Adminhtml_Block_Tag_Edit_Assigned
  • Mage_Adminhtml_Block_Tag_Edit_Form
  • Mage_Adminhtml_Block_Tag_Grid_All
  • Mage_Adminhtml_Block_Tag_Grid_Customers
  • Mage_Adminhtml_Block_Tag_Grid_Pending
  • Mage_Adminhtml_Block_Tag_Grid_Products
  • Mage_Adminhtml_Block_Tag_Pending
  • Mage_Adminhtml_Block_Tag_Product
  • Mage_Adminhtml_Block_Tag_Product_Grid
  • Mage_Adminhtml_Block_Tag_Store_Switcher
  • Mage_Adminhtml_Block_Tag_Tag
  • Mage_Adminhtml_Block_Tag_Tag_Grid
  • Mage_Adminhtml_Block_Tax_Class
  • Mage_Adminhtml_Block_Tax_Class_Edit
  • Mage_Adminhtml_Block_Tax_Class_Edit_Form
  • Mage_Adminhtml_Block_Tax_Class_Grid
  • Mage_Adminhtml_Block_Tax_Rate_Form
  • Mage_Adminhtml_Block_Tax_Rate_Grid
  • Mage_Adminhtml_Block_Tax_Rate_Grid_Renderer_Country
  • Mage_Adminhtml_Block_Tax_Rate_Grid_Renderer_Data
  • Mage_Adminhtml_Block_Tax_Rate_ImportExport
  • Mage_Adminhtml_Block_Tax_Rate_Title
  • Mage_Adminhtml_Block_Tax_Rate_Title_Fieldset
  • Mage_Adminhtml_Block_Tax_Rate_Toolbar_Add
  • Mage_Adminhtml_Block_Tax_Rate_Toolbar_Save
  • Mage_Adminhtml_Block_Tax_Rule
  • Mage_Adminhtml_Block_Tax_Rule_Edit
  • Mage_Adminhtml_Block_Tax_Rule_Edit_Form
  • Mage_Adminhtml_Block_Tax_Rule_Grid
  • Mage_Adminhtml_Block_Template
  • Mage_Adminhtml_Block_Text_List
  • Mage_Adminhtml_Block_Tree
  • Mage_Adminhtml_Block_Urlrewrite
  • Mage_Adminhtml_Block_Urlrewrite_Category_Tree
  • Mage_Adminhtml_Block_Urlrewrite_Edit
  • Mage_Adminhtml_Block_Urlrewrite_Edit_Form
  • Mage_Adminhtml_Block_Urlrewrite_Grid
  • Mage_Adminhtml_Block_Urlrewrite_Link
  • Mage_Adminhtml_Block_Urlrewrite_Product_Grid
  • Mage_Adminhtml_Block_Urlrewrite_Selector
  • Mage_Adminhtml_Block_Widget
  • Mage_Adminhtml_Block_Widget_Accordion
  • Mage_Adminhtml_Block_Widget_Accordion_Item
  • Mage_Adminhtml_Block_Widget_Breadcrumbs
  • Mage_Adminhtml_Block_Widget_Button
  • Mage_Adminhtml_Block_Widget_Container
  • Mage_Adminhtml_Block_Widget_Form
  • Mage_Adminhtml_Block_Widget_Form_Container
  • Mage_Adminhtml_Block_Widget_Form_Element
  • Mage_Adminhtml_Block_Widget_Form_Element_Dependence
  • Mage_Adminhtml_Block_Widget_Form_Element_Gallery
  • Mage_Adminhtml_Block_Widget_Form_Renderer_Element
  • Mage_Adminhtml_Block_Widget_Form_Renderer_Fieldset
  • Mage_Adminhtml_Block_Widget_Form_Renderer_Fieldset_Element
  • Mage_Adminhtml_Block_Widget_Grid
  • Mage_Adminhtml_Block_Widget_Grid_Block
  • Mage_Adminhtml_Block_Widget_Grid_Column
  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Abstract
  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Checkbox
  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Country
  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Date
  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Datetime
  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Massaction
  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Price
  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Radio
  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Range
  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Select
  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Store
  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Text
  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Theme
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Abstract
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Action
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Checkbox
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Concat
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Country
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Currency
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Date
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Datetime
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Input
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Ip
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Longtext
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Massaction
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Number
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Options
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Price
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Radio
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Select
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Store
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Text
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Theme
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Wrapline
  • Mage_Adminhtml_Block_Widget_Grid_Container
  • Mage_Adminhtml_Block_Widget_Grid_Massaction
  • Mage_Adminhtml_Block_Widget_Grid_Massaction_Abstract
  • Mage_Adminhtml_Block_Widget_Grid_Massaction_Item
  • Mage_Adminhtml_Block_Widget_Grid_Massaction_Item_Additional_Default
  • Mage_Adminhtml_Block_Widget_Grid_Serializer
  • Mage_Adminhtml_Block_Widget_Tabs
  • Mage_Adminhtml_Block_Widget_View_Container
  • Mage_Adminhtml_CacheController
  • Mage_Adminhtml_Catalog_Category_WidgetController
  • Mage_Adminhtml_Catalog_CategoryController
  • Mage_Adminhtml_Catalog_DatafeedsController
  • Mage_Adminhtml_Catalog_Product_Action_AttributeController
  • Mage_Adminhtml_Catalog_Product_AttributeController
  • Mage_Adminhtml_Catalog_Product_GalleryController
  • Mage_Adminhtml_Catalog_Product_ReviewController
  • Mage_Adminhtml_Catalog_Product_SetController
  • Mage_Adminhtml_Catalog_Product_WidgetController
  • Mage_Adminhtml_Catalog_ProductController
  • Mage_Adminhtml_Catalog_SearchController
  • Mage_Adminhtml_CatalogController
  • Mage_Adminhtml_Checkout_AgreementController
  • Mage_Adminhtml_Cms_Block_WidgetController
  • Mage_Adminhtml_Cms_BlockController
  • Mage_Adminhtml_Cms_Page_WidgetController
  • Mage_Adminhtml_Cms_Wysiwyg_ImagesController
  • Mage_Adminhtml_Cms_WysiwygController
  • Mage_Adminhtml_Controller_Action
  • Mage_Adminhtml_Controller_Report_Abstract
  • Mage_Adminhtml_Controller_Sales_Creditmemo
  • Mage_Adminhtml_Controller_Sales_Invoice
  • Mage_Adminhtml_Controller_Sales_Shipment
  • Mage_Adminhtml_Customer_Cart_Product_Composite_CartController
  • Mage_Adminhtml_Customer_ConfigController
  • Mage_Adminhtml_Customer_GroupController
  • Mage_Adminhtml_Customer_OnlineController
  • Mage_Adminhtml_Customer_System_Config_ValidatevatController
  • Mage_Adminhtml_Customer_Wishlist_Product_Composite_WishlistController
  • Mage_Adminhtml_CustomerController
  • Mage_Adminhtml_DashboardController
  • Mage_Adminhtml_Helper_Addresses
  • Mage_Adminhtml_Helper_Catalog
  • Mage_Adminhtml_Helper_Catalog_Product_Composite
  • Mage_Adminhtml_Helper_Catalog_Product_Edit_Action_Attribute
  • Mage_Adminhtml_Helper_Dashboard_Abstract
  • Mage_Adminhtml_Helper_Dashboard_Data
  • Mage_Adminhtml_Helper_Dashboard_Order
  • Mage_Adminhtml_Helper_Data
  • Mage_Adminhtml_Helper_Js
  • Mage_Adminhtml_Helper_Rss
  • Mage_Adminhtml_Helper_Sales
  • Mage_Adminhtml_IndexController
  • Mage_Adminhtml_JsonController
  • Mage_Adminhtml_Media_EditorController
  • Mage_Adminhtml_Media_UploaderController
  • Mage_Adminhtml_Model_Config
  • Mage_Adminhtml_Model_Config_Data
  • Mage_Adminhtml_Model_Customer_Renderer_Region
  • Mage_Adminhtml_Model_Email_Template
  • Mage_Adminhtml_Model_Extension
  • Mage_Adminhtml_Model_Giftmessage_Save
  • Mage_Adminhtml_Model_LayoutUpdate_Validator
  • Mage_Adminhtml_Model_Newsletter_Renderer_Text
  • Mage_Adminhtml_Model_Observer
  • Mage_Adminhtml_Model_Report_Item
  • Mage_Adminhtml_Model_Sales_Order
  • Mage_Adminhtml_Model_Sales_Order_Create
  • Mage_Adminhtml_Model_Sales_Order_Random
  • Mage_Adminhtml_Model_Search_Catalog
  • Mage_Adminhtml_Model_Search_Customer
  • Mage_Adminhtml_Model_Search_Order
  • Mage_Adminhtml_Model_Session
  • Mage_Adminhtml_Model_Session_Quote
  • Mage_Adminhtml_Model_System_Config_Backend_Admin_Custom
  • Mage_Adminhtml_Model_System_Config_Backend_Admin_Custompath
  • Mage_Adminhtml_Model_System_Config_Backend_Admin_Observer
  • Mage_Adminhtml_Model_System_Config_Backend_Admin_Password_Link_Expirationperiod
  • Mage_Adminhtml_Model_System_Config_Backend_Admin_Usecustom
  • Mage_Adminhtml_Model_System_Config_Backend_Admin_Usecustompath
  • Mage_Adminhtml_Model_System_Config_Backend_Admin_Usesecretkey
  • Mage_Adminhtml_Model_System_Config_Backend_Baseurl
  • Mage_Adminhtml_Model_System_Config_Backend_Cache
  • Mage_Adminhtml_Model_System_Config_Backend_Catalog_Inventory_Managestock
  • Mage_Adminhtml_Model_System_Config_Backend_Catalog_Search_Type
  • Mage_Adminhtml_Model_System_Config_Backend_Category
  • Mage_Adminhtml_Model_System_Config_Backend_Cookie
  • Mage_Adminhtml_Model_System_Config_Backend_Currency_Abstract
  • Mage_Adminhtml_Model_System_Config_Backend_Currency_Allow
  • Mage_Adminhtml_Model_System_Config_Backend_Currency_Base
  • Mage_Adminhtml_Model_System_Config_Backend_Currency_Cron
  • Mage_Adminhtml_Model_System_Config_Backend_Currency_Default
  • Mage_Adminhtml_Model_System_Config_Backend_Customer_Address_Street
  • Mage_Adminhtml_Model_System_Config_Backend_Customer_Password_Link_Expirationperiod
  • Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Address
  • Mage_Adminhtml_Model_System_Config_Backend_Customer_Show_Customer
  • Mage_Adminhtml_Model_System_Config_Backend_Datashare
  • Mage_Adminhtml_Model_System_Config_Backend_Design_Exception
  • Mage_Adminhtml_Model_System_Config_Backend_Design_Package
  • Mage_Adminhtml_Model_System_Config_Backend_Email_Address
  • Mage_Adminhtml_Model_System_Config_Backend_Email_Logo
  • Mage_Adminhtml_Model_System_Config_Backend_Email_Sender
  • Mage_Adminhtml_Model_System_Config_Backend_Encrypted
  • Mage_Adminhtml_Model_System_Config_Backend_File
  • Mage_Adminhtml_Model_System_Config_Backend_Filename
  • Mage_Adminhtml_Model_System_Config_Backend_Image
  • Mage_Adminhtml_Model_System_Config_Backend_Image_Favicon
  • Mage_Adminhtml_Model_System_Config_Backend_Image_Pdf
  • Mage_Adminhtml_Model_System_Config_Backend_Layer_Children
  • Mage_Adminhtml_Model_System_Config_Backend_Locale
  • Mage_Adminhtml_Model_System_Config_Backend_Locale_Timezone
  • Mage_Adminhtml_Model_System_Config_Backend_Log_Cron
  • Mage_Adminhtml_Model_System_Config_Backend_Price_Scope
  • Mage_Adminhtml_Model_System_Config_Backend_Product_Alert_Cron
  • Mage_Adminhtml_Model_System_Config_Backend_Secure
  • Mage_Adminhtml_Model_System_Config_Backend_Seo_Product
  • Mage_Adminhtml_Model_System_Config_Backend_Serialized
  • Mage_Adminhtml_Model_System_Config_Backend_Serialized_Array
  • Mage_Adminhtml_Model_System_Config_Backend_Shipping_Tablerate
  • Mage_Adminhtml_Model_System_Config_Backend_Sitemap
  • Mage_Adminhtml_Model_System_Config_Backend_Sitemap_Cron
  • Mage_Adminhtml_Model_System_Config_Backend_Storage_Media_Database
  • Mage_Adminhtml_Model_System_Config_Backend_Store
  • Mage_Adminhtml_Model_System_Config_Backend_Translate
  • Mage_Adminhtml_Model_System_Config_Clone_Media_Image
  • Mage_Adminhtml_Model_System_Config_Source_Admin_Page
  • Mage_Adminhtml_Model_System_Config_Source_Allregion
  • Mage_Adminhtml_Model_System_Config_Source_Catalog_GridPerPage
  • Mage_Adminhtml_Model_System_Config_Source_Catalog_ListMode
  • Mage_Adminhtml_Model_System_Config_Source_Catalog_ListPerPage
  • Mage_Adminhtml_Model_System_Config_Source_Catalog_ListSort
  • Mage_Adminhtml_Model_System_Config_Source_Catalog_Search_Type
  • Mage_Adminhtml_Model_System_Config_Source_Catalog_TimeFormat
  • Mage_Adminhtml_Model_System_Config_Source_Category
  • Mage_Adminhtml_Model_System_Config_Source_Checktype
  • Mage_Adminhtml_Model_System_Config_Source_Cms_Page
  • Mage_Adminhtml_Model_System_Config_Source_Country
  • Mage_Adminhtml_Model_System_Config_Source_Country_Full
  • Mage_Adminhtml_Model_System_Config_Source_Cron_Frequency
  • Mage_Adminhtml_Model_System_Config_Source_Currency
  • Mage_Adminhtml_Model_System_Config_Source_Currency_Service
  • Mage_Adminhtml_Model_System_Config_Source_Customer_Address_Type
  • Mage_Adminhtml_Model_System_Config_Source_Customer_Group
  • Mage_Adminhtml_Model_System_Config_Source_Customer_Group_Multiselect
  • Mage_Adminhtml_Model_System_Config_Source_Date_Short
  • Mage_Adminhtml_Model_System_Config_Source_Design_Robots
  • Mage_Adminhtml_Model_System_Config_Source_Dev_Dbautoup
  • Mage_Adminhtml_Model_System_Config_Source_Email_Identity
  • Mage_Adminhtml_Model_System_Config_Source_Email_Method
  • Mage_Adminhtml_Model_System_Config_Source_Email_Smtpauth
  • Mage_Adminhtml_Model_System_Config_Source_Email_Template
  • Mage_Adminhtml_Model_System_Config_Source_Enabledisable
  • Mage_Adminhtml_Model_System_Config_Source_Frequency
  • Mage_Adminhtml_Model_System_Config_Source_Language
  • Mage_Adminhtml_Model_System_Config_Source_Locale
  • Mage_Adminhtml_Model_System_Config_Source_Locale_Country
  • Mage_Adminhtml_Model_System_Config_Source_Locale_Currency
  • Mage_Adminhtml_Model_System_Config_Source_Locale_Currency_All
  • Mage_Adminhtml_Model_System_Config_Source_Locale_Timezone
  • Mage_Adminhtml_Model_System_Config_Source_Locale_Weekdays
  • Mage_Adminhtml_Model_System_Config_Source_Nooptreq
  • Mage_Adminhtml_Model_System_Config_Source_Notification_Frequency
  • Mage_Adminhtml_Model_System_Config_Source_Order_Status
  • Mage_Adminhtml_Model_System_Config_Source_Order_Status_New
  • Mage_Adminhtml_Model_System_Config_Source_Order_Status_Newprocessing
  • Mage_Adminhtml_Model_System_Config_Source_Order_Status_Processing
  • Mage_Adminhtml_Model_System_Config_Source_Package
  • Mage_Adminhtml_Model_System_Config_Source_Payment_Allmethods
  • Mage_Adminhtml_Model_System_Config_Source_Payment_Allowedmethods
  • Mage_Adminhtml_Model_System_Config_Source_Payment_Allspecificcountries
  • Mage_Adminhtml_Model_System_Config_Source_Payment_Cctype
  • Mage_Adminhtml_Model_System_Config_Source_Price_Scope
  • Mage_Adminhtml_Model_System_Config_Source_Price_Step
  • Mage_Adminhtml_Model_System_Config_Source_Product_Options_Price
  • Mage_Adminhtml_Model_System_Config_Source_Product_Options_Type
  • Mage_Adminhtml_Model_System_Config_Source_Product_Thumbnail
  • Mage_Adminhtml_Model_System_Config_Source_Reports_Scope
  • Mage_Adminhtml_Model_System_Config_Source_Shipping_Allmethods
  • Mage_Adminhtml_Model_System_Config_Source_Shipping_Allspecificcountries
  • Mage_Adminhtml_Model_System_Config_Source_Shipping_Flatrate
  • Mage_Adminhtml_Model_System_Config_Source_Shipping_Tablerate
  • Mage_Adminhtml_Model_System_Config_Source_Shipping_Taxclass
  • Mage_Adminhtml_Model_System_Config_Source_Storage_Media_Database
  • Mage_Adminhtml_Model_System_Config_Source_Storage_Media_Storage
  • Mage_Adminhtml_Model_System_Config_Source_Store
  • Mage_Adminhtml_Model_System_Config_Source_Tax_Apply_On
  • Mage_Adminhtml_Model_System_Config_Source_Tax_Basedon
  • Mage_Adminhtml_Model_System_Config_Source_Tax_Catalog
  • Mage_Adminhtml_Model_System_Config_Source_Watermark_Position
  • Mage_Adminhtml_Model_System_Config_Source_Web_Protocol
  • Mage_Adminhtml_Model_System_Config_Source_Web_Redirect
  • Mage_Adminhtml_Model_System_Config_Source_Website
  • Mage_Adminhtml_Model_System_Config_Source_Yesno
  • Mage_Adminhtml_Model_System_Config_Source_Yesnocustom
  • Mage_Adminhtml_Model_System_Store
  • Mage_Adminhtml_Model_Url
  • Mage_Adminhtml_Newsletter_ProblemController
  • Mage_Adminhtml_Newsletter_QueueController
  • Mage_Adminhtml_Newsletter_SubscriberController
  • Mage_Adminhtml_Newsletter_TemplateController
  • Mage_Adminhtml_NotificationController
  • Mage_Adminhtml_Permissions_RoleController
  • Mage_Adminhtml_Permissions_UserController
  • Mage_Adminhtml_Poll_AnswerController
  • Mage_Adminhtml_PollController
  • Mage_Adminhtml_Promo_CatalogController
  • Mage_Adminhtml_Promo_QuoteController
  • Mage_Adminhtml_Promo_WidgetController
  • Mage_Adminhtml_PromoController
  • Mage_Adminhtml_RatingController
  • Mage_Adminhtml_Report_CustomerController
  • Mage_Adminhtml_Report_ProductController
  • Mage_Adminhtml_Report_ReviewController
  • Mage_Adminhtml_Report_SalesController
  • Mage_Adminhtml_Report_ShopcartController
  • Mage_Adminhtml_Report_StatisticsController
  • Mage_Adminhtml_Report_TagController
  • Mage_Adminhtml_ReportController
  • Mage_Adminhtml_Sales_Billing_AgreementController
  • Mage_Adminhtml_Sales_CreditmemoController
  • Mage_Adminhtml_Sales_InvoiceController
  • Mage_Adminhtml_Sales_Order_CreateController
  • Mage_Adminhtml_Sales_Order_CreditmemoController
  • Mage_Adminhtml_Sales_Order_EditController
  • Mage_Adminhtml_Sales_Order_InvoiceController
  • Mage_Adminhtml_Sales_Order_ShipmentController
  • Mage_Adminhtml_Sales_Order_StatusController
  • Mage_Adminhtml_Sales_Order_View_GiftmessageController
  • Mage_Adminhtml_Sales_OrderController
  • Mage_Adminhtml_Sales_Recurring_ProfileController
  • Mage_Adminhtml_Sales_ShipmentController
  • Mage_Adminhtml_Sales_TransactionsController
  • Mage_Adminhtml_SalesController
  • Mage_Adminhtml_SurveyController
  • Mage_Adminhtml_System_AccountController
  • Mage_Adminhtml_System_BackupController
  • Mage_Adminhtml_System_CacheController
  • Mage_Adminhtml_System_Config_System_StorageController
  • Mage_Adminhtml_System_ConfigController
  • Mage_Adminhtml_System_Convert_GuiController
  • Mage_Adminhtml_System_Convert_ProfileController
  • Mage_Adminhtml_System_CurrencyController
  • Mage_Adminhtml_System_DesignController
  • Mage_Adminhtml_System_Email_TemplateController
  • Mage_Adminhtml_System_StoreController
  • Mage_Adminhtml_System_VariableController
  • Mage_Adminhtml_SystemController
  • Mage_Adminhtml_TagController
  • Mage_Adminhtml_Tax_Class_CustomerController
  • Mage_Adminhtml_Tax_Class_ProductController
  • Mage_Adminhtml_Tax_ClassController
  • Mage_Adminhtml_Tax_RateController
  • Mage_Adminhtml_Tax_RuleController
  • Mage_Adminhtml_UrlrewriteController
  • Mage_Bundle_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Bundle
  • Mage_Downloadable_Block_Adminhtml_Catalog_Product_Composite_Fieldset_Downloadable
  • Mage_Eav_Block_Adminhtml_Attribute_Grid_Abstract
  • Mage_GoogleBase_Block_Adminhtml_Items_Renderer_Id
  • Mage_GoogleBase_Block_Adminhtml_Types_Renderer_Country
  • Mage_Weee_Block_Renderer_Weee_Tax
  • Mage_Widget_Block_Adminhtml_Widget
  • Mage_Widget_Block_Adminhtml_Widget_Chooser

Interfaces

  • Mage_Adminhtml_Block_Widget_Grid_Column_Filter_Interface
  • Mage_Adminhtml_Block_Widget_Grid_Column_Renderer_Interface
  • Mage_Adminhtml_Block_Widget_Grid_Massaction_Item_Additional_Interface
  • Mage_Adminhtml_Block_Widget_Tab_Interface

Exceptions

  • Mage_Adminhtml_Exception
  • 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_Adminhtml
  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: /**
  29:  * Order create model
  30:  *
  31:  * @category    Mage
  32:  * @package     Mage_Adminhtml
  33:  * @author      Magento Core Team <core@magentocommerce.com>
  34:  */
  35: class Mage_Adminhtml_Model_Sales_Order_Create extends Varien_Object implements Mage_Checkout_Model_Cart_Interface
  36: {
  37:     /**
  38:      * Quote session object
  39:      *
  40:      * @var Mage_Adminhtml_Model_Session_Quote
  41:      */
  42:     protected $_session;
  43: 
  44:     /**
  45:      * Quote customer wishlist model object
  46:      *
  47:      * @var Mage_Wishlist_Model_Wishlist
  48:      */
  49:     protected $_wishlist;
  50: 
  51:     /**
  52:      * Sales Quote instance
  53:      *
  54:      * @var Mage_Sales_Model_Quote
  55:      */
  56:     protected $_cart;
  57: 
  58:     /**
  59:      * Catalog Compare List instance
  60:      *
  61:      * @var Mage_Catalog_Model_Product_Compare_List
  62:      */
  63:     protected $_compareList;
  64: 
  65:     /**
  66:      * Re-collect quote flag
  67:      *
  68:      * @var boolean
  69:      */
  70:     protected $_needCollect;
  71: 
  72:     /**
  73:      * Re-collect cart flag
  74:      *
  75:      * @var boolean
  76:      */
  77:     protected $_needCollectCart = false;
  78: 
  79:     /**
  80:      * Collect (import) data and validate it flag
  81:      *
  82:      * @var boolean
  83:      */
  84:     protected $_isValidate              = false;
  85: 
  86:     /**
  87:      * Customer instance
  88:      *
  89:      * @var Mage_Customer_Model_Customer
  90:      */
  91:     protected $_customer;
  92: 
  93:     /**
  94:      * Customer Address Form instance
  95:      *
  96:      * @var Mage_Customer_Model_Form
  97:      */
  98:     protected $_customerAddressForm;
  99: 
 100:     /**
 101:      * Customer Form instance
 102:      *
 103:      * @var Mage_Customer_Model_Form
 104:      */
 105:     protected $_customerForm;
 106: 
 107:     /**
 108:      * Array of validate errors
 109:      *
 110:      * @var array
 111:      */
 112:     protected $_errors = array();
 113: 
 114:     /**
 115:      * Quote associated with the model
 116:      *
 117:      * @var Mage_Sales_Model_Quote
 118:      */
 119:     protected $_quote;
 120: 
 121:     public function __construct()
 122:     {
 123:         $this->_session = Mage::getSingleton('adminhtml/session_quote');
 124:     }
 125: 
 126:     /**
 127:      * Set validate data in import data flag
 128:      *
 129:      * @param boolean $flag
 130:      * @return Mage_Adminhtml_Model_Sales_Order_Create
 131:      */
 132:     public function setIsValidate($flag)
 133:     {
 134:         $this->_isValidate = (bool)$flag;
 135:         return $this;
 136:     }
 137: 
 138:     /**
 139:      * Return is validate data in import flag
 140:      *
 141:      * @return boolean
 142:      */
 143:     public function getIsValidate()
 144:     {
 145:         return $this->_isValidate;
 146:     }
 147: 
 148:     /**
 149:      * Retrieve quote item
 150:      *
 151:      * @param   int|Mage_Sales_Model_Quote_Item $item
 152:      * @return  Mage_Sales_Model_Quote_Item
 153:      */
 154:     protected function _getQuoteItem($item)
 155:     {
 156:         if ($item instanceof Mage_Sales_Model_Quote_Item) {
 157:             return $item;
 158:         } elseif (is_numeric($item)) {
 159:             return $this->getSession()->getQuote()->getItemById($item);
 160:         }
 161:         return false;
 162:     }
 163: 
 164:     /**
 165:      * Initialize data for price rules
 166:      *
 167:      * @return Mage_Adminhtml_Model_Sales_Order_Create
 168:      */
 169:     public function initRuleData()
 170:     {
 171:         Mage::register('rule_data', new Varien_Object(array(
 172:             'store_id'  => $this->_session->getStore()->getId(),
 173:             'website_id'  => $this->_session->getStore()->getWebsiteId(),
 174:             'customer_group_id' => $this->getCustomerGroupId(),
 175:         )));
 176:         return $this;
 177:     }
 178: 
 179:     /**
 180:      * Set collect totals flag for quote
 181:      *
 182:      * @param   bool $flag
 183:      * @return  Mage_Adminhtml_Model_Sales_Order_Create
 184:      */
 185:     public function setRecollect($flag)
 186:     {
 187:         $this->_needCollect = $flag;
 188:         return $this;
 189:     }
 190: 
 191:     /**
 192:      * Recollect totals for customer cart.
 193:      * Set recollect totals flag for quote
 194:      *
 195:      * @return  Mage_Adminhtml_Model_Sales_Order_Create
 196:      */
 197:     public function recollectCart(){
 198:         if ($this->_needCollectCart === true) {
 199:             $this->getCustomerCart()
 200:                 ->collectTotals()
 201:                 ->save();
 202:         }
 203:         $this->setRecollect(true);
 204:         return $this;
 205:     }
 206: 
 207:     /**
 208:      * Quote saving
 209:      *
 210:      * @return Mage_Adminhtml_Model_Sales_Order_Create
 211:      */
 212:     public function saveQuote()
 213:     {
 214:         if (!$this->getQuote()->getId()) {
 215:             return $this;
 216:         }
 217: 
 218:         if ($this->_needCollect) {
 219:             $this->getQuote()->collectTotals();
 220:         }
 221: 
 222:         $this->getQuote()->save();
 223:         return $this;
 224:     }
 225: 
 226:     /**
 227:      * Retrieve session model object of quote
 228:      *
 229:      * @return Mage_Adminhtml_Model_Session_Quote
 230:      */
 231:     public function getSession()
 232:     {
 233:         return $this->_session;
 234:     }
 235: 
 236:     /**
 237:      * Retrieve quote object model
 238:      *
 239:      * @return Mage_Sales_Model_Quote
 240:      */
 241:     public function getQuote()
 242:     {
 243:         if (!$this->_quote) {
 244:             $this->_quote = $this->getSession()->getQuote();
 245:         }
 246:         return $this->_quote;
 247:     }
 248: 
 249:     /**
 250:      * Set quote object
 251:      *
 252:      * @param Mage_Sales_Model_Quote $quote
 253:      * @return Mage_Adminhtml_Model_Sales_Order_Create
 254:      */
 255:     public function setQuote(Mage_Sales_Model_Quote $quote)
 256:     {
 257:         $this->_quote = $quote;
 258:         return $this;
 259:     }
 260: 
 261:     /**
 262:      * Initialize creation data from existing order
 263:      *
 264:      * @param Mage_Sales_Model_Order $order
 265:      * @return unknown
 266:      */
 267:     public function initFromOrder(Mage_Sales_Model_Order $order)
 268:     {
 269:         if (!$order->getReordered()) {
 270:             $this->getSession()->setOrderId($order->getId());
 271:         } else {
 272:             $this->getSession()->setReordered($order->getId());
 273:         }
 274: 
 275:         /**
 276:          * Check if we edit quest order
 277:          */
 278:         $this->getSession()->setCurrencyId($order->getOrderCurrencyCode());
 279:         if ($order->getCustomerId()) {
 280:             $this->getSession()->setCustomerId($order->getCustomerId());
 281:         } else {
 282:             $this->getSession()->setCustomerId(false);
 283:         }
 284: 
 285:         $this->getSession()->setStoreId($order->getStoreId());
 286: 
 287:         /**
 288:          * Initialize catalog rule data with new session values
 289:          */
 290:         $this->initRuleData();
 291:         foreach ($order->getItemsCollection(
 292:             array_keys(Mage::getConfig()->getNode('adminhtml/sales/order/create/available_product_types')->asArray()),
 293:             true
 294:             ) as $orderItem) {
 295:             /* @var $orderItem Mage_Sales_Model_Order_Item */
 296:             if (!$orderItem->getParentItem()) {
 297:                 if ($order->getReordered()) {
 298:                     $qty = $orderItem->getQtyOrdered();
 299:                 } else {
 300:                     $qty = $orderItem->getQtyOrdered() - $orderItem->getQtyShipped() - $orderItem->getQtyInvoiced();
 301:                 }
 302: 
 303:                 if ($qty > 0) {
 304:                     $item = $this->initFromOrderItem($orderItem, $qty);
 305:                     if (is_string($item)) {
 306:                         Mage::throwException($item);
 307:                     }
 308:                 }
 309:             }
 310:         }
 311: 
 312:         $this->_initBillingAddressFromOrder($order);
 313:         $this->_initShippingAddressFromOrder($order);
 314: 
 315:         if (!$this->getQuote()->isVirtual() && $this->getShippingAddress()->getSameAsBilling()) {
 316:             $this->setShippingAsBilling(1);
 317:         }
 318: 
 319:         $this->setShippingMethod($order->getShippingMethod());
 320:         $this->getQuote()->getShippingAddress()->setShippingDescription($order->getShippingDescription());
 321: 
 322:         $this->getQuote()->getPayment()->addData($order->getPayment()->getData());
 323: 
 324: 
 325:         $orderCouponCode = $order->getCouponCode();
 326:         if ($orderCouponCode) {
 327:             $this->getQuote()->setCouponCode($orderCouponCode);
 328:         }
 329: 
 330:         if ($this->getQuote()->getCouponCode()) {
 331:             $this->getQuote()->collectTotals();
 332:         }
 333: 
 334:         Mage::helper('core')->copyFieldset(
 335:             'sales_copy_order',
 336:             'to_edit',
 337:             $order,
 338:             $this->getQuote()
 339:         );
 340: 
 341:         Mage::dispatchEvent('sales_convert_order_to_quote', array(
 342:             'order' => $order,
 343:             'quote' => $this->getQuote()
 344:         ));
 345: 
 346:         if (!$order->getCustomerId()) {
 347:             $this->getQuote()->setCustomerIsGuest(true);
 348:         }
 349: 
 350:         if ($this->getSession()->getUseOldShippingMethod(true)) {
 351:             /*
 352:              * if we are making reorder or editing old order
 353:              * we need to show old shipping as preselected
 354:              * so for this we need to collect shipping rates
 355:              */
 356:             $this->collectShippingRates();
 357:         } else {
 358:             /*
 359:              * if we are creating new order then we don't need to collect
 360:              * shipping rates before customer hit appropriate button
 361:              */
 362:             $this->collectRates();
 363:         }
 364: 
 365:         // Make collect rates when user click "Get shipping methods and rates" in order creating
 366:         // $this->getQuote()->getShippingAddress()->setCollectShippingRates(true);
 367:         // $this->getQuote()->getShippingAddress()->collectShippingRates();
 368: 
 369:         $this->getQuote()->save();
 370: 
 371:         return $this;
 372:     }
 373: 
 374:     protected function _initBillingAddressFromOrder(Mage_Sales_Model_Order $order)
 375:     {
 376:         $this->getQuote()->getBillingAddress()->setCustomerAddressId('');
 377:         Mage::helper('core')->copyFieldset(
 378:             'sales_copy_order_billing_address',
 379:             'to_order',
 380:             $order->getBillingAddress(),
 381:             $this->getQuote()->getBillingAddress()
 382:         );
 383:     }
 384: 
 385:     protected function _initShippingAddressFromOrder(Mage_Sales_Model_Order $order)
 386:     {
 387:         $this->getQuote()->getShippingAddress()->setCustomerAddressId('');
 388:         Mage::helper('core')->copyFieldset(
 389:             'sales_copy_order_shipping_address',
 390:             'to_order',
 391:             $order->getShippingAddress(),
 392:             $this->getQuote()->getShippingAddress()
 393:         );
 394:     }
 395: 
 396:     /**
 397:      * Initialize creation data from existing order Item
 398:      *
 399:      * @param Mage_Sales_Model_Order_Item $orderItem
 400:      * @param int $qty
 401:      * @return Mage_Sales_Model_Quote_Item | string
 402:      */
 403:     public function initFromOrderItem(Mage_Sales_Model_Order_Item $orderItem, $qty = null)
 404:     {
 405:         if (!$orderItem->getId()) {
 406:             return $this;
 407:         }
 408: 
 409:         $product = Mage::getModel('catalog/product')
 410:             ->setStoreId($this->getSession()->getStoreId())
 411:             ->load($orderItem->getProductId());
 412: 
 413:         if ($product->getId()) {
 414:             $product->setSkipCheckRequiredOption(true);
 415:             $buyRequest = $orderItem->getBuyRequest();
 416:             if (is_numeric($qty)) {
 417:                 $buyRequest->setQty($qty);
 418:             }
 419:             $item = $this->getQuote()->addProduct($product, $buyRequest);
 420:             if (is_string($item)) {
 421:                 return $item;
 422:             }
 423: 
 424:             if ($additionalOptions = $orderItem->getProductOptionByCode('additional_options')) {
 425:                 $item->addOption(new Varien_Object(
 426:                     array(
 427:                         'product' => $item->getProduct(),
 428:                         'code' => 'additional_options',
 429:                         'value' => serialize($additionalOptions)
 430:                     )
 431:                 ));
 432:             }
 433: 
 434:             Mage::dispatchEvent('sales_convert_order_item_to_quote_item', array(
 435:                 'order_item' => $orderItem,
 436:                 'quote_item' => $item
 437:             ));
 438:             return $item;
 439:         }
 440: 
 441:         return $this;
 442:     }
 443: 
 444:     /**
 445:      * Retrieve customer wishlist model object
 446:      *
 447:      * @params bool $cacheReload pass cached wishlist object and get new one
 448:      * @return Mage_Wishlist_Model_Wishlist
 449:      */
 450:     public function getCustomerWishlist($cacheReload = false)
 451:     {
 452:         if (!is_null($this->_wishlist) && !$cacheReload) {
 453:             return $this->_wishlist;
 454:         }
 455: 
 456:         if ($this->getSession()->getCustomer()->getId()) {
 457:             $this->_wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer(
 458:                 $this->getSession()->getCustomer(), true
 459:             );
 460:             $this->_wishlist->setStore($this->getSession()->getStore())
 461:                 ->setSharedStoreIds($this->getSession()->getStore()->getWebsite()->getStoreIds());
 462:         } else {
 463:             $this->_wishlist = false;
 464:         }
 465: 
 466:         return $this->_wishlist;
 467:     }
 468: 
 469:     /**
 470:      * Retrieve customer cart quote object model
 471:      *
 472:      * @return Mage_Sales_Model_Quote
 473:      */
 474:     public function getCustomerCart()
 475:     {
 476:         if (!is_null($this->_cart)) {
 477:             return $this->_cart;
 478:         }
 479: 
 480:         $this->_cart = Mage::getModel('sales/quote');
 481: 
 482:         if ($this->getSession()->getCustomer()->getId()) {
 483:             $this->_cart->setStore($this->getSession()->getStore())
 484:                 ->loadByCustomer($this->getSession()->getCustomer()->getId());
 485:             if (!$this->_cart->getId()) {
 486:                 $this->_cart->assignCustomer($this->getSession()->getCustomer());
 487:                 $this->_cart->save();
 488:             }
 489:         }
 490: 
 491:         return $this->_cart;
 492:     }
 493: 
 494:     /**
 495:      * Retrieve customer compare list model object
 496:      *
 497:      * @return Mage_Catalog_Model_Product_Compare_List
 498:      */
 499:     public function getCustomerCompareList()
 500:     {
 501:         if (!is_null($this->_compareList)) {
 502:             return $this->_compareList;
 503:         }
 504: 
 505:         if ($this->getSession()->getCustomer()->getId()) {
 506:             $this->_compareList = Mage::getModel('catalog/product_compare_list');
 507:         } else {
 508:             $this->_compareList = false;
 509:         }
 510:         return $this->_compareList;
 511:     }
 512: 
 513:     public function getCustomerGroupId()
 514:     {
 515:         $groupId = $this->getQuote()->getCustomerGroupId();
 516:         if (!$groupId) {
 517:             $groupId = $this->getSession()->getCustomerGroupId();
 518:         }
 519:         return $groupId;
 520:     }
 521: 
 522:     /**
 523:      * Move quote item to another items list
 524:      *
 525:      * @param   int|Mage_Sales_Model_Quote_Item $item
 526:      * @param   string $moveTo
 527:      * @param   int $qty
 528:      * @return  Mage_Adminhtml_Model_Sales_Order_Create
 529:      */
 530:     public function moveQuoteItem($item, $moveTo, $qty)
 531:     {
 532:         $item = $this->_getQuoteItem($item);
 533:         if ($item) {
 534:             $removeItem = false;
 535:             $moveTo = explode('_', $moveTo);
 536:             switch ($moveTo[0]) {
 537:                 case 'order':
 538:                     $info = $item->getBuyRequest();
 539:                     $info->setOptions($this->_prepareOptionsForRequest($item))
 540:                         ->setQty($qty);
 541: 
 542:                     $product = Mage::getModel('catalog/product')
 543:                         ->setStoreId($this->getQuote()->getStoreId())
 544:                         ->load($item->getProduct()->getId());
 545: 
 546:                     $product->setSkipCheckRequiredOption(true);
 547:                     $newItem = $this->getQuote()->addProduct($product, $info);
 548: 
 549:                     if (is_string($newItem)) {
 550:                         Mage::throwException($newItem);
 551:                     }
 552:                     $product->unsSkipCheckRequiredOption();
 553:                     $newItem->checkData();
 554:                     $this->_needCollectCart = true;
 555:                     break;
 556:                 case 'cart':
 557:                     $cart = $this->getCustomerCart();
 558:                     if ($cart && is_null($item->getOptionByCode('additional_options'))) {
 559:                         //options and info buy request
 560:                         $product = Mage::getModel('catalog/product')
 561:                             ->setStoreId($this->getQuote()->getStoreId())
 562:                             ->load($item->getProduct()->getId());
 563: 
 564:                         $info = $item->getOptionByCode('info_buyRequest');
 565:                         if ($info) {
 566:                             $info = new Varien_Object(
 567:                                 unserialize($info->getValue())
 568:                             );
 569:                             $info->setQty($qty);
 570:                             $info->setOptions($this->_prepareOptionsForRequest($item));
 571:                         } else {
 572:                             $info = new Varien_Object(array(
 573:                                 'product_id' => $product->getId(),
 574:                                 'qty' => $qty,
 575:                                 'options' => $this->_prepareOptionsForRequest($item)
 576:                             ));
 577:                         }
 578: 
 579:                         $cartItem = $cart->addProduct($product, $info);
 580:                         if (is_string($cartItem)) {
 581:                             Mage::throwException($cartItem);
 582:                         }
 583:                         $cartItem->setPrice($item->getProduct()->getPrice());
 584:                         $this->_needCollectCart = true;
 585:                         $removeItem = true;
 586:                     }
 587:                     break;
 588:                 case 'wishlist':
 589:                     $wishlist = null;
 590:                     if (!isset($moveTo[1])) {
 591:                         $wishlist = Mage::getModel('wishlist/wishlist')->loadByCustomer(
 592:                             $this->getSession()->getCustomer(),
 593:                             true
 594:                         );
 595:                     } else {
 596:                         $wishlist = Mage::getModel('wishlist/wishlist')->load($moveTo[1]);
 597:                         if (!$wishlist->getId()
 598:                             || $wishlist->getCustomerId() != $this->getSession()->getCustomerId()
 599:                         ) {
 600:                             $wishlist = null;
 601:                         }
 602:                     }
 603:                     if (!$wishlist) {
 604:                         Mage::throwException(Mage::helper('wishlist')->__('Could not find wishlist'));
 605:                     }
 606:                     $wishlist->setStore($this->getSession()->getStore())
 607:                         ->setSharedStoreIds($this->getSession()->getStore()->getWebsite()->getStoreIds());
 608: 
 609:                     if ($wishlist->getId() && $item->getProduct()->isVisibleInSiteVisibility()) {
 610:                         $info = $item->getBuyRequest();
 611:                         $info->setOptions($this->_prepareOptionsForRequest($item))
 612:                             ->setQty($qty)
 613:                             ->setStoreId($this->getSession()->getStoreId());
 614:                         $wishlist->addNewItem($item->getProduct(), $info);
 615:                         $removeItem = true;
 616:                     }
 617:                     break;
 618:                 case 'remove':
 619:                     $removeItem = true;
 620:                     break;
 621:                 default:
 622:                     break;
 623:             }
 624:             if ($removeItem) {
 625:                 $this->getQuote()->removeItem($item->getId());
 626:             }
 627:             $this->setRecollect(true);
 628:         }
 629:         return $this;
 630:     }
 631: 
 632:     /**
 633:      * Handle data sent from sidebar
 634:      *
 635:      * @param array $data
 636:      * @return Mage_Adminhtml_Model_Sales_Order_Create
 637:      */
 638:     public function applySidebarData($data)
 639:     {
 640:         if (isset($data['add_order_item'])) {
 641:             foreach ($data['add_order_item'] as $orderItemId => $value) {
 642:                 /* @var $orderItem Mage_Sales_Model_Order_Item */
 643:                 $orderItem = Mage::getModel('sales/order_item')->load($orderItemId);
 644:                 $item = $this->initFromOrderItem($orderItem);
 645:                 if (is_string($item)) {
 646:                     Mage::throwException($item);
 647:                 }
 648:             }
 649:         }
 650:         if (isset($data['add_cart_item'])) {
 651:             foreach ($data['add_cart_item'] as $itemId => $qty) {
 652:                 $item = $this->getCustomerCart()->getItemById($itemId);
 653:                 if ($item) {
 654:                     $this->moveQuoteItem($item, 'order', $qty);
 655:                     $this->removeItem($itemId, 'cart');
 656:                 }
 657:             }
 658:         }
 659:         if (isset($data['add_wishlist_item'])) {
 660:             foreach ($data['add_wishlist_item'] as $itemId => $qty) {
 661:                 $item = Mage::getModel('wishlist/item')
 662:                     ->loadWithOptions($itemId, 'info_buyRequest');
 663:                 if ($item->getId()) {
 664:                     $this->addProduct($item->getProduct(), $item->getBuyRequest()->toArray());
 665:                 }
 666:             }
 667:         }
 668:         if (isset($data['add'])) {
 669:             foreach ($data['add'] as $productId => $qty) {
 670:                 $this->addProduct($productId, array('qty' => $qty));
 671:             }
 672:         }
 673:         if (isset($data['remove'])) {
 674:             foreach ($data['remove'] as $itemId => $from) {
 675:                 $this->removeItem($itemId, $from);
 676:             }
 677:         }
 678:         if (isset($data['empty_customer_cart']) && (int)$data['empty_customer_cart'] == 1) {
 679:             $this->getCustomerCart()->removeAllItems()->collectTotals()->save();
 680:         }
 681:         return $this;
 682:     }
 683: 
 684:     /**
 685:      * Remove item from some of customer items storage (shopping cart, wishlist etc.)
 686:      *
 687:      * @param   int $itemId
 688:      * @param   string $from
 689:      * @return  Mage_Adminhtml_Model_Sales_Order_Create
 690:      */
 691:     public function removeItem($itemId, $from)
 692:     {
 693:         switch ($from) {
 694:             case 'quote':
 695:                 $this->removeQuoteItem($itemId);
 696:                 break;
 697:             case 'cart':
 698:                 if ($cart = $this->getCustomerCart()) {
 699:                     $cart->removeItem($itemId);
 700:                     $cart->collectTotals()
 701:                         ->save();
 702:                 }
 703:                 break;
 704:             case 'wishlist':
 705:                 if ($wishlist = $this->getCustomerWishlist()) {
 706:                     $item = Mage::getModel('wishlist/item')->load($itemId);
 707:                     $item->delete();
 708:                 }
 709:                 break;
 710:             case 'compared':
 711:                 $item = Mage::getModel('catalog/product_compare_item')
 712:                     ->load($itemId)
 713:                     ->delete();
 714:                 break;
 715:         }
 716:         return $this;
 717:     }
 718: 
 719:     /**
 720:      * Remove quote item
 721:      *
 722:      * @param   int $item
 723:      * @return  Mage_Adminhtml_Model_Sales_Order_Create
 724:      */
 725:     public function removeQuoteItem($item)
 726:     {
 727:         $this->getQuote()->removeItem($item);
 728:         $this->setRecollect(true);
 729:         return $this;
 730:     }
 731: 
 732:     /**
 733:      * Add product to current order quote
 734:      * $product can be either product id or product model
 735:      * $config can be either buyRequest config, or just qty
 736:      *
 737:      * @param   int|Mage_Catalog_Model_Product $product
 738:      * @param   float|array|Varien_Object $config
 739:      * @return  Mage_Adminhtml_Model_Sales_Order_Create
 740:      */
 741:     public function addProduct($product, $config = 1)
 742:     {
 743:         if (!is_array($config) && !($config instanceof Varien_Object)) {
 744:             $config = array('qty' => $config);
 745:         }
 746:         $config = new Varien_Object($config);
 747: 
 748:         if (!($product instanceof Mage_Catalog_Model_Product)) {
 749:             $productId = $product;
 750:             $product = Mage::getModel('catalog/product')
 751:                 ->setStore($this->getSession()->getStore())
 752:                 ->setStoreId($this->getSession()->getStoreId())
 753:                 ->load($product);
 754:             if (!$product->getId()) {
 755:                 Mage::throwException(
 756:                     Mage::helper('adminhtml')->__('Failed to add a product to cart by id "%s".', $productId)
 757:                 );
 758:             }
 759:         }
 760: 
 761:         $stockItem = $product->getStockItem();
 762:         if ($stockItem && $stockItem->getIsQtyDecimal()) {
 763:             $product->setIsQtyDecimal(1);
 764:         } else {
 765:             $config->setQty((int) $config->getQty());
 766:         }
 767: 
 768:         $product->setCartQty($config->getQty());
 769:         $item = $this->getQuote()->addProductAdvanced(
 770:             $product,
 771:             $config,
 772:             Mage_Catalog_Model_Product_Type_Abstract::PROCESS_MODE_FULL
 773:         );
 774:         if (is_string($item)) {
 775:             if ($product->getTypeId() != Mage_Catalog_Model_Product_Type_Grouped::TYPE_CODE) {
 776:                 $item = $this->getQuote()->addProductAdvanced(
 777:                     $product,
 778:                     $config,
 779:                     Mage_Catalog_Model_Product_Type_Abstract::PROCESS_MODE_LITE
 780:                 );
 781:             }
 782:             if (is_string($item)) {
 783:                 Mage::throwException($item);
 784:             }
 785:         }
 786:         $item->checkData();
 787: 
 788:         $this->setRecollect(true);
 789:         return $this;
 790:     }
 791: 
 792:     /**
 793:      * Add multiple products to current order quote
 794:      *
 795:      * @param   array $products
 796:      * @return  Mage_Adminhtml_Model_Sales_Order_Create|Exception
 797:      */
 798:     public function addProducts(array $products)
 799:     {
 800:         foreach ($products as $productId => $config) {
 801:             $config['qty'] = isset($config['qty']) ? (float)$config['qty'] : 1;
 802:             try {
 803:                 $this->addProduct($productId, $config);
 804:             }
 805:             catch (Mage_Core_Exception $e){
 806:                 $this->getSession()->addError($e->getMessage());
 807:             }
 808:             catch (Exception $e){
 809:                 return $e;
 810:             }
 811:         }
 812:         return $this;
 813:     }
 814: 
 815:     /**
 816:      * Update quantity of order quote items
 817:      *
 818:      * @param   array $data
 819:      * @return  Mage_Adminhtml_Model_Sales_Order_Create
 820:      */
 821:     public function updateQuoteItems($data)
 822:     {
 823:         if (is_array($data)) {
 824:             try {
 825:                 foreach ($data as $itemId => $info) {
 826:                     if (!empty($info['configured'])) {
 827:                         $item = $this->getQuote()->updateItem($itemId, new Varien_Object($info));
 828:                         $itemQty = (float)$item->getQty();
 829:                     } else {
 830:                         $item       = $this->getQuote()->getItemById($itemId);
 831:                         $itemQty    = (float)$info['qty'];
 832:                     }
 833: 
 834:                     if ($item) {
 835:                         if ($item->getProduct()->getStockItem()) {
 836:                             if (!$item->getProduct()->getStockItem()->getIsQtyDecimal()) {
 837:                                 $itemQty = (int)$itemQty;
 838:                             } else {
 839:                                 $item->setIsQtyDecimal(1);
 840:                             }
 841:                         }
 842:                         $itemQty    = $itemQty > 0 ? $itemQty : 1;
 843:                         if (isset($info['custom_price'])) {
 844:                             $itemPrice  = $this->_parseCustomPrice($info['custom_price']);
 845:                         } else {
 846:                             $itemPrice = null;
 847:                         }
 848:                         $noDiscount = !isset($info['use_discount']);
 849: 
 850:                         if (empty($info['action']) || !empty($info['configured'])) {
 851:                             $item->setQty($itemQty);
 852:                             $item->setCustomPrice($itemPrice);
 853:                             $item->setOriginalCustomPrice($itemPrice);
 854:                             $item->setNoDiscount($noDiscount);
 855:                             $item->getProduct()->setIsSuperMode(true);
 856:                             $item->getProduct()->unsSkipCheckRequiredOption();
 857:                             $item->checkData();
 858:                         } else {
 859:                             $this->moveQuoteItem($item->getId(), $info['action'], $itemQty);
 860:                         }
 861:                     }
 862:                 }
 863:             } catch (Mage_Core_Exception $e) {
 864:                 $this->recollectCart();
 865:                 throw $e;
 866:             } catch (Exception $e) {
 867:                 Mage::logException($e);
 868:             }
 869:             $this->recollectCart();
 870:         }
 871:         return $this;
 872:     }
 873: 
 874:     /**
 875:      * Parse additional options and sync them with product options
 876:      *
 877:      * @param Mage_Sales_Model_Quote_Item $product
 878:      * @param array $options
 879:      */
 880:     protected function _parseOptions(Mage_Sales_Model_Quote_Item $item, $additionalOptions)
 881:     {
 882:         $productOptions = Mage::getSingleton('catalog/product_option_type_default')
 883:             ->setProduct($item->getProduct())
 884:             ->getProductOptions();
 885: 
 886:         $newOptions = array();
 887:         $newAdditionalOptions = array();
 888: 
 889:         foreach (explode("\n", $additionalOptions) as $_additionalOption) {
 890:             if (strlen(trim($_additionalOption))) {
 891:                 try {
 892:                     if (strpos($_additionalOption, ':') === false) {
 893:                         Mage::throwException(
 894:                             Mage::helper('adminhtml')->__('There is an error in one of the option rows.')
 895:                         );
 896:                     }
 897:                     list($label,$value) = explode(':', $_additionalOption, 2);
 898:                 } catch (Exception $e) {
 899:                     Mage::throwException(Mage::helper('adminhtml')->__('There is an error in one of the option rows.'));
 900:                 }
 901:                 $label = trim($label);
 902:                 $value = trim($value);
 903:                 if (empty($value)) {
 904:                     continue;
 905:                 }
 906: 
 907:                 if (array_key_exists($label, $productOptions)) {
 908:                     $optionId = $productOptions[$label]['option_id'];
 909:                     $option = $item->getProduct()->getOptionById($optionId);
 910: 
 911:                     $group = Mage::getSingleton('catalog/product_option')->groupFactory($option->getType())
 912:                         ->setOption($option)
 913:                         ->setProduct($item->getProduct());
 914: 
 915:                     $parsedValue = $group->parseOptionValue($value, $productOptions[$label]['values']);
 916: 
 917:                     if ($parsedValue !== null) {
 918:                         $newOptions[$optionId] = $parsedValue;
 919:                     } else {
 920:                         $newAdditionalOptions[] = array(
 921:                             'label' => $label,
 922:                             'value' => $value
 923:                         );
 924:                     }
 925:                 } else {
 926:                     $newAdditionalOptions[] = array(
 927:                         'label' => $label,
 928:                         'value' => $value
 929:                     );
 930:                 }
 931:             }
 932:         }
 933: 
 934:         return array(
 935:             'options' => $newOptions,
 936:             'additional_options' => $newAdditionalOptions
 937:         );
 938:     }
 939: 
 940:     /**
 941:      * Assign options to item
 942:      *
 943:      * @param Mage_Sales_Model_Quote_Item $item
 944:      * @param array $options
 945:      */
 946:     protected function _assignOptionsToItem(Mage_Sales_Model_Quote_Item $item, $options)
 947:     {
 948:         if ($optionIds = $item->getOptionByCode('option_ids')) {
 949:             foreach (explode(',', $optionIds->getValue()) as $optionId) {
 950:                 $item->removeOption('option_'.$optionId);
 951:             }
 952:             $item->removeOption('option_ids');
 953:         }
 954:         if ($item->getOptionByCode('additional_options')) {
 955:             $item->removeOption('additional_options');
 956:         }
 957:         $item->save();
 958:         if (!empty($options['options'])) {
 959:             $item->addOption(new Varien_Object(
 960:                 array(
 961:                     'product' => $item->getProduct(),
 962:                     'code' => 'option_ids',
 963:                     'value' => implode(',', array_keys($options['options']))
 964:                 )
 965:             ));
 966: 
 967:             foreach ($options['options'] as $optionId => $optionValue) {
 968:                 $item->addOption(new Varien_Object(
 969:                     array(
 970:                         'product' => $item->getProduct(),
 971:                         'code' => 'option_'.$optionId,
 972:                         'value' => $optionValue
 973:                     )
 974:                 ));
 975:             }
 976:         }
 977:         if (!empty($options['additional_options'])) {
 978:             $item->addOption(new Varien_Object(
 979:                 array(
 980:                     'product' => $item->getProduct(),
 981:                     'code' => 'additional_options',
 982:                     'value' => serialize($options['additional_options'])
 983:                 )
 984:             ));
 985:         }
 986: 
 987:         return $this;
 988:     }
 989: 
 990:     /**
 991:      * Prepare options array for info buy request
 992:      *
 993:      * @param Mage_Sales_Model_Quote_Item $item
 994:      * @return array
 995:      */
 996:     protected function _prepareOptionsForRequest($item)
 997:     {
 998:         $newInfoOptions = array();
 999:         if ($optionIds = $item->getOptionByCode('option_ids')) {
1000:             foreach (explode(',', $optionIds->getValue()) as $optionId) {
1001:                 $option = $item->getProduct()->getOptionById($optionId);
1002:                 $optionValue = $item->getOptionByCode('option_'.$optionId)->getValue();
1003: 
1004:                 $group = Mage::getSingleton('catalog/product_option')->groupFactory($option->getType())
1005:                     ->setOption($option)
1006:                     ->setQuoteItem($item);
1007: 
1008:                 $newInfoOptions[$optionId] = $group->prepareOptionValueForRequest($optionValue);
1009:             }
1010:         }
1011:         return $newInfoOptions;
1012:     }
1013: 
1014:     protected function _parseCustomPrice($price)
1015:     {
1016:         $price = Mage::app()->getLocale()->getNumber($price);
1017:         $price = $price>0 ? $price : 0;
1018:         return $price;
1019:     }
1020: 
1021:     /**
1022:      * Retrieve oreder quote shipping address
1023:      *
1024:      * @return Mage_Sales_Model_Quote_Address
1025:      */
1026:     public function getShippingAddress()
1027:     {
1028:         return $this->getQuote()->getShippingAddress();
1029:     }
1030: 
1031:     /**
1032:      * Return Customer (Checkout) Form instance
1033:      *
1034:      * @return Mage_Customer_Model_Form
1035:      */
1036:     protected function _getCustomerForm()
1037:     {
1038:         if (is_null($this->_customerForm)) {
1039:             $this->_customerForm = Mage::getModel('customer/form')
1040:                 ->setFormCode('adminhtml_checkout')
1041:                 ->ignoreInvisible(false);
1042:         }
1043:         return $this->_customerForm;
1044:     }
1045: 
1046:     /**
1047:      * Return Customer Address Form instance
1048:      *
1049:      * @return Mage_Customer_Model_Form
1050:      */
1051:     protected function _getCustomerAddressForm()
1052:     {
1053:         if (is_null($this->_customerAddressForm)) {
1054:             $this->_customerAddressForm = Mage::getModel('customer/form')
1055:                 ->setFormCode('adminhtml_customer_address')
1056:                 ->ignoreInvisible(false);
1057:         }
1058:         return $this->_customerAddressForm;
1059:     }
1060: 
1061:     /**
1062:      * Set and validate Quote address
1063:      * All errors added to _errors
1064:      *
1065:      * @param Mage_Sales_Model_Quote_Address $address
1066:      * @param array $data
1067:      * @return Mage_Adminhtml_Model_Sales_Order_Create
1068:      */
1069:     protected function _setQuoteAddress(Mage_Sales_Model_Quote_Address $address, array $data)
1070:     {
1071:         $addressForm    = $this->_getCustomerAddressForm()
1072:             ->setEntity($address)
1073:             ->setEntityType(Mage::getSingleton('eav/config')->getEntityType('customer_address'))
1074:             ->setIsAjaxRequest(!$this->getIsValidate());
1075: 
1076:         // prepare request
1077:         // save original request structure for files
1078:         if ($address->getAddressType() == Mage_Sales_Model_Quote_Address::TYPE_SHIPPING) {
1079:             $requestData  = array('order' => array('shipping_address' => $data));
1080:             $requestScope = 'order/shipping_address';
1081:         } else {
1082:             $requestData = array('order' => array('billing_address' => $data));
1083:             $requestScope = 'order/billing_address';
1084:         }
1085:         $request        = $addressForm->prepareRequest($requestData);
1086:         $addressData    = $addressForm->extractData($request, $requestScope);
1087:         if ($this->getIsValidate()) {
1088:             $errors = $addressForm->validateData($addressData);
1089:             if ($errors !== true) {
1090:                 if ($address->getAddressType() == Mage_Sales_Model_Quote_Address::TYPE_SHIPPING) {
1091:                     $typeName = Mage::helper('adminhtml')->__('Shipping Address: ');
1092:                 } else {
1093:                     $typeName = Mage::helper('adminhtml')->__('Billing Address: ');
1094:                 }
1095:                 foreach ($errors as $error) {
1096:                     $this->_errors[] = $typeName . $error;
1097:                 }
1098:                 $addressForm->restoreData($addressData);
1099:             } else {
1100:                 $addressForm->compactData($addressData);
1101:             }
1102:         } else {
1103:             $addressForm->restoreData($addressData);
1104:         }
1105: 
1106:         return $this;
1107:     }
1108: 
1109:     public function setShippingAddress($address)
1110:     {
1111:         if (is_array($address)) {
1112:             $address['save_in_address_book'] = isset($address['save_in_address_book'])
1113:                 && !empty($address['save_in_address_book']);
1114:             $shippingAddress = Mage::getModel('sales/quote_address')
1115:                 ->setData($address)
1116:                 ->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_SHIPPING);
1117:             if (!$this->getQuote()->isVirtual()) {
1118:                 $this->_setQuoteAddress($shippingAddress, $address);
1119:             }
1120:             $shippingAddress->implodeStreetAddress();
1121:         }
1122:         if ($address instanceof Mage_Sales_Model_Quote_Address) {
1123:             $shippingAddress = $address;
1124:         }
1125: 
1126:         $this->setRecollect(true);
1127:         $this->getQuote()->setShippingAddress($shippingAddress);
1128:         return $this;
1129:     }
1130: 
1131:     public function setShippingAsBilling($flag)
1132:     {
1133:         if ($flag) {
1134:             $tmpAddress = clone $this->getBillingAddress();
1135:             $tmpAddress->unsAddressId()
1136:                 ->unsAddressType();
1137:             $data = $tmpAddress->getData();
1138:             $data['save_in_address_book'] = 0; // Do not duplicate address (billing address will do saving too)
1139:             $this->getShippingAddress()->addData($data);
1140:         }
1141:         $this->getShippingAddress()->setSameAsBilling($flag);
1142:         $this->setRecollect(true);
1143:         return $this;
1144:     }
1145: 
1146:     /**
1147:      * Retrieve quote billing address
1148:      *
1149:      * @return Mage_Sales_Model_Quote_Address
1150:      */
1151:     public function getBillingAddress()
1152:     {
1153:         return $this->getQuote()->getBillingAddress();
1154:     }
1155: 
1156:     public function setBillingAddress($address)
1157:     {
1158:         if (is_array($address)) {
1159:             $address['save_in_address_book'] = isset($address['save_in_address_book']) ? 1 : 0;
1160:             $billingAddress = Mage::getModel('sales/quote_address')
1161:                 ->setData($address)
1162:                 ->setAddressType(Mage_Sales_Model_Quote_Address::TYPE_BILLING);
1163:             $this->_setQuoteAddress($billingAddress, $address);
1164:             $billingAddress->implodeStreetAddress();
1165:         }
1166: 
1167:         if ($this->getShippingAddress()->getSameAsBilling()) {
1168:             $shippingAddress = clone $billingAddress;
1169:             $shippingAddress->setSameAsBilling(true);
1170:             $shippingAddress->setSaveInAddressBook(false);
1171:             $address['save_in_address_book'] = 0;
1172:             $this->setShippingAddress($address);
1173:         }
1174: 
1175:         $this->getQuote()->setBillingAddress($billingAddress);
1176:         return $this;
1177:     }
1178: 
1179:     public function setShippingMethod($method)
1180:     {
1181:         $this->getShippingAddress()->setShippingMethod($method);
1182:         $this->setRecollect(true);
1183:         return $this;
1184:     }
1185: 
1186:     public function resetShippingMethod()
1187:     {
1188:         $this->getShippingAddress()->setShippingMethod(false);
1189:         $this->getShippingAddress()->removeAllShippingRates();
1190:         return $this;
1191:     }
1192: 
1193:     /**
1194:      * Collect shipping data for quote shipping address
1195:      */
1196:     public function collectShippingRates()
1197:     {
1198:         $this->getQuote()->getShippingAddress()->setCollectShippingRates(true);
1199:         $this->collectRates();
1200:         return $this;
1201:     }
1202: 
1203:     public function collectRates()
1204:     {
1205:         $this->getQuote()->collectTotals();
1206:     }
1207: 
1208:     public function setPaymentMethod($method)
1209:     {
1210:         $this->getQuote()->getPayment()->setMethod($method);
1211:         return $this;
1212:     }
1213: 
1214:     public function setPaymentData($data)
1215:     {
1216:         if (!isset($data['method'])) {
1217:             $data['method'] = $this->getQuote()->getPayment()->getMethod();
1218:         }
1219:         $this->getQuote()->getPayment()->importData($data);
1220:         return $this;
1221:     }
1222: 
1223:     public function applyCoupon($code)
1224:     {
1225:         $code = trim((string)$code);
1226:         $this->getQuote()->setCouponCode($code);
1227:         $this->setRecollect(true);
1228:         return $this;
1229:     }
1230: 
1231:     public function setAccountData($accountData)
1232:     {
1233:         $customer   = $this->getQuote()->getCustomer();
1234:         $form       = $this->_getCustomerForm();
1235:         $form->setEntity($customer);
1236: 
1237:         // emulate request
1238:         $request = $form->prepareRequest($accountData);
1239:         $data    = $form->extractData($request);
1240:         $form->restoreData($data);
1241: 
1242:         $data = array();
1243:         foreach ($form->getAttributes() as $attribute) {
1244:             $code = sprintf('customer_%s', $attribute->getAttributeCode());
1245:             $data[$code] = $customer->getData($attribute->getAttributeCode());
1246:         }
1247: 
1248:         if (isset($data['customer_group_id'])) {
1249:             $groupModel = Mage::getModel('customer/group')->load($data['customer_group_id']);
1250:             $data['customer_tax_class_id'] = $groupModel->getTaxClassId();
1251:             $this->setRecollect(true);
1252:         }
1253: 
1254:         $this->getQuote()->addData($data);
1255:         return $this;
1256:     }
1257: 
1258:     /**
1259:      * Parse data retrieved from request
1260:      *
1261:      * @param   array $data
1262:      * @return  Mage_Adminhtml_Model_Sales_Order_Create
1263:      */
1264:     public function importPostData($data)
1265:     {
1266:         if (is_array($data)) {
1267:             $this->addData($data);
1268:         } else {
1269:             return $this;
1270:         }
1271: 
1272:         if (isset($data['account'])) {
1273:             $this->setAccountData($data['account']);
1274:         }
1275: 
1276:         if (isset($data['comment'])) {
1277:             $this->getQuote()->addData($data['comment']);
1278:             if (empty($data['comment']['customer_note_notify'])) {
1279:                 $this->getQuote()->setCustomerNoteNotify(false);
1280:             } else {
1281:                 $this->getQuote()->setCustomerNoteNotify(true);
1282:             }
1283:         }
1284: 
1285:         if (isset($data['billing_address'])) {
1286:             $this->setBillingAddress($data['billing_address']);
1287:         }
1288: 
1289:         if (isset($data['shipping_address'])) {
1290:             $this->setShippingAddress($data['shipping_address']);
1291:         }
1292: 
1293:         if (isset($data['shipping_method'])) {
1294:             $this->setShippingMethod($data['shipping_method']);
1295:         }
1296: 
1297:         if (isset($data['payment_method'])) {
1298:             $this->setPaymentMethod($data['payment_method']);
1299:         }
1300: 
1301:         if (isset($data['coupon']['code'])) {
1302:             $this->applyCoupon($data['coupon']['code']);
1303:         }
1304:         return $this;
1305:     }
1306: 
1307:     /**
1308:      * Check whether we need to create new customer (for another website) during order creation
1309:      *
1310:      * @param   Mage_Core_Model_Store $store
1311:      * @return  boolean
1312:      */
1313:     protected function _customerIsInStore($store)
1314:     {
1315:         $customer = $this->getSession()->getCustomer();
1316:         if ($customer->getWebsiteId() == $store->getWebsiteId()) {
1317:             return true;
1318:         }
1319:         return $customer->isInStore($store);
1320:     }
1321: 
1322:     /**
1323:      * Set and validate Customer data
1324:      *
1325:      * @param Mage_Customer_Model_Customer $customer
1326:      * @return Mage_Adminhtml_Model_Sales_Order_Create
1327:      */
1328:     protected function _setCustomerData(Mage_Customer_Model_Customer $customer)
1329:     {
1330:         $form = $this->_getCustomerForm();
1331:         $form->setEntity($customer);
1332: 
1333:         // emulate request
1334:         $request = $form->prepareRequest(array('order' => $this->getData()));
1335:         $data    = $form->extractData($request, 'order/account');
1336:         if ($this->getIsValidate()) {
1337:             $errors = $form->validateData($data);
1338:             if ($errors !== true) {
1339:                 foreach ($errors as $error) {
1340:                     $this->_errors[] = $error;
1341:                 }
1342:                 $form->restoreData($data);
1343:             } else {
1344:                 $form->compactData($data);
1345:             }
1346:         } else {
1347:             $form->restoreData($data);
1348:         }
1349: 
1350:         return $this;
1351:     }
1352: 
1353:     /**
1354:      * Prepare quote customer
1355:      *
1356:      * @return Mage_Adminhtml_Model_Sales_Order_Create
1357:      */
1358:     public function _prepareCustomer()
1359:     {
1360:         /** @var $quote Mage_Sales_Model_Quote */
1361:         $quote = $this->getQuote();
1362:         if ($quote->getCustomerIsGuest()) {
1363:             return $this;
1364:         }
1365: 
1366:         /** @var $customer Mage_Customer_Model_Customer */
1367:         $customer = $this->getSession()->getCustomer();
1368:         /** @var $store Mage_Core_Model_Store */
1369:         $store = $this->getSession()->getStore();
1370: 
1371:         $customerIsInStore = $this->_customerIsInStore($store);
1372:         $customerBillingAddress = null;
1373:         $customerShippingAddress = null;
1374: 
1375:         if ($customer->getId()) {
1376:             // Create new customer if customer is not registered in specified store
1377:             if (!$customerIsInStore) {
1378:                 $customer->setId(null)
1379:                     ->setStore($store)
1380:                     ->setDefaultBilling(null)
1381:                     ->setDefaultShipping(null)
1382:                     ->setPassword($customer->generatePassword());
1383:                 $this->_setCustomerData($customer);
1384:             }
1385: 
1386:             if ($this->getBillingAddress()->getSaveInAddressBook()) {
1387:                 /** @var $customerBillingAddress Mage_Customer_Model_Address */
1388:                 $customerBillingAddress = $this->getBillingAddress()->exportCustomerAddress();
1389:                 $customerAddressId = $this->getBillingAddress()->getCustomerAddressId();
1390:                 if ($customerAddressId && $customer->getId()) {
1391:                     $customer->getAddressItemById($customerAddressId)->addData($customerBillingAddress->getData());
1392:                 } else {
1393:                     $customer->addAddress($customerBillingAddress);
1394:                 }
1395:             }
1396: 
1397:             if (!$this->getQuote()->isVirtual() && $this->getShippingAddress()->getSaveInAddressBook()) {
1398:                 /** @var $customerShippingAddress Mage_Customer_Model_Address */
1399:                 $customerShippingAddress = $this->getShippingAddress()->exportCustomerAddress();
1400:                 $customerAddressId = $this->getShippingAddress()->getCustomerAddressId();
1401:                 if ($customerAddressId && $customer->getId()) {
1402:                     $customer->getAddressItemById($customerAddressId)->addData($customerShippingAddress->getData());
1403:                 } elseif (!empty($customerAddressId)
1404:                     && $customerBillingAddress !== null
1405:                     && $this->getBillingAddress()->getCustomerAddressId() == $customerAddressId
1406:                 ) {
1407:                     $customerBillingAddress->setIsDefaultShipping(true);
1408:                 } else {
1409:                     $customer->addAddress($customerShippingAddress);
1410:                 }
1411:             }
1412: 
1413:             if (is_null($customer->getDefaultBilling()) && $customerBillingAddress) {
1414:                 $customerBillingAddress->setIsDefaultBilling(true);
1415:             }
1416: 
1417:             if (is_null($customer->getDefaultShipping())) {
1418:                 if ($this->getShippingAddress()->getSameAsBilling() && $customerBillingAddress) {
1419:                     $customerBillingAddress->setIsDefaultShipping(true);
1420:                 } elseif ($customerShippingAddress) {
1421:                     $customerShippingAddress->setIsDefaultShipping(true);
1422:                 }
1423:             }
1424:         } else {
1425:             // Prepare new customer
1426:             /** @var $customerBillingAddress Mage_Customer_Model_Address */
1427:             $customerBillingAddress = $this->getBillingAddress()->exportCustomerAddress();
1428:             $customer->addData($customerBillingAddress->getData())
1429:                 ->setPassword($customer->generatePassword())
1430:                 ->setStore($store);
1431:             $customer->setEmail($this->_getNewCustomerEmail($customer));
1432:             $this->_setCustomerData($customer);
1433: 
1434:             if ($this->getBillingAddress()->getSaveInAddressBook()) {
1435:                 $customerBillingAddress->setIsDefaultBilling(true);
1436:                 $customer->addAddress($customerBillingAddress);
1437:             }
1438: 
1439:             /** @var $shippingAddress Mage_Sales_Model_Quote_Address */
1440:             $shippingAddress = $this->getShippingAddress();
1441:             if (!$this->getQuote()->isVirtual()
1442:                 && !$shippingAddress->getSameAsBilling()
1443:                 && $shippingAddress->getSaveInAddressBook()
1444:             ) {
1445:                 /** @var $customerShippingAddress Mage_Customer_Model_Address */
1446:                 $customerShippingAddress = $shippingAddress->exportCustomerAddress();
1447:                 $customerShippingAddress->setIsDefaultShipping(true);
1448:                 $customer->addAddress($customerShippingAddress);
1449:             } else {
1450:                 $customerBillingAddress->setIsDefaultShipping(true);
1451:             }
1452:         }
1453: 
1454:         // Set quote customer data to customer
1455:         $this->_setCustomerData($customer);
1456: 
1457:         // Set customer to quote and convert customer data to quote
1458:         $quote->setCustomer($customer);
1459: 
1460:         // Add user defined attributes to quote
1461:         $form = $this->_getCustomerForm()->setEntity($customer);
1462:         foreach ($form->getUserAttributes() as $attribute) {
1463:             $quoteCode = sprintf('customer_%s', $attribute->getAttributeCode());
1464:             $quote->setData($quoteCode, $customer->getData($attribute->getAttributeCode()));
1465:         }
1466: 
1467:         if ($customer->getId()) {
1468:             // Restore account data for existing customer
1469:             $this->_getCustomerForm()
1470:                 ->setEntity($customer)
1471:                 ->resetEntityData();
1472:         } else {
1473:             $quote->setCustomerId(true);
1474:         }
1475: 
1476:         return $this;
1477:     }
1478: 
1479:     /**
1480:      * Prepare item otions
1481:      */
1482:     protected function _prepareQuoteItems()
1483:     {
1484:         foreach ($this->getQuote()->getAllItems() as $item) {
1485:             $options = array();
1486:             $productOptions = $item->getProduct()->getTypeInstance(true)->getOrderOptions($item->getProduct());
1487:             if ($productOptions) {
1488:                 $productOptions['info_buyRequest']['options'] = $this->_prepareOptionsForRequest($item);
1489:                 $options = $productOptions;
1490:             }
1491:             $addOptions = $item->getOptionByCode('additional_options');
1492:             if ($addOptions) {
1493:                 $options['additional_options'] = unserialize($addOptions->getValue());
1494:             }
1495:             $item->setProductOrderOptions($options);
1496:         }
1497:         return $this;
1498:     }
1499: 
1500:     /**
1501:      * Create new order
1502:      *
1503:      * @return Mage_Sales_Model_Order
1504:      */
1505:     public function createOrder()
1506:     {
1507:         $this->_prepareCustomer();
1508:         $this->_validate();
1509:         $quote = $this->getQuote();
1510:         $this->_prepareQuoteItems();
1511: 
1512:         $service = Mage::getModel('sales/service_quote', $quote);
1513:         if ($this->getSession()->getOrder()->getId()) {
1514:             $oldOrder = $this->getSession()->getOrder();
1515:             $originalId = $oldOrder->getOriginalIncrementId();
1516:             if (!$originalId) {
1517:                 $originalId = $oldOrder->getIncrementId();
1518:             }
1519:             $orderData = array(
1520:                 'original_increment_id'     => $originalId,
1521:                 'relation_parent_id'        => $oldOrder->getId(),
1522:                 'relation_parent_real_id'   => $oldOrder->getIncrementId(),
1523:                 'edit_increment'            => $oldOrder->getEditIncrement()+1,
1524:                 'increment_id'              => $originalId.'-'.($oldOrder->getEditIncrement()+1)
1525:             );
1526:             $quote->setReservedOrderId($orderData['increment_id']);
1527:             $service->setOrderData($orderData);
1528:         }
1529: 
1530:         $order = $service->submit();
1531:         if ((!$quote->getCustomer()->getId() || !$quote->getCustomer()->isInStore($this->getSession()->getStore()))
1532:             && !$quote->getCustomerIsGuest()
1533:         ) {
1534:             $quote->getCustomer()->setCreatedAt($order->getCreatedAt());
1535:             $quote->getCustomer()
1536:                 ->save()
1537:                 ->sendNewAccountEmail('registered', '', $quote->getStoreId());;
1538:         }
1539:         if ($this->getSession()->getOrder()->getId()) {
1540:             $oldOrder = $this->getSession()->getOrder();
1541: 
1542:             $this->getSession()->getOrder()->setRelationChildId($order->getId());
1543:             $this->getSession()->getOrder()->setRelationChildRealId($order->getIncrementId());
1544:             $this->getSession()->getOrder()->cancel()
1545:                 ->save();
1546:             $order->save();
1547:         }
1548:         if ($this->getSendConfirmation()) {
1549:             $order->sendNewOrderEmail();
1550:         }
1551: 
1552:         Mage::dispatchEvent('checkout_submit_all_after', array('order' => $order, 'quote' => $quote));
1553: 
1554:         return $order;
1555:     }
1556: 
1557:     /**
1558:      * Validate quote data before order creation
1559:      *
1560:      * @return Mage_Adminhtml_Model_Sales_Order_Create
1561:      */
1562:     protected function _validate()
1563:     {
1564:         $customerId = $this->getSession()->getCustomerId();
1565:         if (is_null($customerId)) {
1566:             Mage::throwException(Mage::helper('adminhtml')->__('Please select a customer.'));
1567:         }
1568: 
1569:         if (!$this->getSession()->getStore()->getId()) {
1570:             Mage::throwException(Mage::helper('adminhtml')->__('Please select a store.'));
1571:         }
1572:         $items = $this->getQuote()->getAllItems();
1573: 
1574:         if (count($items) == 0) {
1575:             $this->_errors[] = Mage::helper('adminhtml')->__('You need to specify order items.');
1576:         }
1577: 
1578:         foreach ($items as $item) {
1579:             $messages = $item->getMessage(false);
1580:             if ($item->getHasError() && is_array($messages) && !empty($messages)) {
1581:                 $this->_errors = array_merge($this->_errors, $messages);
1582:             }
1583:         }
1584: 
1585:         if (!$this->getQuote()->isVirtual()) {
1586:             if (!$this->getQuote()->getShippingAddress()->getShippingMethod()) {
1587:                 $this->_errors[] = Mage::helper('adminhtml')->__('Shipping method must be specified.');
1588:             }
1589:         }
1590: 
1591:         if (!$this->getQuote()->getPayment()->getMethod()) {
1592:             $this->_errors[] = Mage::helper('adminhtml')->__('Payment method must be specified.');
1593:         } else {
1594:             $method = $this->getQuote()->getPayment()->getMethodInstance();
1595:             if (!$method) {
1596:                 $this->_errors[] = Mage::helper('adminhtml')->__('Payment method instance is not available.');
1597:             } else {
1598:                 if (!$method->isAvailable($this->getQuote())) {
1599:                     $this->_errors[] = Mage::helper('adminhtml')->__('Payment method is not available.');
1600:                 } else {
1601:                     try {
1602:                         $method->validate();
1603:                     } catch (Mage_Core_Exception $e) {
1604:                         $this->_errors[] = $e->getMessage();
1605:                     }
1606:                 }
1607:             }
1608:         }
1609: 
1610:         if (!empty($this->_errors)) {
1611:             foreach ($this->_errors as $error) {
1612:                 $this->getSession()->addError($error);
1613:             }
1614:             Mage::throwException('');
1615:         }
1616:         return $this;
1617:     }
1618: 
1619:     /**
1620:      * Retrieve new customer email
1621:      *
1622:      * @param   Mage_Customer_Model_Customer $customer
1623:      * @return  string
1624:      */
1625:     protected function _getNewCustomerEmail($customer)
1626:     {
1627:         $email = $this->getData('account/email');
1628:         if (empty($email)) {
1629:             $host = $this->getSession()
1630:                 ->getStore()
1631:                 ->getConfig(Mage_Customer_Model_Customer::XML_PATH_DEFAULT_EMAIL_DOMAIN);
1632:             $account = $customer->getIncrementId() ? $customer->getIncrementId() : time();
1633:             $email = $account.'@'. $host;
1634:             $account = $this->getData('account');
1635:             $account['email'] = $email;
1636:             $this->setData('account', $account);
1637:         }
1638:         return $email;
1639:     }
1640: 
1641:     /**
1642:      * Create customer model and assign it to quote
1643:      * @deprecated after 1.4.0.0.
1644:      */
1645:     protected function _putCustomerIntoQuote()
1646:     {
1647:         if (!$this->getSession()->getCustomer()->getId()) {
1648:             /** @var Mage_Customer_Model_Customer*/
1649:             $customer = Mage::getModel('customer/customer');
1650: 
1651:             $customer->addData($this->getBillingAddress()->exportCustomerAddress()->getData())
1652:                      ->addData($this->getData('account'))
1653:                      ->setPassword($customer->generatePassword())
1654:                      ->setWebsiteId($this->getSession()->getStore()->getWebsiteId())
1655:                      ->setStoreId($this->getSession()->getStore()->getId())
1656:                      ->setEmail($this->_getNewCustomerEmail($customer));
1657:         } elseif (($customer = $this->getSession()->getCustomer())
1658:                 && $customer->getId()
1659:                 && !$this->getSession()->getCustomer(true, true)->getId()
1660:         ) {
1661:             $customer = clone $customer;
1662:             $customer->setStore($this->getSession()->getStore())
1663:                 ->save();
1664:             $this->getSession()->setCustomer($customer);
1665:             $customer->addData($this->getData('account'));
1666:         } else {
1667:             $customer = $this->getSession()->getCustomer();
1668:             $customer->addData($this->getData('account'));
1669:         }
1670:         $this->getQuote()->setCustomer($customer);
1671:         $this->_customer = $customer;
1672:     }
1673: 
1674:     /**
1675:      * Save customer
1676:      *
1677:      * @deprecated after 1.4.0.0.
1678:      * @param Mage_Customer_Model_Customer $order
1679:      */
1680:     protected function _saveCustomerAfterOrder($order)
1681:     {
1682:         if ($this->_customer) {
1683:             if (! $this->_customer->getId()) {
1684:                 $billing          = $this->getBillingAddress();
1685:                 $customerBilling  = $billing->exportCustomerAddress();
1686:                 $shipping         = $this->getShippingAddress();
1687:                 $customerShipping = $shipping->exportCustomerAddress();
1688: 
1689:                 $this->_customer->addAddress($customerBilling);
1690: 
1691:                 if (! $shipping->getSameAsBilling()) {
1692:                     $this->_customer->addAddress($customerShipping);
1693:                 }
1694:                 // preliminary save to find addresses id
1695:                 $this->_customer->save();
1696:                 // setting default addresses id
1697:                 $defShipping = $shipping->getSameAsBilling() ? $customerBilling->getId() : $customerShipping->getId();
1698:                 $this->_customer
1699:                     ->setDefaultBilling($customerBilling->getId())
1700:                     ->setDefaultShipping($defShipping)
1701:                     ->save();
1702: 
1703:                 $order->setCustomerId($this->_customer->getId());
1704:                 $billing->setCustomerId($this->_customer->getId());
1705:                 $shipping->setCustomerId($this->_customer->getId());
1706:                 $this->_customer->sendNewAccountEmail('registered', '', $order->getStoreId());
1707:             } else {
1708:                 $saveCusstomerAddress = false;
1709: 
1710:                 if ($this->getBillingAddress()->getSaveInAddressBook()) {
1711:                     $billingAddress = $this->getBillingAddress()->exportCustomerAddress();
1712:                     if ($this->getBillingAddress()->getCustomerAddressId()) {
1713:                         $billingAddress->setId($this->getBillingAddress()->getCustomerAddressId());
1714:                     }
1715:                     $this->_customer->addAddress($billingAddress);
1716:                     $saveCusstomerAddress = true;
1717:                 }
1718:                 if ($this->getShippingAddress()->getSaveInAddressBook()) {
1719:                     $shippingAddress = $this->getShippingAddress()->exportCustomerAddress();
1720:                     if ($this->getShippingAddress()->getCustomerAddressId()) {
1721:                         $shippingAddress->setId($this->getShippingAddress()->getCustomerAddressId());
1722:                     }
1723:                     $this->_customer->addAddress($shippingAddress);
1724:                     $saveCusstomerAddress = true;
1725:                 }
1726:                 if ($saveCusstomerAddress) {
1727:                     $this->_customer->save();
1728:                 }
1729:             }
1730:         }
1731:     }
1732: 
1733:     /**
1734:      * @deprecated after 1.1.7
1735:      * @return unknown
1736:      */
1737:     protected function _saveCustomer()
1738:     {
1739:         if (!$this->getSession()->getCustomer()->getId()) {
1740:             $customer = Mage::getModel('customer/customer');
1741:             /* @var $customer Mage_Customer_Model_Customer*/
1742: 
1743:             $billingAddress = $this->getBillingAddress()->exportCustomerAddress();
1744: 
1745:             $customer->addData($billingAddress->getData())
1746:                 ->addData($this->getData('account'))
1747:                 ->setPassword($customer->generatePassword())
1748:                 ->setWebsiteId($this->getSession()->getStore()->getWebsiteId())
1749:                 ->setStoreId($this->getSession()->getStore()->getId())
1750:                 ->addAddress($billingAddress);
1751: 
1752:             if (!$this->getShippingAddress()->getSameAsBilling()) {
1753:                 $shippingAddress = $this->getShippingAddress()->exportCustomerAddress();
1754:                 $customer->addAddress($shippingAddress);
1755:             } else {
1756:                 $shippingAddress = $billingAddress;
1757:             }
1758:             $customer->save();
1759: 
1760: 
1761:             $customer->setEmail($this->_getNewCustomerEmail($customer))
1762:                 ->setDefaultBilling($billingAddress->getId())
1763:                 ->setDefaultShipping($shippingAddress->getId())
1764:                 ->save();
1765: 
1766:             $this->getBillingAddress()->setCustomerId($customer->getId());
1767:             $this->getShippingAddress()->setCustomerId($customer->getId());
1768: 
1769:             $customer->sendNewAccountEmail('registered', '', $customer->getStoreId());
1770:         } else {
1771:             $customer = $this->getSession()->getCustomer();
1772: 
1773:             $saveCusstomerAddress = false;
1774: 
1775:             if ($this->getBillingAddress()->getSaveInAddressBook()) {
1776:                 $billingAddress = $this->getBillingAddress()->exportCustomerAddress();
1777:                 if ($this->getBillingAddress()->getCustomerAddressId()) {
1778:                     $billingAddress->setId($this->getBillingAddress()->getCustomerAddressId());
1779:                 }
1780:                 $customer->addAddress($billingAddress);
1781:                 $saveCusstomerAddress = true;
1782:             }
1783:             if ($this->getShippingAddress()->getSaveInAddressBook()) {
1784:                 $shippingAddress = $this->getShippingAddress()->exportCustomerAddress();
1785:                 if ($this->getShippingAddress()->getCustomerAddressId()) {
1786:                     $shippingAddress->setId($this->getShippingAddress()->getCustomerAddressId());
1787:                 }
1788:                 $customer->addAddress($shippingAddress);
1789:                 $saveCusstomerAddress = true;
1790:             }
1791:             if ($saveCusstomerAddress) {
1792:                 $customer->save();
1793:             }
1794: 
1795:             $customer->addData($this->getData('account'));
1796:             /**
1797:              * don't save account information, use it only for order creation
1798:              */
1799:             //$customer->save();
1800:         }
1801:         $this->getQuote()->setCustomer($customer);
1802:         return $this;
1803:     }
1804: }
1805: 
Magento 1.7.0.2 API documentation generated by ApiGen 2.8.0