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:  * API2 catalog_product Validator
 29:  *
 30:  * @category   Mage
 31:  * @package    Mage_Catalog
 32:  * @author     Magento Core Team <core@magentocommerce.com>
 33:  */
 34: class Mage_Catalog_Model_Api2_Product_Validator_Product extends Mage_Api2_Model_Resource_Validator
 35: {
 36:     /**
 37:      * The greatest decimal value which could be stored. Corresponds to DECIMAL (12,4) SQL type
 38:      */
 39:     const MAX_DECIMAL_VALUE = 99999999.9999;
 40: 
 41:     /**
 42:      * Validator product
 43:      *
 44:      * @var Mage_Catalog_Model_Product
 45:      */
 46:     protected $_product = null;
 47: 
 48:     /**
 49:      * Validation operation
 50:      *
 51:      * @var string
 52:      */
 53:     protected $_operation = null;
 54: 
 55:     public function __construct($options)
 56:     {
 57:         if (isset($options['product'])) {
 58:             if ($options['product'] instanceof Mage_Catalog_Model_Product) {
 59:                 $this->_product = $options['product'];
 60:             } else {
 61:                 throw new Exception("Passed parameter 'product' is wrong.");
 62:             }
 63:         }
 64: 
 65:         if (!isset($options['operation']) || empty($options['operation'])) {
 66:             throw new Exception("Passed parameter 'operation' is empty.");
 67:         }
 68:         $this->_operation = $options['operation'];
 69:     }
 70: 
 71:     /**
 72:      * Get validator product
 73:      *
 74:      * @return Mage_Catalog_Model_Product|null
 75:      */
 76:     protected function _getProduct()
 77:     {
 78:         return $this->_product;
 79:     }
 80: 
 81:     /**
 82:      * Is update mode
 83:      *
 84:      * @return bool
 85:      */
 86:     protected function _isUpdate()
 87:     {
 88:         return $this->_operation == Mage_Api2_Model_Resource::OPERATION_UPDATE;
 89:     }
 90: 
 91:     /**
 92:      * Validate product data
 93:      *
 94:      * @param array $data
 95:      * @return bool
 96:      */
 97:     public function isValidData(array $data)
 98:     {
 99:         if ($this->_isUpdate()) {
100:             $product = $this->_getProduct();
101:             if (!is_null($product) && $product->getId()) {
102:                 $data['attribute_set_id'] = $product->getAttributeSetId();
103:                 $data['type_id'] = $product->getTypeId();
104:             }
105:         }
106: 
107:         try {
108:             $this->_validateProductType($data);
109:             /** @var $productEntity Mage_Eav_Model_Entity_Type */
110:             $productEntity = Mage::getModel('eav/entity_type')->loadByCode(Mage_Catalog_Model_Product::ENTITY);
111:             $this->_validateAttributeSet($data, $productEntity);
112:             $this->_validateSku($data);
113:             $this->_validateGiftOptions($data);
114:             $this->_validateGroupPrice($data);
115:             $this->_validateTierPrice($data);
116:             $this->_validateStockData($data);
117:             $this->_validateAttributes($data, $productEntity);
118:             $isSatisfied = count($this->getErrors()) == 0;
119:         } catch (Mage_Api2_Exception $e) {
120:             $this->_addError($e->getMessage());
121:             $isSatisfied = false;
122:         }
123: 
124: 
125:         return $isSatisfied;
126:     }
127: 
128:     /**
129:      * Collect required EAV attributes, validate applicable attributes and validate source attributes values
130:      *
131:      * @param array $data
132:      * @param Mage_Eav_Model_Entity_Type $productEntity
133:      * @return array
134:      */
135:     protected function _validateAttributes($data, $productEntity)
136:     {
137:         if (!isset($data['attribute_set_id']) || empty($data['attribute_set_id'])) {
138:             $this->_critical('Missing "attribute_set_id" in request.', Mage_Api2_Model_Server::HTTP_BAD_REQUEST);
139:         }
140:         if (!isset($data['type_id']) || empty($data['type_id'])) {
141:             $this->_critical('Missing "type_id" in request.', Mage_Api2_Model_Server::HTTP_BAD_REQUEST);
142:         }
143:         // Validate weight
144:         if (isset($data['weight']) && !empty($data['weight']) && $data['weight'] > 0
145:             && !Zend_Validate::is($data['weight'], 'Between', array(0, self::MAX_DECIMAL_VALUE))) {
146:             $this->_addError('The "weight" value is not within the specified range.');
147:         }
148:         // msrp_display_actual_price_type attribute values needs to be a string to pass validation
149:         // see Mage_Catalog_Model_Product_Attribute_Source_Msrp_Type_Price::getAllOptions()
150:         if (isset($data['msrp_display_actual_price_type'])) {
151:             $data['msrp_display_actual_price_type'] = (string) $data['msrp_display_actual_price_type'];
152:         }
153:         $requiredAttributes = array('attribute_set_id');
154:         $positiveNumberAttributes = array('weight', 'price', 'special_price', 'msrp');
155:         /** @var $attribute Mage_Catalog_Model_Resource_Eav_Attribute */
156:         foreach ($productEntity->getAttributeCollection($data['attribute_set_id']) as $attribute) {
157:             $attributeCode = $attribute->getAttributeCode();
158:             $value = false;
159:             $isSet = false;
160:             if (isset($data[$attribute->getAttributeCode()])) {
161:                 $value = $data[$attribute->getAttributeCode()];
162:                 $isSet = true;
163:             }
164:             $applicable = false;
165:             if (!$attribute->getApplyTo() || in_array($data['type_id'], $attribute->getApplyTo())) {
166:                 $applicable = true;
167:             }
168: 
169:             if (!$applicable && !$attribute->isStatic() && $isSet) {
170:                 $productTypes = Mage_Catalog_Model_Product_Type::getTypes();
171:                 $this->_addError(sprintf('Attribute "%s" is not applicable for product type "%s"', $attributeCode,
172:                     $productTypes[$data['type_id']]['label']));
173:             }
174: 
175:             if ($applicable && $isSet) {
176:                 // Validate dropdown attributes
177:                 if ($attribute->usesSource()
178:                     // skip check when field will be validated later as a required one
179:                     && !(empty($value) && $attribute->getIsRequired())) {
180:                     $allowedValues = $this->_getAttributeAllowedValues($attribute->getSource()->getAllOptions());
181:                     if (!is_array($value)) {
182:                         // make validation of select and multiselect identical
183:                         $value = array($value);
184:                     }
185:                     foreach ($value as $selectValue) {
186:                         $useStrictMode = !is_numeric($selectValue);
187:                         if (!in_array($selectValue, $allowedValues, $useStrictMode)
188:                             && !$this->_isConfigValueUsed($data, $attributeCode)) {
189:                             $this->_addError(sprintf('Invalid value "%s" for attribute "%s".',
190:                                 $selectValue, $attributeCode));
191:                         }
192:                     }
193:                 }
194:                 // Validate datetime attributes
195:                 if ($attribute->getBackendType() == 'datetime') {
196:                     try {
197:                         $attribute->getBackend()->formatDate($value);
198:                     } catch (Zend_Date_Exception $e) {
199:                         $this->_addError(sprintf('Invalid date in the "%s" field.', $attributeCode));
200:                     }
201:                 }
202:                 // Validate positive number required attributes
203:                 if (in_array($attributeCode, $positiveNumberAttributes) && (!empty($value) && $value !== 0)
204:                     && (!is_numeric($value) || $value < 0)
205:                 ) {
206:                     $this->_addError(sprintf('Please enter a number 0 or greater in the "%s" field.', $attributeCode));
207:                 }
208:             }
209: 
210:             if ($applicable && $attribute->getIsRequired() && $attribute->getIsVisible()) {
211:                 if (!in_array($attributeCode, $positiveNumberAttributes) || $value !== 0) {
212:                     $requiredAttributes[] = $attribute->getAttributeCode();
213:                 }
214:             }
215:         }
216: 
217:         foreach ($requiredAttributes as $key) {
218:             if (!array_key_exists($key, $data)) {
219:                 if (!$this->_isUpdate()) {
220:                     $this->_addError(sprintf('Missing "%s" in request.', $key));
221:                     continue;
222:                 }
223:             } else if (!is_numeric($data[$key]) && empty($data[$key])) {
224:                 $this->_addError(sprintf('Empty value for "%s" in request.', $key));
225:             }
226:         }
227:     }
228: 
229:     /**
230:      * Validate product type
231:      *
232:      * @param array $data
233:      * @return bool
234:      */
235:     protected function _validateProductType($data)
236:     {
237:         if ($this->_isUpdate()) {
238:             return true;
239:         }
240:         if (!isset($data['type_id']) || empty($data['type_id'])) {
241:             $this->_critical('Missing "type_id" in request.', Mage_Api2_Model_Server::HTTP_BAD_REQUEST);
242:         }
243:         if (!array_key_exists($data['type_id'], Mage_Catalog_Model_Product_Type::getTypes())) {
244:             $this->_critical('Invalid product type.', Mage_Api2_Model_Server::HTTP_BAD_REQUEST);
245:         }
246:     }
247: 
248:     /**
249:      * Validate attribute set
250:      *
251:      * @param array $data
252:      * @param Mage_Eav_Model_Entity_Type $productEntity
253:      * @return bool
254:      */
255:     protected function _validateAttributeSet($data, $productEntity)
256:     {
257:         if ($this->_isUpdate()) {
258:             return true;
259:         }
260:         if (!isset($data['attribute_set_id']) || empty($data['attribute_set_id'])) {
261:             $this->_critical('Missing "attribute_set_id" in request.', Mage_Api2_Model_Server::HTTP_BAD_REQUEST);
262:         }
263:         /** @var $attributeSet Mage_Eav_Model_Entity_Attribute_Set */
264:         $attributeSet = Mage::getModel('eav/entity_attribute_set')->load($data['attribute_set_id']);
265:         if (!$attributeSet->getId() || $productEntity->getEntityTypeId() != $attributeSet->getEntityTypeId()) {
266:             $this->_critical('Invalid attribute set.', Mage_Api2_Model_Server::HTTP_BAD_REQUEST);
267:         }
268:     }
269: 
270:     /**
271:      * Validate SKU
272:      *
273:      * @param array $data
274:      * @return bool
275:      */
276:     protected function _validateSku($data)
277:     {
278:         if ($this->_isUpdate() && !isset($data['sku'])) {
279:             return true;
280:         }
281:         if (!Zend_Validate::is((string)$data['sku'], 'StringLength', array('min' => 0, 'max' => 64))) {
282:             $this->_addError('SKU length should be 64 characters maximum.');
283:         }
284:     }
285: 
286:     /**
287:      * Validate product gift options data
288:      *
289:      * @param array $data
290:      */
291:     protected function _validateGiftOptions($data)
292:     {
293:         if (isset($data['gift_wrapping_price'])) {
294:             if (!(is_numeric($data['gift_wrapping_price']) && $data['gift_wrapping_price'] >= 0)) {
295:                 $this->_addError('Please enter a number 0 or greater in the "gift_wrapping_price" field.');
296:             }
297:         }
298:     }
299: 
300:     /**
301:      * Validate Group Price complex attribute
302:      *
303:      * @param array $data
304:      */
305:     protected function _validateGroupPrice($data)
306:     {
307:         if (isset($data['group_price']) && is_array($data['group_price'])) {
308:             $groupPrices = $data['group_price'];
309:             foreach ($groupPrices as $index => $groupPrice) {
310:                 $fieldSet = 'group_price:' . $index;
311:                 $this->_validateWebsiteIdForGroupPrice($groupPrice, $fieldSet);
312:                 $this->_validateCustomerGroup($groupPrice, $fieldSet);
313:                 $this->_validatePositiveNumber($groupPrice, $fieldSet, 'price', true, true);
314:             }
315:         }
316:     }
317: 
318:     /**
319:      * Validate Tier Price complex attribute
320:      *
321:      * @param array $data
322:      */
323:     protected function _validateTierPrice($data)
324:     {
325:         if (isset($data['tier_price']) && is_array($data['tier_price'])) {
326:             $tierPrices = $data['tier_price'];
327:             foreach ($tierPrices as $index => $tierPrice) {
328:                 $fieldSet = 'tier_price:' . $index;
329:                 $this->_validateWebsiteIdForGroupPrice($tierPrice, $fieldSet);
330:                 $this->_validateCustomerGroup($tierPrice, $fieldSet);
331:                 $this->_validatePositiveNumber($tierPrice, $fieldSet, 'price_qty');
332:                 $this->_validatePositiveNumber($tierPrice, $fieldSet, 'price');
333:             }
334:         }
335:     }
336: 
337:     /**
338:      * Check if website id is appropriate according to price scope settings
339:      *
340:      * @param array $data
341:      * @param string $fieldSet
342:      */
343:     protected function _validateWebsiteIdForGroupPrice($data, $fieldSet)
344:     {
345:         if (!isset($data['website_id'])) {
346:             $this->_addError(sprintf('The "website_id" value in the "%s" set is a required field.', $fieldSet));
347:         } else {
348:             /** @var $catalogHelper Mage_Catalog_Helper_Data */
349:             $catalogHelper = Mage::helper('catalog');
350:             $website = Mage::getModel('core/website')->load($data['website_id']);
351:             $isAllWebsitesValue = is_numeric($data['website_id']) && ($data['website_id'] == 0);
352:             $isGlobalPriceScope = (int)$catalogHelper->getPriceScope() == Mage_Catalog_Helper_Data::PRICE_SCOPE_GLOBAL;
353:             if (is_null($website->getId()) || ($isGlobalPriceScope && !$isAllWebsitesValue)) {
354:                 $this->_addError(sprintf('Invalid "website_id" value in the "%s" set.', $fieldSet));
355:             }
356:         }
357:     }
358: 
359:     /**
360:      * Validate product inventory data
361:      *
362:      * @param array $data
363:      */
364:     protected function _validateStockData($data)
365:     {
366:         if (isset($data['stock_data']) && is_array($data['stock_data'])) {
367:             $stockData = $data['stock_data'];
368:             $fieldSet = 'stock_data';
369:             if (!(isset($stockData['use_config_manage_stock']) && $stockData['use_config_manage_stock'])) {
370:                 $this->_validateBoolean($stockData, $fieldSet, 'manage_stock');
371:             }
372:             if ($this->_isManageStockEnabled($stockData)) {
373:                 $this->_validateNumeric($stockData, $fieldSet, 'qty');
374:                 $this->_validatePositiveNumber($stockData, $fieldSet, 'min_qty', false, true, true);
375:                 $this->_validateNumeric($stockData, $fieldSet, 'notify_stock_qty', false, true);
376:                 $this->_validateBoolean($stockData, $fieldSet, 'is_qty_decimal');
377:                 if (isset($stockData['is_qty_decimal']) && (bool) $stockData['is_qty_decimal'] == true) {
378:                     $this->_validateBoolean($stockData, $fieldSet, 'is_decimal_divided');
379:                 }
380:                 $this->_validateBoolean($stockData, $fieldSet, 'enable_qty_increments', true);
381:                 if (isset($stockData['enable_qty_increments']) && (bool) $stockData['enable_qty_increments'] == true) {
382:                     $this->_validatePositiveNumeric($stockData, $fieldSet, 'qty_increments', false, true);
383:                 }
384:                 if (Mage::helper('catalog')->isModuleEnabled('Mage_CatalogInventory')) {
385:                     $this->_validateSource($stockData, $fieldSet, 'backorders',
386:                         'cataloginventory/source_backorders', true);
387:                     $this->_validateSource($stockData, $fieldSet, 'is_in_stock', 'cataloginventory/source_stock');
388:                 }
389:             }
390: 
391:             $this->_validatePositiveNumeric($stockData, $fieldSet, 'min_sale_qty', false, true);
392:             $this->_validatePositiveNumeric($stockData, $fieldSet, 'max_sale_qty', false, true);
393:         }
394:     }
395: 
396:     /**
397:      * Determine if stock management is enabled
398:      *
399:      * @param array $stockData
400:      * @return bool
401:      */
402:     protected function _isManageStockEnabled($stockData)
403:     {
404:         if (!(isset($stockData['use_config_manage_stock']) && $stockData['use_config_manage_stock'])) {
405:             $manageStock = isset($stockData['manage_stock']) && $stockData['manage_stock'];
406:         } else {
407:             $manageStock = Mage::getStoreConfig(
408:                 Mage_CatalogInventory_Model_Stock_Item::XML_PATH_ITEM . 'manage_stock');
409:         }
410:         return (bool) $manageStock;
411:     }
412: 
413:     /**
414:      * Validate Customer Group field
415:      *
416:      * @param string $fieldSet
417:      * @param array $data
418:      */
419:     protected function _validateCustomerGroup($data, $fieldSet)
420:     {
421:         if (!isset($data['cust_group'])) {
422:             $this->_addError(sprintf('The "cust_group" value in the "%s" set is a required field.', $fieldSet));
423:         } else {
424:             if (!is_numeric($data['cust_group'])) {
425:                 $this->_addError(sprintf('Invalid "cust_group" value in the "%s" set', $fieldSet));
426:             } else {
427:                 $customerGroup = Mage::getModel('customer/group')->load($data['cust_group']);
428:                 if (is_null($customerGroup->getId())) {
429:                     $this->_addError(sprintf('Invalid "cust_group" value in the "%s" set', $fieldSet));
430:                 }
431:             }
432:         }
433:     }
434: 
435:     /**
436:      * Validate field to be positive number
437:      *
438:      * @param array $data
439:      * @param string $fieldSet
440:      * @param string $field
441:      * @param bool $required
442:      * @param bool $equalsZero
443:      * @param bool $skipIfConfigValueUsed
444:      */
445:     protected function _validatePositiveNumber($data, $fieldSet, $field, $required = true, $equalsZero = false,
446:         $skipIfConfigValueUsed = false)
447:     {
448:         // in case when 'Use Config Settings' is selected no validation needed
449:         if (!($skipIfConfigValueUsed && $this->_isConfigValueUsed($data, $field))) {
450:             if (!isset($data[$field]) && $required) {
451:                 $this->_addError(sprintf('The "%s" value in the "%s" set is a required field.', $field, $fieldSet));
452:             }
453: 
454:             if (isset($data[$field])) {
455:                 $isValid = $equalsZero ? $data[$field] >= 0 : $data[$field] > 0;
456:                 if (!(is_numeric($data[$field]) && $isValid)) {
457:                     $message = $equalsZero
458:                         ? 'Please enter a number 0 or greater in the "%s" field in the "%s" set.'
459:                         : 'Please enter a number greater than 0 in the "%s" field in the "%s" set.';
460:                     $this->_addError(sprintf($message, $field, $fieldSet));
461:                 }
462:             }
463:         }
464:     }
465: 
466:     /**
467:      * Validate field to be a positive number
468:      *
469:      * @param array $data
470:      * @param string $fieldSet
471:      * @param string $field
472:      * @param bool $required
473:      * @param bool $skipIfConfigValueUsed
474:      */
475:     protected function _validatePositiveNumeric($data, $fieldSet, $field, $required = false,
476:         $skipIfConfigValueUsed = false)
477:     {
478:         // in case when 'Use Config Settings' is selected no validation needed
479:         if (!($skipIfConfigValueUsed && $this->_isConfigValueUsed($data, $field))) {
480:             if (!isset($data[$field]) && $required) {
481:                 $this->_addError(sprintf('The "%s" value in the "%s" set is a required field.',$field, $fieldSet));
482:             }
483: 
484:             if (isset($data[$field]) && (!is_numeric($data[$field]) || $data[$field] < 0)) {
485:                 $this->_addError(sprintf('Please use numbers only in the "%s" field in the "%s" set. ' .
486:                     'Please avoid spaces or other non numeric characters.', $field, $fieldSet));
487:             }
488:         }
489:     }
490: 
491:     /**
492:      * Validate field to be a number
493:      *
494:      * @param array $data
495:      * @param string $fieldSet
496:      * @param string $field
497:      * @param bool $required
498:      * @param bool $skipIfConfigValueUsed
499:      */
500:     protected function _validateNumeric($data, $fieldSet, $field, $required = false, $skipIfConfigValueUsed = false)
501:     {
502:         // in case when 'Use Config Settings' is selected no validation needed
503:         if (!($skipIfConfigValueUsed && $this->_isConfigValueUsed($data, $field))) {
504:             if (!isset($data[$field]) && $required) {
505:                 $this->_addError(sprintf('The "%s" value in the "%s" set is a required field.',$field, $fieldSet));
506:             }
507: 
508:             if (isset($data[$field]) && !is_numeric($data[$field])) {
509:                 $this->_addError(sprintf('Please enter a valid number in the "%s" field in the "%s" set.',
510:                     $field, $fieldSet));
511:             }
512:         }
513:     }
514: 
515:     /**
516:      * Validate dropdown fields value
517:      *
518:      * @param array $data
519:      * @param string $fieldSet
520:      * @param string $field
521:      * @param string $sourceModelName
522:      * @param bool $skipIfConfigValueUsed
523:      */
524:     protected function _validateSource($data, $fieldSet, $field, $sourceModelName, $skipIfConfigValueUsed = false)
525:     {
526:         // in case when 'Use Config Settings' is selected no validation needed
527:         if (!($skipIfConfigValueUsed && $this->_isConfigValueUsed($data, $field))) {
528:             if (isset($data[$field])) {
529:                 $sourceModel = Mage::getSingleton($sourceModelName);
530:                 if ($sourceModel) {
531:                     $allowedValues = $this->_getAttributeAllowedValues($sourceModel->toOptionArray());
532:                     $useStrictMode = !is_numeric($data[$field]);
533:                     if (!in_array($data[$field], $allowedValues, $useStrictMode)) {
534:                         $this->_addError(sprintf('Invalid "%s" value in the "%s" set.', $field, $fieldSet));
535:                     }
536:                 }
537:             }
538:         }
539:     }
540: 
541:     /**
542:      * Validate bolean fields value
543:      *
544:      * @param array $data
545:      * @param string $fieldSet
546:      * @param string $field
547:      * @param bool $skipIfConfigValueUsed
548:      */
549:     protected function _validateBoolean($data, $fieldSet, $field, $skipIfConfigValueUsed = false)
550:     {
551:         // in case when 'Use Config Settings' is selected no validation needed
552:         if (!($skipIfConfigValueUsed && $this->_isConfigValueUsed($data, $field))) {
553:             if (isset($data[$field])) {
554:                 $allowedValues = $this->_getAttributeAllowedValues(
555:                     Mage::getSingleton('eav/entity_attribute_source_boolean')->getAllOptions());
556:                 $useStrictMode = !is_numeric($data[$field]);
557:                 if (!in_array($data[$field], $allowedValues, $useStrictMode)) {
558:                     $this->_addError(sprintf('Invalid "%s" value in the "%s" set.', $field, $fieldSet));
559:                 }
560:             }
561:         }
562:     }
563: 
564:     /**
565:      * Retrieve all attribute allowed values from source model in plain array format
566:      *
567:      * @param array $options
568:      * @return array
569:      */
570:     protected function _getAttributeAllowedValues(array $options)
571:     {
572:         $values = array();
573:         foreach ($options as $option) {
574:             if (isset($option['value'])) {
575:                 $value = $option['value'];
576:                 if (is_array($value)) {
577:                     $values = array_merge($values, $this->_getAttributeAllowedValues($value));
578:                 } else {
579:                     $values[] = $value;
580:                 }
581:             }
582:         }
583: 
584:         return $values;
585:     }
586: 
587:     /**
588:      * Check if value from config is used
589:      *
590:      * @param array $data
591:      * @param string $field
592:      * @return bool
593:      */
594:     protected function _isConfigValueUsed($data, $field)
595:     {
596:         return isset($data["use_config_$field"]) && $data["use_config_$field"];
597:     }
598: 
599:     /**
600:      * Throw API2 exception
601:      *
602:      * @param string $message
603:      * @param int $code
604:      * @throws Mage_Api2_Exception
605:      */
606:     protected function _critical($message, $code)
607:     {
608:         throw new Mage_Api2_Exception($message, $code);
609:     }
610: }
611: 
Magento 1.7.0.2 API documentation generated by ApiGen 2.8.0