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>