Module: Mage_Catalog
The Mage_Catalog module allows you to manage categories and products.
Product Attributes
Allows you to retrieve product attributes and options.
Resource Name: catalog_product_attribute
Aliases:
- product_attribute
Methods:
- product_attribute.currentStore - Set/Get the current store view
- product_attribute.list - Retrieve the attribute list
- product_attribute.options - Retrieve the attribute options
- product_attribute.addOption - Add a new option for attributes with selectable fields
- product_attribute.create - Create a new attribute
- product_attribute.info - Get full information about an attribute with the list of options
- product_attribute.remove - Remove the required attribute
- product_attribute.removeOption - Remove an option for attributes with selectable fields
- product_attribute.types - Get the list of possible attribute types
- product_attribute.update - Update the required attribute
Faults:
Fault Code | Fault Message |
---|---|
100 | Requested store view not found. |
101 | Requested attribute not found. |
102 | Invalid request parameters. |
103 | Attribute code is invalid. Please use only letters (a-z), numbers (0-9) or underscore (_) in this field, first character should be a letter. |
104 | Incorrect attribute type. |
105 | Unable to save attribute. |
106 | This attribute cannot be deleted. |
107 | This attribute cannot be edited. |
108 | Unable to add option. |
109 | Unable to remove option. |
Example:
<pre> <?php $proxy = new SoapClient('http://magentohost/api/soap/?wsdl'); $sessionId = $proxy->login('apiUser', 'apiKey'); echo "<pre>"; // Create new attribute $attributeToCreate = array( "attribute_code" => "new_attribute", "scope" => "store", "frontend_input" => "select", "is_unique" => 0, "is_required" => 0, "is_configurable" => 0, "is_searchable" => 0, "is_visible_in_advanced_search" => 0, "used_in_product_listing" => 0, "additional_fields" => array( "is_filterable" => 1, "is_filterable_in_search" => 1, "position" => 1, "used_for_sort_by" => 1 ), "frontend_label" => array( array( "store_id" => 0, "label" => "A new attribute" ) ) ); $attributeId = $proxy->call( $sessionId, "product_attribute.create", array( $attributeToCreate ) ); // Update attribute $attributeToUpdate = array( "scope" => "global", "is_unique" => 1, "is_required" => 1, "is_configurable" => 1, "is_searchable" => 1, "is_visible_in_advanced_search" => 0, "used_in_product_listing" => 0, "additional_fields" => array( "is_filterable" => 01, "is_filterable_in_search" => 0, "position" => 2, "used_for_sort_by" => 0 ), "frontend_label" => array( array( "store_id" => 0, "label" => "A Test Attribute" ) ) ); $proxy->call( $sessionId, "product_attribute.update", array( "new_attribute", $attributeToUpdate ) ); // Add option $optionToAdd = array( "label" => array( array( "store_id" => 0, "value" => "New Option" ) ), "order" => 0, "is_default" => 0 ); $proxy->call( $sessionId, "product_attribute.addOption", array( $attributeId, $optionToAdd ) ); // Get info $resultInfo = $proxy->call( $sessionId, "product_attribute.info", array( $attributeId ) ); echo "info result:\n"; print_r($resultInfo); // List options $resultListOptions = $proxy->call( $sessionId, "product_attribute.options", array( $attributeId ) ); echo "\n options result:\n"; print_r($resultListOptions); // Remove option $result = $proxy->call( $sessionId, "product_attribute.removeOption", array( $attributeId, $resultInfo['options'][0]['value'] ) ); // remove attribute $result = $proxy->call( $sessionId, "product_attribute.remove", array( $attributeId ) );