Module: Complex Product API
Resource: product_custom_option
Method:
- product_custom_option.update (SOAP V1)
- catalogProductCustomOptionUpdate (SOAP V2)
Allows you to update the required product custom option.
Arguments:
| Type | Name | Description |
|---|---|---|
| string | sessionId | Session ID |
| string | optionId | Option ID |
| array | data | Array of catalogProductCustomOptionToUpdate |
| string | store | Store view ID or code (optional) |
Return:
| Type | Description |
|---|---|
| boolean\int | True (1) if the custom option is updated |
The catalogProductCustomOptionToUpdate content is as follows:
| Type | Name | Description |
|---|---|---|
| string | title |
Title of the custom option to be updated |
| string |
type |
Custom option type |
| string |
sort_order |
Custom option sort order |
| int | is_require |
Defines whether the custom option is required |
| array | additional_fields |
Array of catalogProductCustomOptionAdditionalFields |
The catalogProductCustomOptionAdditionalFields content is as follows:
| Type | Name | Description |
|---|---|---|
| string | title |
Custom option title |
| string |
price |
Custom option price |
| string |
price_type |
Price type. Possible values are as follows: "fixed" or "percent" |
| string |
sku |
Custom option SKU |
| string |
max_characters |
Maximum number of characters for the customer input on the frontend (optional) |
| string |
sort_order |
Custom option sort order |
| string |
file_extension |
List of file extensions allowed to upload by the user on the frontend (optional; for the File input type) |
| string |
image_size_x |
Width limit for uploaded images (optional; for the File input type) |
| string |
image_size_y |
Height limit for uploaded images (optional; for the File input type) |
| string |
value_id |
Value ID |
Faults:
| Fault Code | Fault Message |
|---|---|
| 101 | Product with requested id does not exist. |
| 102 | Provided data is invalid. |
| 103 | Error while saving an option. Details are in the error message. |
| 104 | Store with requested code/id does not exist. |
| 105 | Option with requested id does not exist. |
| 106 | Invalid option type provided. Call 'types' to get list of allowed option types. |
Examples
Request Example SOAP V1
$proxy = new SoapClient('http://magentohost/api/soap/?wsdl');
$sessionId = $proxy->login('apiUser', 'apiKey');
$selectOptionId = 1379;
$selectOptionValueId = 794;
$textOptionId = 1380;
$fileOptionId = 1381;
// Update custom option of Text Field type
$customTextFieldOption = array(
"title" => "Custom Text Field Option Title Updated",
"type" => "field",
"is_require" => 1,
"sort_order" => 20,
"additional_fields" => array(
array(
"price" => 13.00,
"price_type" => "fixed",
"sku" => "custom_text_option_sku_updated",
"max_characters" => 127
)
)
);
$resultCustomTextFieldOptionUpdate = $proxy->call(
$sessionId,
"product_custom_option.update",
array(
$textOptionId,
$customTextFieldOption
)
);
// Update custom option of File type
$customFileOption = array(
"title" => "Custom File Option Title Updated",
"additional_fields" => array(
array(
"image_size_x" => 800,
"image_size_y" => 999
)
)
);
$resultCustomFileOptionUpdate = $proxy->call(
$sessionId,
"product_custom_option.update",
array(
$fileOptionId,
$customFileOption
)
);
// Update custom option of Dropdown type
$customDropdownOption = array(
"title" => "Custom Dropdown Option Title Updated to Multiselect",
"type" => "multiple",
"additional_fields" => array(
array(
"value_id" => $selectOptionValueId,
"price" => 14.00,
"price_type" => 'percent',
"sku" => "custom_select_option_sku_1 updated",
"sort_order" => 26
)
)
);
$resultCustomDropdownOptionUpdate = $proxy->call(
$sessionId,
"product_custom_option.update",
array(
$selectOptionId,
$customDropdownOption
)
);
Request Example SOAP V2
$proxy = new SoapClient('http://magentohost/api/v2_soap/?wsdl');
$sessionId = $proxy->login('apiUser', 'apiKey');
$result = $proxy->catalogProductCustomOptionUpdate($sessionId, '1', array(
'title' => 'title_updated',
'is_require' => 0,
'sort_order' => '2'
));
var_dump($result);
Request Example SOAP V2 (WS-I Compliance Mode)
$proxy = new SoapClient('http://magentohost/api/v2_soap/?wsdl');
$sessionId = $proxy->login((object)array('username' => 'apiUser', 'apiKey' => 'apiKey'));
$result = $proxy->catalogProductCustomOptionUpdate((object)array('sessionId' => $sessionId->result, 'optionId' => '1', 'data' => ((object)array(
'title' => 'title_updated',
'is_require' => 0,
'sort_order' => '2'
))));
var_dump($result->result);