原始SOAP Magento请求

时间:2017-10-23 00:58:37

标签: web-services magento soap

我试图找到有关如何使用PAW / POSTMAN将数据发布到Magento 1.9 SOAP API的信息。

最重要的是,我试图了解如何在请求中添加过滤器

<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">
<soapenv:Header/>
<soapenv:Body>
<urn:salesOrderList soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<sessionId xsi:type="xsd:string">alreadydefinedandworking</sessionId>
</urn:salesOrderList>
</soapenv:Body>
</soapenv:Envelope> 

我目前正在使用Soap UI来完成我的任务,但我坚持如何在SOAP数据包中添加过滤器,以便我可以从Magento中获取数据。

在使用XML数据包连接到Magento的基础知识上是否有任何Gists在线位置?或者,如果有人知道如何为incremental_id添加过滤器,那将是非常好的

1 个答案:

答案 0 :(得分:0)

请求节点根据您在Magento中使用的soap API类型而有所不同。

有:

  • Soap v1
  • Soap v2
  • WS-I

如果您使用最兼容的WSI模式 - 请求参数定义如下所示:

<xsd:element name="salesOrderListRequestParam">
<xsd:complexType>
    <xsd:sequence>
            <xsd:element minOccurs="1" maxOccurs="1" name="sessionId" type="xsd:string"/>
            <xsd:element minOccurs="1" maxOccurs="1" name="filters" type="typens:filters"/>
    </xsd:sequence>
</xsd:complexType>
</xsd:element>

其中过滤器ns为:

<xsd:complexType name="filters">
<xsd:sequence>
    <xsd:element name="filter" type="typens:associativeArray" minOccurs="0"/>
    <xsd:element name="complex_filter" type="typens:complexFilterArray" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>

这两个值都是具有键值对的数组对象。

有关详细信息,请参阅API Helper中的代码,方法:parseFilters()和_parseComplexFilter(如果在过滤器中使用条件)。

一些例子(Soap_v2):

<ns1:salesOrderListRequestParam>
<sessionId>your sesion id</sessionId>
    <filters>
        <filter>
            <complexObjectArray>
                <key>increment_id</key>
                <value>12345</value>
            </complexObjectArray>
        </filter>
    </filters>
</ns1:salesOrderListRequestParam>