Magento API

SOAP

About Magento API

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);