L’aggiunta di Filtri per Magento Web Services API

Sto cercando di chiamare il Magento API SOAP e ottenere un elenco di ordini entro un certo periodo di tempo. Io mi posso collegare API e ottenere un elenco di tutti gli ordini di bene, ma non posso (per la vita di me) capire come filtrare i risultati… Qualche idea? Il mio Codice di restituire tutti gli ordini è sotto…

$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);

Grazie in anticipo!

Chuck

OriginaleL’autore Chuck D | 2011-04-30

4 Replies
  1. 9

    Ho avuto nessuna esperienza con Magento SAPONE 2 Api, ma se i filtri nella V2 funzionano allo stesso modo come con V1, si potrebbe provare questo:

    $filters = array(
        'created_at' => array(
            'from' => '2011-04-21 02:13:00',
            'to' => '2011-04-21 02:22:00'
        )
    );
    Non è possibile avere due filtri sullo stesso campo – questo è un bug in Magento
    Come possiamo implementare stesso filtro per il SAPONE v1 API ??

    OriginaleL’autore Jürgen Thelen

  2. 8

    In v2 di Magento API è necessario modificare il vostro ‘filtri’ array in questo modo:

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

    Mentre le loro API mostra un esempio di API v2 qui:

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

    questa documentazione non indicano (per quanto posso dire) che è necessario sostituire il filtro con ‘complex_filter’ quando si utilizza istruzioni condizionali.

    Per esempio, si potrebbe sostituire

    'key'=>'from"

    con

    'key'=>'to'

    o

    'key'=>'eq'

    Un elenco più completo di istruzioni condizionali che è possibile utilizzare è qui:

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

    Sono stato in grado di trovare un riferimento al ‘complex_filter’ valore: magentocommerce.com/api/soap/sales/salesOrder/…
    Il citato collegamento su un elenco completo di istruzioni condizionali può ancora essere trovato web.archive.org/web/20140902022328/http://100101.kurodust.net/…

    OriginaleL’autore David

  3. 6

    Penso che è un peccato che solo codice PHP è mostrato qui. Uno dei vantaggi dell’utilizzo di SAPONE e servizi web in generale e lingua/e attuazione indipendenza.

    Al fine di guidare gli altri nella giusta direzione, mi fornisce il codice XML che funziona per me. Qualsiasi sia la lingua che si utilizza per rendere il vostro SAPONE chiamate, il seguente formato XML con la richiesta dovrebbe funzionare.

    Per esempio, l’utilizzo di Java e Apache Axis 2, questo è il contenuto del mio SOAPEnvelope oggetto. Ottenere un elenco di tutti gli ordini con stato “in elaborazione”:

    <?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>

    Nota, questa è la SOAP formato v2 per Magento.

    Il mio pensiero esattamente @etech, sto utilizzando un Rubino Sapone gemma e tutto questo PHP è un altro livello di astrazione non ho bisogno. Una domanda: da Dove viene associativeEntity?
    Tutto all’interno di un corpo di cui sopra XML è un elemento definito in Magento WSDL. Così, secondo il WSDL, un <associativeEntity> elemento è l’elemento di livello superiore all’interno di un <filter> elemento.
    +1 per la visualizzazione XML. Sto solo usando SOAP UI di sperimentare con le API, e quindi ho bisogno di scrivere l’XML in me stesso.

    OriginaleL’autore etech

  4. 1

    Ho usato in questo modo e ha lavorato nella 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)),
    
        ),
    
    );

    OriginaleL’autore user2060571

Lascia un commento