2015-12-16 221 views
0

Magento 1.9.1.0,SOAP,WS-I兼容。我試圖更新產品數量,magento返回「成功」,數量保持原來的狀態(沒有改變)。如何從SOAP中更改產品數量?Magento從SOAP更新產品

要求:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
     <catalogInventoryStockItemMultiUpdateRequestParam xmlns="urn:Magento"> 
      <sessionId xmlns="">32efdfffb0f27f43f3ee0073a9351de3</sessionId> 
      <productIds xmlns=""> 
       <complexObjectArray>9198</complexObjectArray> 
      </productIds> 
      <productData xmlns=""> 
       <complexObjectArray> 
        <qty>17</qty> 
        <is_in_stock>1</is_in_stock> 
       </complexObjectArray> 
      </productData> 
     </catalogInventoryStockItemMultiUpdateRequestParam> 
    </s:Body> 
</s:Envelope> 

響應:

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Magento"> 
    <SOAP-ENV:Body> 
     <ns1:catalogInventoryStockItemMultiUpdateResponseParam> 
      <result>true</result> 
     </ns1:catalogInventoryStockItemMultiUpdateResponseParam> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 
+0

上面的代碼適用於另一個magento商店。但不適用當前的商店 – burzhuy

回答

1

我只是嘗試這樣做,它的工作

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Magento"> 
    <soapenv:Header/> 
    <soapenv:Body> 
     <urn:catalogInventoryStockItemMultiUpdateRequestParam> 
     <sessionId>ddaf6e2b9bf7055ae59b7cbeeca9c894</sessionId> 
     <productIds> 
      <!--Zero or more repetitions:--> 
      <complexObjectArray>764</complexObjectArray> 
     </productIds> 
     <productData> 
      <!--Zero or more repetitions:--> 
      <complexObjectArray> 
       <!--Optional:--> 
       <qty>9</qty> 

       <use_config_notify_stock_qty>1</use_config_notify_stock_qty> 
      </complexObjectArray> 
     </productData> 
     </urn:catalogInventoryStockItemMultiUpdateRequestParam> 
    </soapenv:Body> 
</soapenv:Envelope> 

下面是結果

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:Magento"> 
    <SOAP-ENV:Body> 
     <ns1:catalogInventoryStockItemMultiUpdateResponseParam> 
     <result>true</result> 
     </ns1:catalogInventoryStockItemMultiUpdateResponseParam> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

以下是更新數量的屏幕截圖 enter image description here

+0

謝謝你,我試過你的代碼,但它沒有用。我收到'成功',但數量沒有改變。 – burzhuy

+0

我會看看你是否有一個模塊可能會劫持返回不同結果的請求。我正在測試一個相當乾淨的企業1.14版本和1.9版本的成功案例。此外,如果您可以驗證核心文件未修改。我提供的示例代碼應該可以工作。 – RussellAlbin