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
)
);
Create the Magento file system owner
Table of contents
- Attribute Options
- Add Option
- Create Attribute
- Current Store
- Attribute Info
- Attribute List
- Attribute Options
- Attribute Remove
- Remove Option
- Attribute Types
- Attribute Update