[英]Adding Filters to Magento Web Services API
我正在嘗試調用 Magento SOAP API 並獲取特定時間段內的訂單列表。 我可以連接到 API 並獲得所有訂單的列表,但我無法(對於我的一生)弄清楚如何過濾結果......有什么想法嗎? 我返回所有訂單的代碼如下......
$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);
提前致謝!
查克
在 Magento API 的 v2 中,您需要像這樣調整“過濾器”數組:
$params = array('complex_filter'=>
array(
array('key'=>'created_at','value'=>array('key' =>'from','value' => '2012-07-05 01:01:01'))
)
);
雖然他們的 API 在此處顯示了 API v2 的示例:
本文檔並未表明(據我所知)在使用條件語句時需要將 'filter' 替換為 'complex_filter'。
例如,您可以替換
'key'=>'from"
和
'key'=>'to'
或者
'key'=>'eq'
您可以使用的更完整的條件列表如下:
http://100101.kurodust.net/2008/10/24/magento-api-calls-filter-parameters/
我沒有使用 Magento SOAP 2 Api 的經驗,但是如果 V2 中的過濾器的工作方式與 V1 相同,您可以試試這個:
$filters = array(
'created_at' => array(
'from' => '2011-04-21 02:13:00',
'to' => '2011-04-21 02:22:00'
)
);
我認為不幸的是,這里只顯示了 PHP 代碼。 一般來說,使用 SOAP 和 web 服務的好處之一是語言/實現獨立性。
為了引導其他人朝着正確的方向前進,我提供了適合我的 XML。 無論您使用哪種語言進行 SOAP 調用,您請求中的以下 XML 格式都應該有效。
例如,使用 Java 和 Apache Axis 2,這是我的 SOAPEnvelope object 的內容。 獲取狀態為“處理中”的所有訂單的列表:
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<salesOrderList xmlns="urn:Magento">
<sessionId xmlns="">12345asdf</sessionId>
<filters xmlns="">
<filter>
<associativeEntity>
<key>status</key>
<value>processing</value>
</associativeEntity>
</filter>
</filters>
</salesOrderList>
</soapenv:Body>
</soapenv:Envelope>
請注意,這是 Magento 的 SOAP v2 格式。
我使用了它,它在 SOAP API v2 中工作:
$params = array('complex_filter'=>
array(
array('key'=>'created_at','value'=>array('key' =>'from','value' => '2013-05-03 01:01:01')),
array('key'=>'customer_id','value'=>array('key' =>'eq','value' => 3)),
),
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.