titon222 Posted January 27, 2017 Share Posted January 27, 2017 (edited) Bonjour à tous, Nouveau sur prestashop je souhaite alimenter mon site (catégories, produits, prix spécifique etc) via webservice Pour le moment j'arrive à créer une catégorie avec ce bout de code : <?php define('DEBUG', true); define('_PS_DEBUG_SQL_', true); define('PS_SHOP_PATH', 'http://moniste.com'); define('PS_WS_AUTH_KEY', 'BF94ZFF6V9YKXWYYWSAJAR2EP19FFJA6'); require_once ('./PSWebServiceLibrary.php'); include_once ('core_config.php'); // my config for spec. func. $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG); function PS_new_category($n_is_root_category, $n_id_parent, $n_id_parent, $n_active, $n_l_id, $n_name, $n_desc, $n_link_rewrite, $n_meta_title, $n_meta_description, $n_meta_keywords) { global $webService; $xml = $webService -> get(array('url' => PS_SHOP_PATH . '/api/categories?schema=blank')); $resources = $xml -> children() -> children(); unset($resources -> id); unset($resources -> position); unset($resources -> id_shop_default); unset($resources -> date_add); unset($resources -> date_upd); $resources -> active = $n_active; $resources -> id_parent = $n_id_parent; $resources -> id_parent['xlink:href'] = PS_SHOP_PATH . '/api/categories/' . $n_id_parent; $resources -> is_root_category = $n_is_root_category; $node = dom_import_simplexml($resources -> name -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_name)); $resources -> name -> language[0][0] = $n_name; $resources -> name -> language[0][0]['id'] = $n_l_id; $resources -> name -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; $node = dom_import_simplexml($resources -> description -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_desc)); $resources -> description -> language[0][0] = $n_desc; $resources -> description -> language[0][0]['id'] = $n_l_id; $resources -> description -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; $node = dom_import_simplexml($resources -> link_rewrite -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_link_rewrite)); $resources -> link_rewrite -> language[0][0] = $n_link_rewrite; $resources -> link_rewrite -> language[0][0]['id'] = $n_l_id; $resources -> link_rewrite -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; $node = dom_import_simplexml($resources -> meta_title -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_meta_title)); $resources -> meta_title -> language[0][0] = $n_meta_title; $resources -> meta_title -> language[0][0]['id'] = $n_l_id; $resources -> meta_title -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; $node = dom_import_simplexml($resources -> meta_description -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_meta_description)); $resources -> meta_description -> language[0][0] = $n_meta_description; $resources -> meta_description -> language[0][0]['id'] = $n_l_id; $resources -> meta_description -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; $node = dom_import_simplexml($resources -> meta_keywords -> language[0][0]); $no = $node -> ownerDocument; $node -> appendChild($no -> createCDATASection($n_meta_keywords)); $resources -> meta_keywords -> language[0][0] = $n_meta_keywords; $resources -> meta_keywords -> language[0][0]['id'] = $n_l_id; $resources -> meta_keywords -> language[0][0]['xlink:href'] = PS_SHOP_PATH . '/api/languages/' . $n_l_id; try { $opt = array('resource' => 'categories'); $opt['postXml'] = $xml -> asXML(); $xml = $webService -> add($opt); } catch (PrestaShopWebserviceException $ex) { echo 'Other error: <br />' . $ex->getMessage(); // my log function } } // simple use $n_name = 'test'; $n_desc = 'test description'; $n_link_rewrite = 'someone_rewrite'; $n_meta_title = 'meta-title'; $n_meta_description = 'meta desc'; $n_meta_keywords = 'some,one,keywords'; $n_id_parent = ''; $n_active = '1'; $n_l_id = '1'; $n_is_root_category = '1'; // run PS_new_category($n_is_root_category, $n_id_parent, $n_id_parent, $n_active, $n_l_id, $n_name, $n_desc, $n_link_rewrite, $n_meta_title, $n_meta_description, $n_meta_keywords); ?> Mon problème est que si je relance la fonction ma catégorie se retrouve dupliquée... Avez vous une idée pour que je puisse effectuer une vérification au préalable pour savoir si ma catégorie existe ou non ? Merci à vous Edited January 27, 2017 by titon222 (see edit history) Link to comment Share on other sites More sharing options...
titon222 Posted February 9, 2017 Author Share Posted February 9, 2017 Bonjour, Je relance le sujet n'ayant toujours pas trouver de solution valable :/ Je ne recherche peut être pas au bon endroit ? Merci à vous Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now