Actualité du 29 juin 2010
API Magento : quelques notes
Petit oubli, grosse erreur de parsing
Erreur du type
Parse error: syntax error, unexpected T_PUBLIC in
app/code/core/Mage/Api/Model/Server/Adapter/Soap.php on line 134
Il faut ajouter une accolade fermante à la ligne incriminée.
Un appel à la méthode "resources" retourne un tableau vide
Il faut ajouter
else { $this->_renewBySessId($this->_currentSessId); }
à la ligne 51 dans app/code/core/Mage/Api/Model/Session.php.
La façon d'appeler les méthodes du WS SOAP diffère entre la v1 et la v2
Dans la v1 on utilise le nom de la ressource + point + le nom de la méthode, tels qu'on peut les lire dans la doc.
$client = new SoapClient($baseUrl . 'api/?wsdl');
$session = $client->login($apiUser, $apiKey);
$result = $client->call($session, 'directory_country.list');
Dans la v2 il suffit de prendre cette chaine, d'en supprimer les caractères non-alphanumériques et de la passer en lower camel case.
$client = new SoapClient($baseUrl . 'api/v2_soap?wsdl');
$session = $client->login($apiUser, $apiKey);
$result = $client->directoryCountryList($session);
Après il peut y avoir des cas particuliers comme par exemple pour le module Customer : customer.list devient customerCustomerList et non pas customerList comme on pourrait s'y attendre. Si votre premier essai d'appel ne marche pas, rendez-vous dans le module concerné /etc/api.xml, section v2/resources_function_prefix pour voir les alias.
Apparemment la façon d'utiliser les filtres change aussi mais pour le moment je n'ai pas eu à mettre les mains là-dedans donc je vous renvoie à cet article.


