Jump to content

Webservice ajouter une image


Recommended Posts

Bonjour à tous !

 

Je suis actuellement en train d'ajouter des produits via le webservice. L'ajout du produit est bien effectué.

 

Cependant, j'essaye d'ajouter une image, mais ça ne fonctionne pas...

 

Voici le code en question :

//L'id du produit est 14
$url = 'http://localhost/testPrestashop/prestashop/api/images/products/14'; 

//L'image en question se situe ici
$image_path = 'C:\wamp\www\testPrestashop\prestashop\uploading\img.png';
$key = '0000000000000000000....';
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true); //POST pour effectuer l'ajout
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);

//Nous effectuons une vérification
if($result === false)
{
    echo 'Erreure ajout image : '.curl_error($ch).'<br>';
}
else
{
    echo 'Image ajoutée avec succès : <br>';
}

Au niveau du resultat, ça m'affiche bien "Image ajoutée avec succès. Juste pour tester, j'ai entré une mauvaise URL, et ça donne bien une erreur.

 

L'image est donc bien détectée, mais ne s'ajoute pas au produit.

 

Savez-vous d'où provient le problème ? Peut être la version 1.6 ?

 

En vous remerciant d'avance.

Link to comment
Share on other sites

  • 4 weeks later...
$img = URL_IMAGE;

        $data = array('image' => "@" . $img . ";type=image/jpeg");

        // envoie de l'image via CURL
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_HEADER, TRUE);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($curl, CURLINFO_HEADER_OUT, true);
        curl_setopt($curl, CURLOPT_URL, PS_SHOP_PATH . 'api/images/products/' . $ProductId);
        curl_setopt($curl, CURLOPT_POST, true);
        curl_setopt($curl, CURLOPT_USERPWD, PS_WS_AUTH_KEY . ':');
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

        if (curl_exec($curl) === false) {
            echo 'Erreure ajout image : ' . $img . ' ' . curl_error($curl) . '<br>';
        } else {
            echo 'Image ajoutée avec succès : ' . $img . '<br>';
        }

        curl_close($curl);

URL_IMAGE correspond à l'emplacement de ton image.

PS_SHOP_PATH à l'url de ta boutique.

PS_WS_AUTH_KEY à la clé générée dans la partie administrateur.

$ProductId à l'id du produit auquel tu souhaites ajouter une image.

 

 

 

Et ça fonctionne :-)

Link to comment
Share on other sites

Merci pour ta réponse ! 

En fait ton code marchait déjà hier quand je l'ai regardé mais tu envoyais un png alors que seul le jpg etait autorisé.

 

Tu t'es attaqué au reste des infos produits ? 

Sans doc c'est vraiment le foutoir...

 

F.

Link to comment
Share on other sites

Même avec jpeg ça fonctionne pour moi...

 

Regarde le code de mon post d'hier (01/07/2014), fais juste un copier coller et remplace les variables/constantes !

 

Tu bloques où au niveau de l'ajout d'un produit ?

 

Sinon oui très galère d'utiliser le ws sur prestashop.... Je me suis pris la tête pour trouver les différents problèmes etc....  lol

Edited by vik93 (see edit history)
Link to comment
Share on other sites

Bonjour,

 

Je veins d'essayer votre code mais celà ne fonctionn pas chez moi.

Cette erreur reviens : failed creating formpost data

 

Et quand je retire : "@" devant la variable image je n'ai pas d'erreur mais cela ne fonctionne pas...

 

Une idée ?

Link to comment
Share on other sites

  • 5 weeks later...
  • 3 years 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...