актуализирано по-долу
Някой има ли пример за правилен 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 и SOAP v1 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">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'}}]}
в python.
И те все още връщат всички поръчки (евентуално...). Така че, както споменах, ако някой наистина може да ми даде някакъв XML за емулиране, може да е по-полезно. Вероятно утре ще руутвам изходния код на Magento и ще реша собствения си проблем.