Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding Filters to Magento Web Services API

I am trying to call the Magento SOAP API and get a list of orders within a certain time period. I can connect to API and get a list of all the orders just fine but I can't (for the life of me) figure out how to filter the results... Any ideas? My Code that return all the orders is below...

$proxy = new SoapClient('http://lalala.freelunchlabs.com/api/v2_soap/?wsdl');

// create authorized session id using api user name and api key
$sessionId = $proxy->login('myusername', 'mypassword');

$filters = array(
    'created_at' => array( '>' => '2011-04-21 02:13:00'),
    'created_at' => array( '<' => '2011-04-21 02:22:00')
);

 // Get order list
$orderinfo = $proxy->salesOrderList($sessionId,array($filters));

print_r($orderinfo);

Thanks in advance!

Chuck

like image 690
Chuck D Avatar asked Apr 30 '11 22:04

Chuck D


2 Answers

I got no experience with the Magento SOAP 2 Api, but if the filters in V2 work the same way as with V1, you could try this:

$filters = array(
    'created_at' => array(
        'from' => '2011-04-21 02:13:00',
        'to' => '2011-04-21 02:22:00'
    )
);
like image 177
Jürgen Thelen Avatar answered Oct 06 '22 00:10

Jürgen Thelen


In v2 of the Magento API you need to adjust your 'filters' array like so:

$params = array('complex_filter'=>
    array(
        array('key'=>'created_at','value'=>array('key' =>'from','value' => '2012-07-05 01:01:01'))
    )
);

While their API shows an example of the API v2 here:

http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/introduction#api_version_v2

this documentation doesn't indicate (as far as I can tell) that you need to replace 'filter' with 'complex_filter' when using conditional statements.

For example, you could replace

'key'=>'from"

with

'key'=>'to'

or

'key'=>'eq'

A more complete list of conditionals that you can use is here:

http://100101.kurodust.net/2008/10/24/magento-api-calls-filter-parameters/

like image 34
David Avatar answered Oct 06 '22 01:10

David