I am really struggling to remove a special price and setting the flag Use default value on a store level via soap api. I tried both catalog_product.setSpecialPrice and catalog_product.update (see http://devdocs.magento.com/guides/m1x/api/soap/catalog/catalogProduct/catalogProduct.html) but it does not work.

In the meantime I have a workaround with setting the special price with a string of zero length ("") to null. Not very satisfying though but at least it works more than half way I would like to. Any help appreciated.

2 Answers 2


Try this:

$client = new SoapClient('http://magentohost/api/soap/?wsdl');
$sessionId = $client->login('apiUser', 'apiKey');

// If somestuff requires api authentification,
// then get a session token
$result = $client->call($sessionId, 'catalog_product.setSpecialPrice', array('product' => 'productId Or SKU', 'specialPrice' => '', 'fromDate' => '', 'toDate' => ''));
  • Unfortunately that does not work either. It comes back with the success result ["update"=>true, "special"=>1] but it actually has not switched on the Use default value.
    – Andreas
    Commented Mar 20, 2016 at 23:04
  • Just correcting my comment above: The success result is purely 1. I just mixed up the result with an accumulated result array. Thanks!
    – Andreas
    Commented Mar 21, 2016 at 0:43

I know this is an old question, but for people arriving here by google/search: I can confirm that setting the special_price to an empty string instead of null will reset the Use default value option.

Using null will not remove a special price.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.