Magento 1.x SOAP API: Filter-Beispiele für Bestellungen

Weil man im Web zu wenige Beispiele für Roh-Abfragen für die SOAP API v2 findet, hier ein paar Beispiele. Diese Abfragen können mit dem kostenfreien GUI-Tool Insomnia ausprobiert werden:

Auf der Kommandozeile lässt sich der Aufruf wie folgt umsetzen:

curl -id "requestBody.xml" https://xonu.de/index.php/api/v2_soap

Abfrage der Schnittstellenbeschreibung im WSDL-Format:

https://xonu.de/api/v2_soap/?wsdl=1

Alle GET-Anfragen werden an die folgende URL gesendet:

https://xonu.de/api/v2_soap

Request Body für Login:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Body>
        <MAGE:login xmlns:MAGE="https://gaiwan.de/api/v2_soap/?wsdl=1">
        	<MAGE:username>API-USER</MAGE:username>
        	<MAGE:apiKey>API-KEY</MAGE:apiKey>
        </MAGE:login>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Response Body mit sessionId für weitere Abfragen:

<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
	xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
	xmlns:ns1="urn:Magento"
	xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
	<SOAP-ENV:Body>
		<ns1:loginResponse>
			<loginReturn xsi:type="xsd:string">SESSION-ID</loginReturn>
		</ns1:loginResponse>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Einfacher Filter für zurückgestellte Bestellungen (status = holded):

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Magento" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <soapenv:Header/>
   <soapenv:Body>
      <urn:salesOrderList soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <sessionId>SESSION-ID</sessionId>
            <filters>
                <filter>
                    <associativeEntity>
                        <key>status</key>
                        <value>holded</value>
                    </associativeEntity>
                </filter>
            </filters>
		 </urn:salesOrderList>
   </soapenv:Body>
</soapenv:Envelope>

Komplexer Filter für Bestellungen, die in August 2022 aktualisiert wurden und status = complete (Operatoren: eq – equal, lt – lower then, qt – greater then) haben:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Magento" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
   <soapenv:Header/>
   <soapenv:Body>
	<urn:salesOrderList soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
	<sessionId>SESSION-ID</sessionId>
		<filters>
			<complex_filter>
				<filter>
					<key>Updated_at</key>
					<value>
						<key>gt</key>
						<value>2021-08-01 00:00:00</value>
					</value>
				</filter>
				<filter>
					<key>updated_at</key>
					<value>
						<key>lt</key>
						<value>2022-08-31 23:59:59</value>
					</value>
				</filter>
				<filter>
					<key>status</key>
					<value>
						<key>eq</key>
						<value>complete</value>
					</value>
				</filter>
			</complex_filter>
		</filters>
	</urn:salesOrderList>
</soapenv:Body>
</soapenv:Envelope>

Zum Schluss noch ein Beispiel zum Laden einer konkreten Bestellung über die incrementId = 100012345:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Magento" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
 <soapenv:Header/>
   <soapenv:Body>
      <urn:salesOrderInfo soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <sessionId>SESSION-ID</sessionId>
         <orderIncrementId>100012345</orderIncrementId>
      </urn:salesOrderInfo>
   </soapenv:Body>
</soapenv:Envelope>

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.