Jump to content

Webservice duplicate


Recommended Posts

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 by titon222 (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

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...