Envoie de données via API
Bonjour,
Je voudrais solliciter votre aide sur un petit bout de code, alors le principe est d'envoyer des données via l'API prestashop, les étapes sont les suivantes:
- identification a l'API(ok)
- récupération d'un fichier de ressources prestashop vierge.(ok)
- insérer les données dans le fichier (ok)
- renvoyer le fichier (l'envoie me retourne une erreur 400 mauvaise requête)
*J'arrive donc pas a identifier l'erreur de la requête
Voici le code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| <?php
define('DEBUG', false);
define('PS_SHOP_PATH', 'http://maboutique');
define('PS_WS_AUTH_KEY', 'UVJJ73PAA84');
//require_once('./config/config.inc.php');
require_once('./PSWebServiceLibrary.php');
//connexion a l'api prestashop
try
{
$webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
}
catch (PrestaShopWebserviceException $e)
{ // Here we are dealing with errors
$trace = $e->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 />'.$e->getMessage();
}
//recuperation fichier xml vierge
$xml = $webService->get(array('url' => 'http://maboutique/api/products?schema=blank'));
$resources = $xml->product->children();
//desactiver les champs obligatoires
unset($resources->manufacturer_name);
unset($resources->quantity);
unset($resources->position_in_category);
unset($resources->associations);
unset ($resources->associations->categories->category);
//remplissage fichier ressources
$resources->id = 1992;
for($i = 0; $i < count($resources->name->language); $i++){
$resources->name->language[$i] = 'wortisbox';
$resources->link_rewrite->language[$i] = 'mon-produit-SAM';
}
$resources->price = 285;
//$resources->description="caisse enregistreuse de 10 pouces";
$resources->reference = "light";
//envoie du fichier rempli
$opt = array( 'resource' => 'products' );
$opt['postXml'] = $xml->asXML();
$xml = $webService->add( $opt );
echo "product added";
//Erreur 400
//$resources = $xml->product->children();
//$id = $resources->id;
?> |
Merci d'avance 🙂