However they have then released a new version of the API, with very little documentation. So here are two calls – one to the v1 API and one to the v2 – which I hope will help illustrate the differences. The example I’ll give is the customer list functionality, including filtering the result set – because this was a total mystery when I started working with the v2 API!
$options = array( "location" => 'http://magentoinstall.local/index.php/api/index/index/', "uri" => 'http://magentoinstall.local/api/' ); $client = new SoapClient(NULL, $options); $session = $client->login('user', 'pass'); $list = $client->call($session, 'customer.list', array(array("customer_id" => "42")));
To make the same call with API version 2, we need to address the method in a different way, using the structure
$client = new SoapClient('http:/magentoinstall.local/api/v2_soap?wsdl=1'); $session = $client->login('user', 'pass'); $filter = new StdClass(); $filter->filter = array(array("key" => "customer_id", "value" => "42")); $list = $client->customerCustomerList($session, $filter);
I haven’t used either of the APIs a lot but once I was able to call the same method via both available services, I wanted to share the approach here in the hope that this would help someone else trying to solve the same problem. It is certainly not obvious from the documentation how to interact with the v2 API and I had some real puzzles getting the filtering working. These snippets are from my working code so I hope they are helpful to someone!