paulo198851 Posted August 12, 2014 Share Posted August 12, 2014 Bonjour à tous, Après quelques bonne heures de recherches je viens vers vous car j'ai vraiment essayer 1 millions de trucs... . Je tente avec un webservice de mettre à jour les images de mes produits mais la méthode proposé par prestashop ne fonctionne pas. Pour ce qui est de l'ajout d'un produit avec des images cela marche parfaitement, la mise à jour d'un produit marche également mais pas la mise à jour des images. Voici mon code de mise à jour : function updateProductsPrestashop($Produit) { $bdd = getBdd(); $webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG); $xml = $webService -> get(array('url' => PS_SHOP_PATH . '/api/products/'.$Produit['IDProduitPrestashop'])); $resources = $xml -> children() -> children(); unset($resources ->position_in_category); unset($resources ->manufacturer_name); unset($resources ->quantity); /* VALEUR DE REFERENCE */ $resources->active = '1'; $resources->link_rewrite->language[0][0] = $Produit['IDProduit']; $resources->reference = $Produit['CodeArticle']; $resources->name->language[0][0] = $Produit['Designation']; $resources->description = $Produit['Designation']; $resources->description_short = $Produit['Designation']; $resources->price = $Produit['Prix']; $resources->id_tax_rules_group = $Produit['TaxeIDPrestashop']; //Definir dans la gestion commerciale table taxes $resources->associations->categories->category->id[0][0] = $Produit['IDFamille']; $resources->id_category_default = $Produit['IDFamille']; $resources->available_for_order = 1; $resources->show_price = 1; $resources->weight = $Produit['Poids']; /*************************/ $opt = array('resource' => 'products','id' => $Produit['IDProduitPrestashop']); $opt['putXml'] = $xml->asXML(); $opt['id'] = $Produit['IDProduitPrestashop']; $xml = $webService->edit($opt); $resourcesReturn = $xml -> children() -> children(); $IDProductPrestashop = $resourcesReturn -> id; $url = PS_SHOP_PATH.'api/images/products/'.$IDProductPrestashop; $image_path = 'uploads/images/'.addslashes(utf8_encode($Produit['nomFichierImage'])); $key = PS_WS_AUTH_KEY; if(file_exists($image_path)) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url);; curl_setopt($ch, CURLOPT_PUT, true); curl_setopt($ch, CURLOPT_USERPWD, $key.':'); curl_setopt($ch, CURLOPT_POSTFIELDS, array('image' => '@'.$image_path)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $result = curl_exec($ch); curl_close($ch); } else { //echo 'Fichier introuvable'; } } Cette partie la proposé par prestashop ne fait absolument rien . curl_setopt($ch, CURLOPT_PUT, true); Avez vous une autre solution pour mettre à jour les images des produits ? Merci de votre réponse. Link to comment Share on other sites More sharing options...
paulo198851 Posted August 13, 2014 Author Share Posted August 13, 2014 (edited) UP J'ai pour le moment trouvé une solution de secours qui consiste à supprimer mes liaisons d'images avec mes produits en utilisant une requête SQL, mais ca ne supprime pas les images du ftp... $bdd = getBdd(); $sql = "DELETE from ps_image where id_product = ".$Produit['IDProduitPrestashop']; $req = $bdd->query($sql) or die(print_r($bdd->errorInfo())); Edited August 13, 2014 by paulo198851 (see edit history) 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