Jump to content

Updating product price using CRUD


ferran_comenz

Recommended Posts

Hi all,

I am currently trying to run my Prestashop update methods, porting from SQL to CRUD Data Transfer methods.

I have seen some online util Tutorials, with this I can prepare the return of a Get to edit and later use in an EDIT, so I can edit the xml with the values ​​that most interest me, such as price, here the code:

 

<html><head><title>CRUD Data Transfer - Update example</title></head><body>
<?php
// Here we define constants /!\ You need to replace this parameters
define('DEBUG', true);
define('PS_SHOP_PATH', 'http://XXXXXXX.XXXX');
define('ID_PRODUCT', 512);
define('PS_WS_AUTH_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
require_once('./PSWebServiceLibrary.php');
@ini_set('display_errors', 'on');
try
{
$webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
$opt = array('resource' => 'products');
$opt['id']=ID_PRODUCT;
$xml = $webService->get($opt);
echo "Successfully recived data.";
	 /* List of nodes that can't modify
	 *
	 *  - "manufacturer_name"
	 *  - "position_in_category"
	 *  - "quantity"
	 *  - "type"
	 */
	unset($xml->children()->children()->manufacturer_name);
	unset($xml->children()->children()->position_in_category);
	unset($xml->children()->children()->quantity);
	unset($xml->children()->children()->type);
   $xml->children()->children()->price = 111.0; // <-- new price!
//Load new data to query generator
$opt['putXml']=$xml->asXML();
$xml = $webService->edit($opt);
// if WebService don't throw an exception the action worked well and we don't show the following message
echo "Successfully updated.";
}
catch (PrestaShopWebserviceException $ex)
{
// Here we are dealing with errors
$trace = $ex->getTrace();
if ($trace[0]['args'][0] == 404) echo 'Bad ID';
else if ($trace[0]['args'][0] == 401) echo 'Bad auth key';
else echo 'Other error<br />'.$ex->getMessage();
}

?>
</body></html>

 

And my question is if there's another way to do this but more faster?

 

Thanks.

Edited by ferran_comenz (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...