обновлено ниже
Есть ли у кого-нибудь пример правильного XML для Magento SOAP v1 API, чтобы сделать что-то вроде следующего?
client.call(session_token,'sales_order.list', {'filters':{'order_id':{'eq':12}}})
Это пример вызова python suds, который у меня не работает. На самом деле подойдет любой пример XML, который фильтрует sales_order.list, catalog_product.list или customer.list. У меня это уже работает для версии XMLRPC, но с SUDS Python и API SOAP v1, независимо от того, какой фильтр, я получаю весь список без фильтрации в качестве ответа. Вот как сейчас выглядит XML:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:ns3="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns4="urn:Magento" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header/>
<ns1:Body>
<ns4:call>
<sessionId xsi:type="ns2:string">6634e1bd1004557677222fd81e809884</sessionId>
<resourcePath xsi:type="ns2:string">sales_order.list</resourcePath>
<args xsi:type="ns0:args">
<filters xsi:type="ns2:filters">
<order_id xsi:type="ns2:order_id">
<eq xsi:type="ns2:string">7</eq>
</order_id>
</filters>
</args>
</ns4:call>
</ns1:Body>
Конечно, я уже испробовал миллион других вариаций вышеперечисленного. Мне просто интересно, верны ли мои вызовы, и у меня плохая схема, или сервер мыла шаткий, или что-то в этом роде. Таким образом, если у кого-то есть проверенный правильный XML, который можно попытаться эмулировать, это очень поможет.
Спасибо!
обновление:
согласно первому ответу, который я получил до сих пор, я уже пробовал этот формат для фильтров. Документация для Magento API, как мы знаем, разнообразна, противоречива и неполна. вот XML:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:ns3="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns4="urn:Magento" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Header/>
<ns1:Body>
<ns4:call>
<sessionId xsi:type="ns2:string">93c7aaab38adaab5db732b211e5b</sessionId>
<resourcePath xsi:type="ns2:string">sales_order.list</resourcePath>
<args xsi:type="ns0:args">
<filter xsi:type="ns2:filter">
<value xsi:type="ns2:string">123</value>
<key xsi:type="ns2:string">order_id</key>
</filter>
</args>
</ns4:call>
</ns1:Body>
</SOAP-ENV:Envelope>
или возможно:
<ns1:Body>
<ns4:call>
<sessionId xsi:type="ns2:string">93c74cb7ef0baaaaab5db732b211e5b</sessionId>
<resourcePath xsi:type="ns2:string">sales_order.list</resourcePath>
<args xsi:type="ns0:args">
<filter xsi:type="ns2:filter">
<value xsi:type="ns2:value">
<value xsi:type="ns2:string">123</value>
<key xsi:type="ns2:string">eq</key>
</value>
<key xsi:type="ns2:string">order_id</key>
</filter>
</args>
</ns4:call>
</ns1:Body>
</SOAP-ENV:Envelope>
который выглядит так:
{'filter':[{'key':'order_id','value':{'key':'eq','value':'123'}}]}
в питоне.
И те по-прежнему возвращают все заказы (в конце концов...). Так что, как я уже упоминал, если кто-нибудь действительно может дать мне некоторый XML для эмуляции, это может быть более полезным. Я, вероятно, собираюсь завтра получить доступ к исходному коду Magento и решить свою проблему.