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:  * Catalog product attribute api
 29:  *
 30:  * @category   Mage
 31:  * @package    Mage_Catalog
 32:  * @author     Magento Core Team <core@magentocommerce.com>
 33:  */
 34: class Mage_Catalog_Model_Product_Attribute_Api extends Mage_Catalog_Model_Api_Resource
 35: {
 36:     /**
 37:      * Product entity type id
 38:      *
 39:      * @var int
 40:      */
 41:     protected $_entityTypeId;
 42: 
 43:     /**
 44:      * Constructor. Initializes default values.
 45:      */
 46:     public function __construct()
 47:     {
 48:         $this->_storeIdSessionField = 'product_store_id';
 49:         $this->_ignoredAttributeCodes[] = 'type_id';
 50:         $this->_ignoredAttributeTypes[] = 'gallery';
 51:         $this->_ignoredAttributeTypes[] = 'media_image';
 52:         $this->_entityTypeId = Mage::getModel('eav/entity')->setType('catalog_product')->getTypeId();
 53:     }
 54: 
 55:     /**
 56:      * Retrieve attributes from specified attribute set
 57:      *
 58:      * @param int $setId
 59:      * @return array
 60:      */
 61:     public function items($setId)
 62:     {
 63:         $attributes = Mage::getModel('catalog/product')->getResource()
 64:                 ->loadAllAttributes()
 65:                 ->getSortedAttributes($setId);
 66:         $result = array();
 67: 
 68:         foreach ($attributes as $attribute) {
 69:             /* @var $attribute Mage_Catalog_Model_Resource_Eav_Attribute */
 70:             if ((!$attribute->getId() || $attribute->isInSet($setId))
 71:                     && $this->_isAllowedAttribute($attribute)) {
 72: 
 73:                 if (!$attribute->getId() || $attribute->isScopeGlobal()) {
 74:                     $scope = 'global';
 75:                 } elseif ($attribute->isScopeWebsite()) {
 76:                     $scope = 'website';
 77:                 } else {
 78:                     $scope = 'store';
 79:                 }
 80: 
 81:                 $result[] = array(
 82:                     'attribute_id' => $attribute->getId(),
 83:                     'code' => $attribute->getAttributeCode(),
 84:                     'type' => $attribute->getFrontendInput(),
 85:                     'required' => $attribute->getIsRequired(),
 86:                     'scope' => $scope
 87:                 );
 88:             }
 89:         }
 90: 
 91:         return $result;
 92:     }
 93: 
 94:     /**
 95:      * Retrieve attribute options
 96:      *
 97:      * @param int $attributeId
 98:      * @param string|int $store
 99:      * @return array
100:      */
101:     public function options($attributeId, $store = null)
102:     {
103:         $storeId = $this->_getStoreId($store);
104:         $attribute = Mage::getModel('catalog/product')
105:                 ->setStoreId($storeId)
106:                 ->getResource()
107:                 ->getAttribute($attributeId);
108: 
109:         /* @var $attribute Mage_Catalog_Model_Entity_Attribute */
110:         if (!$attribute) {
111:             $this->_fault('not_exists');
112:         }
113:         $options = array();
114:         if ($attribute->usesSource()) {
115:             foreach ($attribute->getSource()->getAllOptions() as $optionId => $optionValue) {
116:                 if (is_array($optionValue)) {
117:                     $options[] = $optionValue;
118:                 } else {
119:                     $options[] = array(
120:                         'value' => $optionId,
121:                         'label' => $optionValue
122:                     );
123:                 }
124:             }
125:         }
126: 
127:         return $options;
128:     }
129: 
130:     /**
131:      * Retrieve list of possible attribute types
132:      *
133:      * @return array
134:      */
135:     public function types()
136:     {
137:         return Mage::getModel('catalog/product_attribute_source_inputtype')->toOptionArray();
138:     }
139: 
140:     /**
141:      * Create new product attribute
142:      *
143:      * @param array $data input data
144:      * @return integer
145:      */
146:     public function create($data)
147:     {
148:         /** @var $model Mage_Catalog_Model_Resource_Eav_Attribute */
149:         $model = Mage::getModel('catalog/resource_eav_attribute');
150:         /** @var $helper Mage_Catalog_Helper_Product */
151:         $helper = Mage::helper('catalog/product');
152: 
153:         if (empty($data['attribute_code']) || !is_array($data['frontend_label'])) {
154:             $this->_fault('invalid_parameters');
155:         }
156: 
157:         //validate attribute_code
158:         if (!preg_match('/^[a-z][a-z_0-9]{0,254}$/', $data['attribute_code'])) {
159:             $this->_fault('invalid_code');
160:         }
161: 
162:         //validate frontend_input
163:         $allowedTypes = array();
164:         foreach ($this->types() as $type) {
165:             $allowedTypes[] = $type['value'];
166:         }
167:         if (!in_array($data['frontend_input'], $allowedTypes)) {
168:             $this->_fault('invalid_frontend_input');
169:         }
170: 
171:         $data['source_model'] = $helper->getAttributeSourceModelByInputType($data['frontend_input']);
172:         $data['backend_model'] = $helper->getAttributeBackendModelByInputType($data['frontend_input']);
173:         if (is_null($model->getIsUserDefined()) || $model->getIsUserDefined() != 0) {
174:             $data['backend_type'] = $model->getBackendTypeByInput($data['frontend_input']);
175:         }
176: 
177:         $this->_prepareDataForSave($data);
178: 
179:         $model->addData($data);
180:         $model->setEntityTypeId($this->_entityTypeId);
181:         $model->setIsUserDefined(1);
182: 
183:         try {
184:             $model->save();
185:             // clear translation cache because attribute labels are stored in translation
186:             Mage::app()->cleanCache(array(Mage_Core_Model_Translate::CACHE_TAG));
187:         } catch (Exception $e) {
188:             $this->_fault('unable_to_save', $e->getMessage());
189:         }
190: 
191:         return (int) $model->getId();
192:     }
193: 
194:     /**
195:      * Update product attribute
196:      *
197:      * @param string|integer $attribute attribute code or ID
198:      * @param array $data
199:      * @return boolean
200:      */
201:     public function update($attribute, $data)
202:     {
203:         $model = $this->_getAttribute($attribute);
204: 
205:         if ($model->getEntityTypeId() != $this->_entityTypeId) {
206:             $this->_fault('can_not_edit');
207:         }
208: 
209:         $data['attribute_code'] = $model->getAttributeCode();
210:         $data['is_user_defined'] = $model->getIsUserDefined();
211:         $data['frontend_input'] = $model->getFrontendInput();
212: 
213:         $this->_prepareDataForSave($data);
214: 
215:         $model->addData($data);
216:         try {
217:             $model->save();
218:             // clear translation cache because attribute labels are stored in translation
219:             Mage::app()->cleanCache(array(Mage_Core_Model_Translate::CACHE_TAG));
220:             return true;
221:         } catch (Exception $e) {
222:             $this->_fault('unable_to_save', $e->getMessage());
223:         }
224:     }
225: 
226:     /**
227:      * Remove attribute
228:      *
229:      * @param integer|string $attribute attribute ID or code
230:      * @return boolean
231:      */
232:     public function remove($attribute)
233:     {
234:         $model = $this->_getAttribute($attribute);
235: 
236:         if ($model->getEntityTypeId() != $this->_entityTypeId) {
237:             $this->_fault('can_not_delete');
238:         }
239: 
240:         try {
241:             $model->delete();
242:             return true;
243:         } catch (Exception $e) {
244:             $this->_fault('can_not_delete', $e->getMessage());
245:         }
246:     }
247: 
248:     /**
249:      * Get full information about attribute with list of options
250:      *
251:      * @param integer|string $attribute attribute ID or code
252:      * @return array
253:      */
254:     public function info($attribute)
255:     {
256:         $model = $this->_getAttribute($attribute);
257: 
258:         if ($model->isScopeGlobal()) {
259:             $scope = 'global';
260:         } elseif ($model->isScopeWebsite()) {
261:             $scope = 'website';
262:         } else {
263:             $scope = 'store';
264:         }
265: 
266:         $frontendLabels = array(
267:             array(
268:                 'store_id' => 0,
269:                 'label' => $model->getFrontendLabel()
270:             )
271:         );
272:         foreach ($model->getStoreLabels() as $store_id => $label) {
273:             $frontendLabels[] = array(
274:                 'store_id' => $store_id,
275:                 'label' => $label
276:             );
277:         }
278: 
279:         $result = array(
280:             'attribute_id' => $model->getId(),
281:             'attribute_code' => $model->getAttributeCode(),
282:             'frontend_input' => $model->getFrontendInput(),
283:             'default_value' => $model->getDefaultValue(),
284:             'is_unique' => $model->getIsUnique(),
285:             'is_required' => $model->getIsRequired(),
286:             'apply_to' => $model->getApplyTo(),
287:             'is_configurable' => $model->getIsConfigurable(),
288:             'is_searchable' => $model->getIsSearchable(),
289:             'is_visible_in_advanced_search' => $model->getIsVisibleInAdvancedSearch(),
290:             'is_comparable' => $model->getIsComparable(),
291:             'is_used_for_promo_rules' => $model->getIsUsedForPromoRules(),
292:             'is_visible_on_front' => $model->getIsVisibleOnFront(),
293:             'used_in_product_listing' => $model->getUsedInProductListing(),
294:             'frontend_label' => $frontendLabels
295:         );
296:         if ($model->getFrontendInput() != 'price') {
297:             $result['scope'] = $scope;
298:         }
299: 
300:         // set additional fields to different types
301:         switch ($model->getFrontendInput()) {
302:             case 'text':
303:                     $result['additional_fields'] = array(
304:                         'frontend_class' => $model->getFrontendClass(),
305:                         'is_html_allowed_on_front' => $model->getIsHtmlAllowedOnFront(),
306:                         'used_for_sort_by' => $model->getUsedForSortBy()
307:                     );
308:                     break;
309:             case 'textarea':
310:                     $result['additional_fields'] = array(
311:                         'is_wysiwyg_enabled' => $model->getIsWysiwygEnabled(),
312:                         'is_html_allowed_on_front' => $model->getIsHtmlAllowedOnFront(),
313:                     );
314:                     break;
315:             case 'date':
316:             case 'boolean':
317:                     $result['additional_fields'] = array(
318:                         'used_for_sort_by' => $model->getUsedForSortBy()
319:                     );
320:                     break;
321:             case 'multiselect':
322:                     $result['additional_fields'] = array(
323:                         'is_filterable' => $model->getIsFilterable(),
324:                         'is_filterable_in_search' => $model->getIsFilterableInSearch(),
325:                         'position' => $model->getPosition()
326:                     );
327:                     break;
328:             case 'select':
329:             case 'price':
330:                     $result['additional_fields'] = array(
331:                         'is_filterable' => $model->getIsFilterable(),
332:                         'is_filterable_in_search' => $model->getIsFilterableInSearch(),
333:                         'position' => $model->getPosition(),
334:                         'used_for_sort_by' => $model->getUsedForSortBy()
335:                     );
336:                     break;
337:             default:
338:                     $result['additional_fields'] = array();
339:                     break;
340:         }
341: 
342:         // set options
343:         $options = $this->options($model->getId());
344:         // remove empty first element
345:         if ($model->getFrontendInput() != 'boolean') {
346:             array_shift($options);
347:         }
348: 
349:         if (count($options) > 0) {
350:             $result['options'] = $options;
351:         }
352: 
353:         return $result;
354:     }
355: 
356:     /**
357:      * Add option to select or multiselect attribute
358:      *
359:      * @param  integer|string $attribute attribute ID or code
360:      * @param  array $data
361:      * @return bool
362:      */
363:     public function addOption($attribute, $data)
364:     {
365:         $model = $this->_getAttribute($attribute);
366: 
367:         if (!$model->usesSource()) {
368:             $this->_fault('invalid_frontend_input');
369:         }
370: 
371:         /** @var $helperCatalog Mage_Catalog_Helper_Data */
372:         $helperCatalog = Mage::helper('catalog');
373: 
374:         $optionLabels = array();
375:         foreach ($data['label'] as $label) {
376:             $storeId = $label['store_id'];
377:             $labelText = $helperCatalog->stripTags($label['value']);
378:             if (is_array($storeId)) {
379:                 foreach ($storeId as $multiStoreId) {
380:                     $optionLabels[$multiStoreId] = $labelText;
381:                 }
382:             } else {
383:                 $optionLabels[$storeId] = $labelText;
384:             }
385:         }
386:         // data in the following format is accepted by the model
387:         // it simulates parameters of the request made to
388:         // Mage_Adminhtml_Catalog_Product_AttributeController::saveAction()
389:         $modelData = array(
390:             'option' => array(
391:                 'value' => array(
392:                     'option_1' => $optionLabels
393:                 ),
394:                 'order' => array(
395:                     'option_1' => (int) $data['order']
396:                 )
397:             )
398:         );
399:         if ($data['is_default']) {
400:             $modelData['default'][] = 'option_1';
401:         }
402: 
403:         $model->addData($modelData);
404:         try {
405:             $model->save();
406:         } catch (Exception $e) {
407:             $this->_fault('unable_to_add_option', $e->getMessage());
408:         }
409: 
410:         return true;
411:     }
412: 
413:     /**
414:      * Remove option from select or multiselect attribute
415:      *
416:      * @param  integer|string $attribute attribute ID or code
417:      * @param  integer $optionId option to remove ID
418:      * @return bool
419:      */
420:     public function removeOption($attribute, $optionId)
421:     {
422:         $model = $this->_getAttribute($attribute);
423: 
424:         if (!$model->usesSource()) {
425:             $this->_fault('invalid_frontend_input');
426:         }
427: 
428:         // data in the following format is accepted by the model
429:         // it simulates parameters of the request made to
430:         // Mage_Adminhtml_Catalog_Product_AttributeController::saveAction()
431:         $modelData = array(
432:             'option' => array(
433:                 'value' => array(
434:                     $optionId => array()
435:                 ),
436:                 'delete' => array(
437:                     $optionId => '1'
438:                 )
439:             )
440:         );
441:         $model->addData($modelData);
442:         try {
443:             $model->save();
444:         } catch (Exception $e) {
445:             $this->_fault('unable_to_remove_option', $e->getMessage());
446:         }
447: 
448:         return true;
449:     }
450: 
451:     /**
452:      * Prepare request input data for saving
453:      *
454:      * @param array $data input data
455:      * @return void
456:      */
457:     protected function _prepareDataForSave(&$data)
458:     {
459:         /** @var $helperCatalog Mage_Catalog_Helper_Data */
460:         $helperCatalog = Mage::helper('catalog');
461: 
462:         if ($data['scope'] == 'global') {
463:             $data['is_global'] = Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_GLOBAL;
464:         } else if ($data['scope'] == 'website') {
465:             $data['is_global'] = Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_WEBSITE;
466:         } else {
467:             $data['is_global'] = Mage_Catalog_Model_Resource_Eav_Attribute::SCOPE_STORE;
468:         }
469:         if (!isset($data['is_configurable'])) {
470:             $data['is_configurable'] = 0;
471:         }
472:         if (!isset($data['is_filterable'])) {
473:             $data['is_filterable'] = 0;
474:         }
475:         if (!isset($data['is_filterable_in_search'])) {
476:             $data['is_filterable_in_search'] = 0;
477:         }
478:         if (!isset($data['apply_to'])) {
479:             $data['apply_to'] = array();
480:         }
481:         // set frontend labels array with store_id as keys
482:         if (isset($data['frontend_label']) && is_array($data['frontend_label'])) {
483:             $labels = array();
484:             foreach ($data['frontend_label'] as $label) {
485:                 $storeId = $label['store_id'];
486:                 $labelText = $helperCatalog->stripTags($label['label']);
487:                 $labels[$storeId] = $labelText;
488:             }
489:             $data['frontend_label'] = $labels;
490:         }
491:         // set additional fields
492:         if (isset($data['additional_fields']) && is_array($data['additional_fields'])) {
493:             $data = array_merge($data, $data['additional_fields']);
494:             unset($data['additional_fields']);
495:         }
496:         //default value
497:         if (!empty($data['default_value'])) {
498:             $data['default_value'] = $helperCatalog->stripTags($data['default_value']);
499:         }
500:     }
501: 
502:     /**
503:      * Load model by attribute ID or code
504:      *
505:      * @param integer|string $attribute
506:      * @return Mage_Catalog_Model_Resource_Eav_Attribute
507:      */
508:     protected function _getAttribute($attribute)
509:     {
510:         $model = Mage::getResourceModel('catalog/eav_attribute')
511:             ->setEntityTypeId($this->_entityTypeId);
512: 
513:         if (is_numeric($attribute)) {
514:             $model->load(intval($attribute));
515:         } else {
516:             $model->load($attribute, 'attribute_code');
517:         }
518: 
519:         if (!$model->getId()) {
520:             $this->_fault('not_exists');
521:         }
522: 
523:         return $model;
524:     }
525: 
526: } // Class Mage_Catalog_Model_Product_Attribute_Api End
527: 
Magento 1.7.0.2 API documentation generated by ApiGen 2.8.0