Dans ce tutoriel, nous allons voir comment mettre à jour son stock, dans Magento,
en utilisant un Web service et le protocole SOAP.

 

Tout d'abord il nous faut l'extension Soap, 
Un phpinfo() devrait nous indiquer que Soap est bien présent, sinon il faut l'installer.
Créez un fichier phpinfo.php, que vous mettrez à la racine de votre serveur.
Dedans, ecrivez :
<?php phpinfo(); ?>
Vous devriez voir apparaitre une section concernant Soap.

 

 Dans Magento, il va aussi falloir  créer un utilisateur et un rôle pour ce Web Service.
Commençons par aller dans Systeme > Web Services > Rôles. +Nouveau Rôle

 

Nom du Rôle : Permission totale (pour ce tutorial, on donne un accès à toutes les ressources)
Ressource du rôle : Tous.

 

Ensuite dans  Systeme > Web Services > Utilisateur. +nouvel Utilisateur

Infos de l'utilisateur

Nom de l'utilisateur * Virtualandscape
 
Prénom * Virtual
 
Nom de famille * Landscape
 
Email * Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.
 
Clé d'API * MyNiceApiKey
 
Confirmation de la clé d'API * MyNiceApiKey
 
Ce compte est Actif

 

Rôle de l'utilisateur
On coche Permission totale

Sauvegardez, c'est tout ce qu'il faut faire du coté Magento.

 

Maintenant, créez un fichier api.php dans lequel vous copierez ce qui suit :

<?php

$client 
= new SoapClient('http://127.0.0.1/magento/index.php/api/soap/?wsdl');

// Si vous êtes en local sinon, c'est l'adresse du site web
. Ne cherchez pas de dossier api.
$session $client->login('Virtualandscape''MyNiceApiKey');// Les infos rentrées dans Magento.

try 
    {
        
$client->call($session,'product_stock.update', array('le_sku_du_produit_mis_a_jour', array('qty'=>528'is_in_stock'=>1))); // le sku doit etre valide
        
echo "Produit mis à jour.";
    }
catch (
SoapFault $e
    {
        echo 
"Mise à jour échouée";
    }
    
$client->endSession($session);

?>

Placez ce fichier où vous le souhaitez (par exemple à la racine du serveur) et entrez son adresse dans votre navigateur.
Si tout se passe bien, vous devriez voir "Produit mis à jour ".
Si vous verifiez votre stock pour ce produit, vous devriez maintenant en avoir 528.

Notez que votre site Magento doit être en ligne quand vous faites l'essai, sinon vous aurez une erreur.

Voila, ce n'est pas bien complexe,  en allant sur le wiki de l'Api Magento, vous verrez toutes les methodes utilisables.

La suite montrera comment extraire les quantités en stock d'un fichier .csv