0

the complete error is:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">    <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode>1</faultcode>
         <faultstring>SQLSTATE[21000]: Cardinality violation: 1241 Operand should contain 1 column(s), query was: SELECT `customer_entity`.* FROM `customer_entity` WHERE (entity_id =8, 'firstname => Matheus, lastname => teste')</faultstring>
      </SOAP-ENV:Fault>    </SOAP-ENV:Body> </SOAP-ENV:Envelope>

My request sending is simple, just a array with two resources:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:Magento" xmlns:ns2="http://xml.apache.org/xml-soap" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">   
   <SOAP-ENV:Body>
      <ns1:call>
         <sessionId>e4a9c70ae37dff4f4f27dbd0e1245s5s5s2b29</sessionId>
         <resourcePath>customer_address.create</resourcePath>
         <args SOAP-ENC:arrayType="ns2:Map[1]" xsi:type="SOAP-ENC:Array" enc:arrayType="rs:Resource[2]">
            <item xsi:type="ns2:Map">
              <item  xsi:type="rs:Resource">
              <key xsi:type="xsd:string">customerId</key>
              <value xsi:type="xsd:int">8</value>
            </item>
              <item  xsi:type="rs:Resource">
              <key xsi:type="enc:Array">addressdata</key>
              <value xsi:type="xsd:array">firstname => Matheus, lastname => teste</value>
            </item>
            </item>
        </args>
      </ns1:call>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

So.... as I understand it must send the request only 1 ITEM with the value of the customerId and the array values addressdata as link http://www.magentocommerce.com/api/soap/customer/customerAddress/customer_address.create.html But I am sent with XML and my code above does not work, someone could say why? thank you

1 Answer 1

0

solved changing the value

<args SOAP-ENC:arrayType="ns2:Map[1]" xsi:type="SOAP-ENC:Array">

to ....

<args SOAP-ENC:arrayType="ns2:Map[2]" xsi:type="SOAP-ENC:Array">

and separate the 2 types of array in single item

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.