簡體   English   中英

將過濾器添加到 Magento Web 服務 API

[英]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 的示例:

http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/introduction#api_version_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM