2011-06-23 71 views
1

我試圖使用Magento的SOAP API的圖像添加到一個產品,我可以使用標準的SoapClient succesffully上傳,但如果我用梨SOAP_ClientMagento的API product_media.create失敗,PEAR SOAP

這失敗就是我用SoapClient做:

$image_data = array(
     'file' => array(
      'name' => 'test_image_name', 
      'content' => $content, 
      'mime' => 'image/jpeg' 
     ), 
     'label' => 'test_image_label', 
     'position' => 1, 
     'types' => '', 
     'exclude' => 0 
    ); 
$client = new SoapClient($wsdl_url); 
$session_id = $client->login($mg_user, $mg_key); 
$magento_filename = $client->call($session_id, 'product_media.create', array(
      $sku, 
      $image_data 
    )); 

這將成功地將圖像添加到該產品。

但如果我使用SOAP_Client

$client = new SOAP_Client($wsdl_url, true); 
$session_id = $client->call(
    'login', 
    array(
     'username'=>$mg_user, 
     'apiKey'=> $mg_key 
    ) 
); 
$magento_filename = $client->call(
    'call', 
    array(
     'sessionId'=>$session_id, 
     'resourcePath'=>'product_media.create', 
     'args'=>array(
      $sku, 
      $image_data, 
     ) 
    ) 
); 

我得到的SOAPFault: 「不能使用類型爲stdClass的對象作爲排序」

但我能catalog_product.info打電話:

$info = $client->call(
    'call', 
    array(
     'sessionId'=>$session_id, 
     'resourcePath'=>'catalog_product.info', 
     'args'=>array($sku) 
    ) 
); 

並且返回沒有錯誤的所有正確數據。

什麼可能導致差異?

回答

0

我的解決方案根本就沒有解決方法,就是用--enable-soap重新配置並重新安裝php。

但是,根據他們的託管方案,對於其他問題可能不是一個可行的方法。

0

不要使用PEAR的SOAP包。它已經過時了,並且在PHP SoapClient出現之前就已經使用了。