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_Catalog_Block_Breadcrumbs
  • Mage_Catalog_Block_Category_View
  • Mage_Catalog_Block_Category_Widget_Link
  • Mage_Catalog_Block_Layer_Filter_Abstract
  • Mage_Catalog_Block_Layer_Filter_Attribute
  • Mage_Catalog_Block_Layer_Filter_Category
  • Mage_Catalog_Block_Layer_Filter_Decimal
  • Mage_Catalog_Block_Layer_Filter_Price
  • Mage_Catalog_Block_Layer_State
  • Mage_Catalog_Block_Layer_View
  • Mage_Catalog_Block_Navigation
  • Mage_Catalog_Block_Product
  • Mage_Catalog_Block_Product_Abstract
  • Mage_Catalog_Block_Product_Compare_Abstract
  • Mage_Catalog_Block_Product_Compare_List
  • Mage_Catalog_Block_Product_Compare_Sidebar
  • Mage_Catalog_Block_Product_Gallery
  • Mage_Catalog_Block_Product_List
  • Mage_Catalog_Block_Product_List_Crosssell
  • Mage_Catalog_Block_Product_List_Promotion
  • Mage_Catalog_Block_Product_List_Random
  • Mage_Catalog_Block_Product_List_Related
  • Mage_Catalog_Block_Product_List_Toolbar
  • Mage_Catalog_Block_Product_List_Upsell
  • Mage_Catalog_Block_Product_New
  • Mage_Catalog_Block_Product_Price
  • Mage_Catalog_Block_Product_Price_Template
  • Mage_Catalog_Block_Product_Send
  • Mage_Catalog_Block_Product_View
  • Mage_Catalog_Block_Product_View_Abstract
  • Mage_Catalog_Block_Product_View_Additional
  • Mage_Catalog_Block_Product_View_Attributes
  • Mage_Catalog_Block_Product_View_Description
  • Mage_Catalog_Block_Product_View_Media
  • Mage_Catalog_Block_Product_View_Options
  • Mage_Catalog_Block_Product_View_Options_Abstract
  • Mage_Catalog_Block_Product_View_Options_Type_Date
  • Mage_Catalog_Block_Product_View_Options_Type_Default
  • Mage_Catalog_Block_Product_View_Options_Type_File
  • Mage_Catalog_Block_Product_View_Options_Type_Select
  • Mage_Catalog_Block_Product_View_Options_Type_Text
  • Mage_Catalog_Block_Product_View_Price
  • Mage_Catalog_Block_Product_View_Tabs
  • Mage_Catalog_Block_Product_View_Type_Configurable
  • Mage_Catalog_Block_Product_View_Type_Grouped
  • Mage_Catalog_Block_Product_View_Type_Simple
  • Mage_Catalog_Block_Product_View_Type_Virtual
  • Mage_Catalog_Block_Product_Widget_Link
  • Mage_Catalog_Block_Product_Widget_New
  • Mage_Catalog_Block_Seo_Sitemap_Abstract
  • Mage_Catalog_Block_Seo_Sitemap_Category
  • Mage_Catalog_Block_Seo_Sitemap_Product
  • Mage_Catalog_Block_Seo_Sitemap_Tree_Category
  • Mage_Catalog_Block_Widget_Link
  • Mage_Catalog_CategoryController
  • Mage_Catalog_Exception
  • Mage_Catalog_Helper_Category
  • Mage_Catalog_Helper_Category_Flat
  • Mage_Catalog_Helper_Data
  • Mage_Catalog_Helper_Image
  • Mage_Catalog_Helper_Map
  • Mage_Catalog_Helper_Output
  • Mage_Catalog_Helper_Product
  • Mage_Catalog_Helper_Product_Compare
  • Mage_Catalog_Helper_Product_Configuration
  • Mage_Catalog_Helper_Product_Flat
  • Mage_Catalog_Helper_Product_Options
  • Mage_Catalog_Helper_Product_Url
  • Mage_Catalog_Helper_Product_View
  • Mage_Catalog_IndexController
  • Mage_Catalog_Model_Abstract
  • Mage_Catalog_Model_Api2_Product
  • Mage_Catalog_Model_Api2_Product_Category
  • Mage_Catalog_Model_Api2_Product_Category_Rest
  • Mage_Catalog_Model_Api2_Product_Category_Rest_Admin_V1
  • Mage_Catalog_Model_Api2_Product_Category_Rest_Customer_V1
  • Mage_Catalog_Model_Api2_Product_Category_Rest_Guest_V1
  • Mage_Catalog_Model_Api2_Product_Image
  • Mage_Catalog_Model_Api2_Product_Image_Rest
  • Mage_Catalog_Model_Api2_Product_Image_Rest_Admin_V1
  • Mage_Catalog_Model_Api2_Product_Image_Rest_Customer_V1
  • Mage_Catalog_Model_Api2_Product_Image_Rest_Guest_V1
  • Mage_Catalog_Model_Api2_Product_Image_Validator_Image
  • Mage_Catalog_Model_Api2_Product_Rest
  • Mage_Catalog_Model_Api2_Product_Rest_Admin_V1
  • Mage_Catalog_Model_Api2_Product_Rest_Customer_V1
  • Mage_Catalog_Model_Api2_Product_Rest_Guest_V1
  • Mage_Catalog_Model_Api2_Product_Validator_Product
  • Mage_Catalog_Model_Api2_Product_Website
  • Mage_Catalog_Model_Api2_Product_Website_Rest
  • Mage_Catalog_Model_Api2_Product_Website_Rest_Admin_V1
  • Mage_Catalog_Model_Api2_Product_Website_Validator_Admin_Website
  • Mage_Catalog_Model_Api_Resource
  • Mage_Catalog_Model_Attribute_Backend_Customlayoutupdate
  • Mage_Catalog_Model_Category
  • Mage_Catalog_Model_Category_Api
  • Mage_Catalog_Model_Category_Api_V2
  • Mage_Catalog_Model_Category_Attribute_Api
  • Mage_Catalog_Model_Category_Attribute_Api_V2
  • Mage_Catalog_Model_Category_Attribute_Backend_Image
  • Mage_Catalog_Model_Category_Attribute_Backend_Sortby
  • Mage_Catalog_Model_Category_Attribute_Backend_Urlkey
  • Mage_Catalog_Model_Category_Attribute_Source_Layout
  • Mage_Catalog_Model_Category_Attribute_Source_Mode
  • Mage_Catalog_Model_Category_Attribute_Source_Page
  • Mage_Catalog_Model_Category_Attribute_Source_Sortby
  • Mage_Catalog_Model_Category_Indexer_Flat
  • Mage_Catalog_Model_Category_Indexer_Product
  • Mage_Catalog_Model_Config
  • Mage_Catalog_Model_Convert
  • Mage_Catalog_Model_Convert_Adapter_Catalog
  • Mage_Catalog_Model_Convert_Adapter_Product
  • Mage_Catalog_Model_Convert_Parser_Product
  • Mage_Catalog_Model_Design
  • Mage_Catalog_Model_Entity_Attribute
  • Mage_Catalog_Model_Entity_Product_Attribute_Frontend_Image
  • Mage_Catalog_Model_Index
  • Mage_Catalog_Model_Indexer_Url
  • Mage_Catalog_Model_Layer
  • Mage_Catalog_Model_Layer_Filter_Abstract
  • Mage_Catalog_Model_Layer_Filter_Attribute
  • Mage_Catalog_Model_Layer_Filter_Category
  • Mage_Catalog_Model_Layer_Filter_Decimal
  • Mage_Catalog_Model_Layer_Filter_Item
  • Mage_Catalog_Model_Layer_Filter_Price
  • Mage_Catalog_Model_Layer_Filter_Price_Algorithm
  • Mage_Catalog_Model_Layer_State
  • Mage_Catalog_Model_Observer
  • Mage_Catalog_Model_Product
  • Mage_Catalog_Model_Product_Action
  • Mage_Catalog_Model_Product_Api
  • Mage_Catalog_Model_Product_Api_V2
  • Mage_Catalog_Model_Product_Attribute_Api
  • Mage_Catalog_Model_Product_Attribute_Api_V2
  • Mage_Catalog_Model_Product_Attribute_Backend_Boolean
  • Mage_Catalog_Model_Product_Attribute_Backend_Groupprice
  • Mage_Catalog_Model_Product_Attribute_Backend_Groupprice_Abstract
  • Mage_Catalog_Model_Product_Attribute_Backend_Media
  • Mage_Catalog_Model_Product_Attribute_Backend_Msrp
  • Mage_Catalog_Model_Product_Attribute_Backend_Price
  • Mage_Catalog_Model_Product_Attribute_Backend_Recurring
  • Mage_Catalog_Model_Product_Attribute_Backend_Sku
  • Mage_Catalog_Model_Product_Attribute_Backend_Startdate
  • Mage_Catalog_Model_Product_Attribute_Backend_Tierprice
  • Mage_Catalog_Model_Product_Attribute_Backend_Urlkey
  • Mage_Catalog_Model_Product_Attribute_Frontend_Image
  • Mage_Catalog_Model_Product_Attribute_Group
  • Mage_Catalog_Model_Product_Attribute_Media_Api
  • Mage_Catalog_Model_Product_Attribute_Media_Api_V2
  • Mage_Catalog_Model_Product_Attribute_Set_Api
  • Mage_Catalog_Model_Product_Attribute_Set_Api_V2
  • Mage_Catalog_Model_Product_Attribute_Source_Boolean
  • Mage_Catalog_Model_Product_Attribute_Source_Countryofmanufacture
  • Mage_Catalog_Model_Product_Attribute_Source_Layout
  • Mage_Catalog_Model_Product_Attribute_Source_Msrp_Type
  • Mage_Catalog_Model_Product_Attribute_Source_Msrp_Type_Enabled
  • Mage_Catalog_Model_Product_Attribute_Source_Msrp_Type_Price
  • Mage_Catalog_Model_Product_Attribute_Tierprice_Api
  • Mage_Catalog_Model_Product_Attribute_Tierprice_Api_V2
  • Mage_Catalog_Model_Product_Compare_Item
  • Mage_Catalog_Model_Product_Compare_List
  • Mage_Catalog_Model_Product_Condition
  • Mage_Catalog_Model_Product_Configuration_Item_Option
  • Mage_Catalog_Model_Product_Flat_Flag
  • Mage_Catalog_Model_Product_Flat_Indexer
  • Mage_Catalog_Model_Product_Flat_Observer
  • Mage_Catalog_Model_Product_Image
  • Mage_Catalog_Model_Product_Indexer_Eav
  • Mage_Catalog_Model_Product_Indexer_Flat
  • Mage_Catalog_Model_Product_Indexer_Price
  • Mage_Catalog_Model_Product_Link
  • Mage_Catalog_Model_Product_Link_Api
  • Mage_Catalog_Model_Product_Link_Api_V2
  • Mage_Catalog_Model_Product_Media_Config
  • Mage_Catalog_Model_Product_Option
  • Mage_Catalog_Model_Product_Option_Api
  • Mage_Catalog_Model_Product_Option_Api_V2
  • Mage_Catalog_Model_Product_Option_Observer
  • Mage_Catalog_Model_Product_Option_Type_Date
  • Mage_Catalog_Model_Product_Option_Type_Default
  • Mage_Catalog_Model_Product_Option_Type_File
  • Mage_Catalog_Model_Product_Option_Type_Select
  • Mage_Catalog_Model_Product_Option_Type_Text
  • Mage_Catalog_Model_Product_Option_Value
  • Mage_Catalog_Model_Product_Option_Value_Api
  • Mage_Catalog_Model_Product_Option_Value_Api_V2
  • Mage_Catalog_Model_Product_Status
  • Mage_Catalog_Model_Product_Type
  • Mage_Catalog_Model_Product_Type_Abstract
  • Mage_Catalog_Model_Product_Type_Api
  • Mage_Catalog_Model_Product_Type_Api_V2
  • Mage_Catalog_Model_Product_Type_Configurable
  • Mage_Catalog_Model_Product_Type_Configurable_Attribute
  • Mage_Catalog_Model_Product_Type_Configurable_Price
  • Mage_Catalog_Model_Product_Type_Grouped
  • Mage_Catalog_Model_Product_Type_Grouped_Price
  • Mage_Catalog_Model_Product_Type_Price
  • Mage_Catalog_Model_Product_Type_Simple
  • Mage_Catalog_Model_Product_Type_Virtual
  • Mage_Catalog_Model_Product_Url
  • Mage_Catalog_Model_Product_Visibility
  • Mage_Catalog_Model_Product_Website
  • Mage_Catalog_Model_Resource_Abstract
  • Mage_Catalog_Model_Resource_Attribute
  • Mage_Catalog_Model_Resource_Category
  • Mage_Catalog_Model_Resource_Category_Attribute_Collection
  • Mage_Catalog_Model_Resource_Category_Attribute_Frontend_Image
  • Mage_Catalog_Model_Resource_Category_Attribute_Source_Layout
  • Mage_Catalog_Model_Resource_Category_Attribute_Source_Mode
  • Mage_Catalog_Model_Resource_Category_Attribute_Source_Page
  • Mage_Catalog_Model_Resource_Category_Collection
  • Mage_Catalog_Model_Resource_Category_Flat
  • Mage_Catalog_Model_Resource_Category_Flat_Collection
  • Mage_Catalog_Model_Resource_Category_Indexer_Product
  • Mage_Catalog_Model_Resource_Category_Tree
  • Mage_Catalog_Model_Resource_Collection_Abstract
  • Mage_Catalog_Model_Resource_Config
  • Mage_Catalog_Model_Resource_Eav_Attribute
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Abstract
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Attribute
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Category
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Attribute_Collection
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Attribute_Frontend_Image
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Attribute_Source_Layout
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Attribute_Source_Mode
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Attribute_Source_Page
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Collection
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Flat
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Flat_Collection
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Indexer_Product
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Category_Tree
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Collection_Abstract
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Config
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Layer_Filter_Attribute
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Layer_Filter_Decimal
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Layer_Filter_Price
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Action
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Backend_Image
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Backend_Media
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Backend_Tierprice
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Backend_Urlkey
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Collection
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Frontend_Image
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Frontend_Tierprice
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Collection
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Compare_Item
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Compare_Item_Collection
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Flat
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Flat_Indexer
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Indexer_Abstract
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Indexer_Eav
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Indexer_Eav_Abstract
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Indexer_Eav_Decimal
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Indexer_Eav_Source
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Indexer_Price
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Indexer_Price_Configurable
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Indexer_Price_Default
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Indexer_Price_Grouped
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Link
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Link_Collection
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Link_Product_Collection
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Option
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Option_Collection
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Option_Value
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Option_Value_Collection
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Relation
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Status
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable_Attribute
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable_Attribute_Collection
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Type_Configurable_Product_Collection
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Website
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Sendfriend
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Sendfriend_Collection
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Setup
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Url
  • Mage_Catalog_Model_Resource_Helper_Mysql4
  • Mage_Catalog_Model_Resource_Layer_Filter_Attribute
  • Mage_Catalog_Model_Resource_Layer_Filter_Decimal
  • Mage_Catalog_Model_Resource_Layer_Filter_Price
  • Mage_Catalog_Model_Resource_Product
  • Mage_Catalog_Model_Resource_Product_Action
  • Mage_Catalog_Model_Resource_Product_Attribute_Backend_Groupprice
  • Mage_Catalog_Model_Resource_Product_Attribute_Backend_Groupprice_Abstract
  • Mage_Catalog_Model_Resource_Product_Attribute_Backend_Image
  • Mage_Catalog_Model_Resource_Product_Attribute_Backend_Media
  • Mage_Catalog_Model_Resource_Product_Attribute_Backend_Tierprice
  • Mage_Catalog_Model_Resource_Product_Attribute_Backend_Urlkey
  • Mage_Catalog_Model_Resource_Product_Attribute_Collection
  • Mage_Catalog_Model_Resource_Product_Attribute_Frontend_Image
  • Mage_Catalog_Model_Resource_Product_Attribute_Frontend_Tierprice
  • Mage_Catalog_Model_Resource_Product_Collection
  • Mage_Catalog_Model_Resource_Product_Compare_Item
  • Mage_Catalog_Model_Resource_Product_Compare_Item_Collection
  • Mage_Catalog_Model_Resource_Product_Flat
  • Mage_Catalog_Model_Resource_Product_Flat_Indexer
  • Mage_Catalog_Model_Resource_Product_Indexer_Abstract
  • Mage_Catalog_Model_Resource_Product_Indexer_Eav
  • Mage_Catalog_Model_Resource_Product_Indexer_Eav_Abstract
  • Mage_Catalog_Model_Resource_Product_Indexer_Eav_Decimal
  • Mage_Catalog_Model_Resource_Product_Indexer_Eav_Source
  • Mage_Catalog_Model_Resource_Product_Indexer_Price
  • Mage_Catalog_Model_Resource_Product_Indexer_Price_Configurable
  • Mage_Catalog_Model_Resource_Product_Indexer_Price_Default
  • Mage_Catalog_Model_Resource_Product_Indexer_Price_Grouped
  • Mage_Catalog_Model_Resource_Product_Link
  • Mage_Catalog_Model_Resource_Product_Link_Collection
  • Mage_Catalog_Model_Resource_Product_Link_Product_Collection
  • Mage_Catalog_Model_Resource_Product_Option
  • Mage_Catalog_Model_Resource_Product_Option_Collection
  • Mage_Catalog_Model_Resource_Product_Option_Value
  • Mage_Catalog_Model_Resource_Product_Option_Value_Collection
  • Mage_Catalog_Model_Resource_Product_Relation
  • Mage_Catalog_Model_Resource_Product_Status
  • Mage_Catalog_Model_Resource_Product_Type_Configurable
  • Mage_Catalog_Model_Resource_Product_Type_Configurable_Attribute
  • Mage_Catalog_Model_Resource_Product_Type_Configurable_Attribute_Collection
  • Mage_Catalog_Model_Resource_Product_Type_Configurable_Product_Collection
  • Mage_Catalog_Model_Resource_Product_Website
  • Mage_Catalog_Model_Resource_Setup
  • Mage_Catalog_Model_Resource_Url
  • Mage_Catalog_Model_Session
  • Mage_Catalog_Model_System_Config_Backend_Catalog_Category_Flat
  • Mage_Catalog_Model_System_Config_Backend_Catalog_Product_Flat
  • Mage_Catalog_Model_System_Config_Backend_Catalog_Url_Rewrite_Suffix
  • Mage_Catalog_Model_Template_Filter
  • Mage_Catalog_Model_Url
  • Mage_Catalog_Product_CompareController
  • Mage_Catalog_ProductController
  • Mage_Catalog_Seo_SitemapController
  • Mage_CatalogSearch_Model_Resource_Helper_Mysql4
  • Mage_XmlConnect_Model_Catalog_Category_Media_Config

Interfaces

  • Mage_Catalog_Helper_Product_Configuration_Interface
  • Mage_Catalog_Model_Product_Condition_Interface
  • Mage_Catalog_Model_Product_Configuration_Item_Interface
  • Mage_Catalog_Model_Product_Configuration_Item_Option_Interface
  • Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Indexer_Price_Interface
  • Mage_Catalog_Model_Resource_Product_Indexer_Price_Interface
  • Overview
  • Package
  • Class
  • Tree
  1: <?php
  2: /**
  3:  * Magento
  4:  *
  5:  * NOTICE OF LICENSE
  6:  *
  7:  * This source file is subject to the Open Software License (OSL 3.0)
  8:  * that is bundled with this package in the file LICENSE.txt.
  9:  * It is also available through the world-wide-web at this URL:
 10:  * http://opensource.org/licenses/osl-3.0.php
 11:  * If you did not receive a copy of the license and are unable to
 12:  * obtain it through the world-wide-web, please send an email
 13:  * to license@magentocommerce.com so we can send you a copy immediately.
 14:  *
 15:  * DISCLAIMER
 16:  *
 17:  * Do not edit or add to this file if you wish to upgrade Magento to newer
 18:  * versions in the future. If you wish to customize Magento for your
 19:  * needs please refer to http://www.magentocommerce.com for more information.
 20:  *
 21:  * @category    Mage
 22:  * @package     Mage_Catalog
 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:  * Abstract API2 class for product instance
 29:  *
 30:  * @category   Mage
 31:  * @package    Mage_Catalog
 32:  * @author     Magento Core Team <core@magentocommerce.com>
 33:  */
 34: abstract class Mage_Catalog_Model_Api2_Product_Rest extends Mage_Catalog_Model_Api2_Product
 35: {
 36:     /**
 37:      * Current loaded product
 38:      *
 39:      * @var Mage_Catalog_Model_Product
 40:      */
 41:     protected $_product;
 42: 
 43:     /**
 44:      * Retrieve product data
 45:      *
 46:      * @return array
 47:      */
 48:     protected function _retrieve()
 49:     {
 50:         $product = $this->_getProduct();
 51: 
 52:         $this->_prepareProductForResponse($product);
 53:         return $product->getData();
 54:     }
 55: 
 56:     /**
 57:      * Retrieve list of products
 58:      *
 59:      * @return array
 60:      */
 61:     protected function _retrieveCollection()
 62:     {
 63:         /** @var $collection Mage_Catalog_Model_Resource_Product_Collection */
 64:         $collection = Mage::getResourceModel('catalog/product_collection');
 65:         $store = $this->_getStore();
 66:         $entityOnlyAttributes = $this->getEntityOnlyAttributes($this->getUserType(),
 67:             Mage_Api2_Model_Resource::OPERATION_ATTRIBUTE_READ);
 68:         $availableAttributes = array_keys($this->getAvailableAttributes($this->getUserType(),
 69:             Mage_Api2_Model_Resource::OPERATION_ATTRIBUTE_READ));
 70:         // available attributes not contain image attribute, but it needed for get image_url
 71:         $availableAttributes[] = 'image';
 72:         $collection->addStoreFilter($store->getId())
 73:             ->addPriceData($this->_getCustomerGroupId(), $store->getWebsiteId())
 74:             ->addAttributeToSelect(array_diff($availableAttributes, $entityOnlyAttributes))
 75:             ->addAttributeToFilter('visibility', array(
 76:             'neq' => Mage_Catalog_Model_Product_Visibility::VISIBILITY_NOT_VISIBLE))
 77:             ->addAttributeToFilter('status', array('eq' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED));
 78:         $this->_applyCategoryFilter($collection);
 79:         $this->_applyCollectionModifiers($collection);
 80:         $products = $collection->load();
 81: 
 82:         /** @var Mage_Catalog_Model_Product $product */
 83:         foreach ($products as $product) {
 84:             $this->_setProduct($product);
 85:             $this->_prepareProductForResponse($product);
 86:         }
 87:         return $products->toArray();
 88:     }
 89: 
 90:     /**
 91:      * Apply filter by category id
 92:      *
 93:      * @param Mage_Catalog_Model_Resource_Product_Collection $collection
 94:      */
 95:     protected function _applyCategoryFilter(Mage_Catalog_Model_Resource_Product_Collection $collection)
 96:     {
 97:         $categoryId = $this->getRequest()->getParam('category_id');
 98:         if ($categoryId) {
 99:             $category = $this->_getCategoryById($categoryId);
100:             if (!$category->getId()) {
101:                 $this->_critical('Category not found.', Mage_Api2_Model_Server::HTTP_BAD_REQUEST);
102:             }
103:             $collection->addCategoryFilter($category);
104:         }
105:     }
106: 
107:     /**
108:      * Add special fields to product get response
109:      *
110:      * @param Mage_Catalog_Model_Product $product
111:      */
112:     protected function _prepareProductForResponse(Mage_Catalog_Model_Product $product)
113:     {
114:         /** @var $productHelper Mage_Catalog_Helper_Product */
115:         $productHelper = Mage::helper('catalog/product');
116:         $productData = $product->getData();
117:         $product->setWebsiteId($this->_getStore()->getWebsiteId());
118:         // customer group is required in product for correct prices calculation
119:         $product->setCustomerGroupId($this->_getCustomerGroupId());
120:         // calculate prices
121:         $finalPrice = $product->getFinalPrice();
122:         $productData['regular_price_with_tax'] = $this->_applyTaxToPrice($product->getPrice(), true);
123:         $productData['regular_price_without_tax'] = $this->_applyTaxToPrice($product->getPrice(), false);
124:         $productData['final_price_with_tax'] = $this->_applyTaxToPrice($finalPrice, true);
125:         $productData['final_price_without_tax'] = $this->_applyTaxToPrice($finalPrice, false);
126: 
127:         $productData['is_saleable'] = $product->getIsSalable();
128:         $productData['image_url'] = (string)Mage::helper('catalog/image')->init($product, 'image');
129: 
130:         if ($this->getActionType() == self::ACTION_TYPE_ENTITY) {
131:             // define URLs
132:             $productData['url'] = $productHelper->getProductUrl($product->getId());
133:             /** @var $cartHelper Mage_Checkout_Helper_Cart */
134:             $cartHelper = Mage::helper('checkout/cart');
135:             $productData['buy_now_url'] = $cartHelper->getAddUrl($product);
136: 
137:             /** @var $stockItem Mage_CatalogInventory_Model_Stock_Item */
138:             $stockItem = $product->getStockItem();
139:             if (!$stockItem) {
140:                 $stockItem = Mage::getModel('cataloginventory/stock_item');
141:                 $stockItem->loadByProduct($product);
142:             }
143:             $productData['is_in_stock'] = $stockItem->getIsInStock();
144: 
145:             /** @var $reviewModel Mage_Review_Model_Review */
146:             $reviewModel = Mage::getModel('review/review');
147:             $productData['total_reviews_count'] = $reviewModel->getTotalReviews($product->getId(), true,
148:                 $this->_getStore()->getId());
149: 
150:             $productData['tier_price'] = $this->_getTierPrices();
151:             $productData['has_custom_options'] = count($product->getOptions()) > 0;
152:         } else {
153:             // remove tier price from response
154:             $product->unsetData('tier_price');
155:             unset($productData['tier_price']);
156:         }
157:         $product->addData($productData);
158:     }
159: 
160:     /**
161:      * Product create only available for admin
162:      *
163:      * @param array $data
164:      */
165:     protected function _create(array $data)
166:     {
167:         $this->_critical(self::RESOURCE_METHOD_NOT_ALLOWED);
168:     }
169: 
170:     /**
171:      * Product update only available for admin
172:      *
173:      * @param array $data
174:      */
175:     protected function _update(array $data)
176:     {
177:         $this->_critical(self::RESOURCE_METHOD_NOT_ALLOWED);
178:     }
179: 
180:     /**
181:      * Product delete only available for admin
182:      */
183:     protected function _delete()
184:     {
185:         $this->_critical(self::RESOURCE_METHOD_NOT_ALLOWED);
186:     }
187: 
188:     /**
189:      * Load product by its SKU or ID provided in request
190:      *
191:      * @return Mage_Catalog_Model_Product
192:      */
193:     protected function _getProduct()
194:     {
195:         if (is_null($this->_product)) {
196:             $productId = $this->getRequest()->getParam('id');
197:             /** @var $productHelper Mage_Catalog_Helper_Product */
198:             $productHelper = Mage::helper('catalog/product');
199:             $product = $productHelper->getProduct($productId, $this->_getStore()->getId());
200:             if (!($product->getId())) {
201:                 $this->_critical(self::RESOURCE_NOT_FOUND);
202:             }
203:             // check if product belongs to website current
204:             if ($this->_getStore()->getId()) {
205:                 $isValidWebsite = in_array($this->_getStore()->getWebsiteId(), $product->getWebsiteIds());
206:                 if (!$isValidWebsite) {
207:                     $this->_critical(self::RESOURCE_NOT_FOUND);
208:                 }
209:             }
210:             // Check display settings for customers & guests
211:             if ($this->getApiUser()->getType() != Mage_Api2_Model_Auth_User_Admin::USER_TYPE) {
212:                 // check if product assigned to any website and can be shown
213:                 if ((!Mage::app()->isSingleStoreMode() && !count($product->getWebsiteIds()))
214:                     || !$productHelper->canShow($product)
215:                 ) {
216:                     $this->_critical(self::RESOURCE_NOT_FOUND);
217:                 }
218:             }
219:             $this->_product = $product;
220:         }
221:         return $this->_product;
222:     }
223: 
224:     /**
225:      * Set product
226:      *
227:      * @param Mage_Catalog_Model_Product $product
228:      */
229:     protected function _setProduct(Mage_Catalog_Model_Product $product)
230:     {
231:         $this->_product = $product;
232:     }
233: 
234:     /**
235:      * Load category by id
236:      *
237:      * @param int $categoryId
238:      * @return Mage_Catalog_Model_Category
239:      */
240:     protected function _getCategoryById($categoryId)
241:     {
242:         return Mage::getModel('catalog/category')->load($categoryId);
243:     }
244: 
245:     /**
246:      * Get product price with all tax settings processing
247:      *
248:      * @param float $price inputed product price
249:      * @param bool $includingTax return price include tax flag
250:      * @param null|Mage_Customer_Model_Address $shippingAddress
251:      * @param null|Mage_Customer_Model_Address $billingAddress
252:      * @param null|int $ctc customer tax class
253:      * @param bool $priceIncludesTax flag that price parameter contain tax
254:      * @return float
255:      * @see Mage_Tax_Helper_Data::getPrice()
256:      */
257:     protected function _getPrice($price, $includingTax = null, $shippingAddress = null,
258:                                  $billingAddress = null, $ctc = null, $priceIncludesTax = null
259:     )
260:     {
261:         $product = $this->_getProduct();
262:         $store = $this->_getStore();
263: 
264:         if (is_null($priceIncludesTax)) {
265:             /** @var $config Mage_Tax_Model_Config */
266:             $config = Mage::getSingleton('tax/config');
267:             $priceIncludesTax = $config->priceIncludesTax($store) || $config->getNeedUseShippingExcludeTax();
268:         }
269: 
270:         $percent = $product->getTaxPercent();
271:         $includingPercent = null;
272: 
273:         $taxClassId = $product->getTaxClassId();
274:         if (is_null($percent)) {
275:             if ($taxClassId) {
276:                 $request = Mage::getSingleton('tax/calculation')
277:                     ->getRateRequest($shippingAddress, $billingAddress, $ctc, $store);
278:                 $percent = Mage::getSingleton('tax/calculation')->getRate($request->setProductClassId($taxClassId));
279:             }
280:         }
281:         if ($taxClassId && $priceIncludesTax) {
282:             $request = Mage::getSingleton('tax/calculation')->getRateRequest(false, false, false, $store);
283:             $includingPercent = Mage::getSingleton('tax/calculation')
284:                 ->getRate($request->setProductClassId($taxClassId));
285:         }
286: 
287:         if ($percent === false || is_null($percent)) {
288:             if ($priceIncludesTax && !$includingPercent) {
289:                 return $price;
290:             }
291:         }
292:         $product->setTaxPercent($percent);
293: 
294:         if (!is_null($includingTax)) {
295:             if ($priceIncludesTax) {
296:                 if ($includingTax) {
297:                     /**
298:                      * Recalculate price include tax in case of different rates
299:                      */
300:                     if ($includingPercent != $percent) {
301:                         $price = $this->_calculatePrice($price, $includingPercent, false);
302:                         /**
303:                          * Using regular rounding. Ex:
304:                          * price incl tax   = 52.76
305:                          * store tax rate   = 19.6%
306:                          * customer tax rate= 19%
307:                          *
308:                          * price excl tax = 52.76 / 1.196 = 44.11371237 ~ 44.11
309:                          * tax = 44.11371237 * 0.19 = 8.381605351 ~ 8.38
310:                          * price incl tax = 52.49531773 ~ 52.50 != 52.49
311:                          *
312:                          * that why we need round prices excluding tax before applying tax
313:                          * this calculation is used for showing prices on catalog pages
314:                          */
315:                         if ($percent != 0) {
316:                             $price = Mage::getSingleton('tax/calculation')->round($price);
317:                             $price = $this->_calculatePrice($price, $percent, true);
318:                         }
319:                     }
320:                 } else {
321:                     $price = $this->_calculatePrice($price, $includingPercent, false);
322:                 }
323:             } else {
324:                 if ($includingTax) {
325:                     $price = $this->_calculatePrice($price, $percent, true);
326:                 }
327:             }
328:         } else {
329:             if ($priceIncludesTax) {
330:                 if ($includingTax) {
331:                     $price = $this->_calculatePrice($price, $includingPercent, false);
332:                     $price = $this->_calculatePrice($price, $percent, true);
333:                 } else {
334:                     $price = $this->_calculatePrice($price, $includingPercent, false);
335:                 }
336:             } else {
337:                 if ($includingTax) {
338:                     $price = $this->_calculatePrice($price, $percent, true);
339:                 }
340:             }
341:         }
342: 
343:         return $store->roundPrice($price);
344:     }
345: 
346:     /**
347:      * Calculate price imcluding/excluding tax base on tax rate percent
348:      *
349:      * @param float $price
350:      * @param float $percent
351:      * @param bool $includeTax true - for calculate price including tax and false if price excluding tax
352:      * @return float
353:      */
354:     protected function _calculatePrice($price, $percent, $includeTax)
355:     {
356:         /** @var $calculator Mage_Tax_Model_Calculation */
357:         $calculator = Mage::getSingleton('tax/calculation');
358:         $taxAmount = $calculator->calcTaxAmount($price, $percent, !$includeTax, false);
359: 
360:         return $includeTax ? $price + $taxAmount : $price - $taxAmount;
361:     }
362: 
363:     /**
364:      * Retrive tier prices in special format
365:      *
366:      * @return array
367:      */
368:     protected function _getTierPrices()
369:     {
370:         $tierPrices = array();
371:         foreach ($this->_getProduct()->getTierPrice() as $tierPrice) {
372:             $tierPrices[] = array(
373:                 'qty' => $tierPrice['price_qty'],
374:                 'price_with_tax' => $this->_applyTaxToPrice($tierPrice['price']),
375:                 'price_without_tax' => $this->_applyTaxToPrice($tierPrice['price'], false)
376:             );
377:         }
378:         return $tierPrices;
379:     }
380: 
381:     /**
382:      * Default implementation. May be different for customer/guest/admin role.
383:      *
384:      * @return null
385:      */
386:     protected function _getCustomerGroupId()
387:     {
388:         return null;
389:     }
390: 
391:     /**
392:      * Default implementation. May be different for customer/guest/admin role.
393:      *
394:      * @param float $price
395:      * @param bool $withTax
396:      * @return float
397:      */
398:     protected function _applyTaxToPrice($price, $withTax = true)
399:     {
400:         return $price;
401:     }
402: }
403: 
Magento 1.7.0.2 API documentation generated by ApiGen 2.8.0