Jump to content

PS1.5 Webservice upload images avec CURL


Recommended Posts

Bonjour à tous,

 

Après quelques bonne heures de recherches je viens vers vous car j'ai vraiment essayer 1 millions de trucs... :unsure: .

 

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

	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

UP :rolleyes:
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 by paulo198851 (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...