2011-10-28 55 views
0

我試圖通過api電話獲取客戶列表&我收到了客戶詳細信息列表,但它返回了與客戶關聯的所有屬性,但我只想要檢索customer name,employee_id,email。在magento api wiki中,我發現customer.list接受兩組參數(array filters & filter list)有人可以告訴我不同​​之處b/w兩個參數我嘗試使用下面的代碼來檢索僅customer_id,電子郵件&名字,但var_dump();顯示所有客戶信息我如何只檢索我想要的屬性? 在此先感謝。Magento ::如何過濾多餘的信息?

<?php 
    $proxy = new SoapClient('http://www.localhost/magento/index.php/api/soap/?wsdl'); 
    $sessionId = $proxy->login('test', '123456'); 
    // Get new customer info 
    $filters=array('employee_id'=>array('eq'=>'234567')); 
    $filter_list=array('customer_id','email','firstname'); 
    $results= $proxy->call($sessionId, 'customer.list',array($filters),array($filter_list)); 
    var_dump($results); 

    ?> 

回答

0

過濾器僅用於檢索符合這些特定屬性的客戶記錄。

您有幾種選擇:

  1. 添加一個新的API端點來獲取你想要的值。
  2. 侵入核心客戶wsdl並刪除不需要的屬性。
  3. 在您的API調用遍歷每個數組並取消設置不需要的值之後。

添加自定義端點

嗯,基本上你已經創建擴展核心API,它並不難做到以下指南涵蓋它在細節上一個新的模塊

http://www.magentocommerce.com/wiki/doc/webservices-api/custom-api

+0

我目前正在使用選項3.你可以擴展一點點添加一個新的終點?我試圖以儘可能少的開銷檢索數據,因此認爲只檢索我想要的屬性會減少這種開銷。謝謝! –

+0

添加詳細信息,希望它有幫助,如果你卡住讓我知道。 UpVotes歡迎;) –

+0

創建自定義api後,當我打電話給api我得到這個錯誤,請問我可以如何解決這個錯誤** SoapFault異常:[102]客戶不存在。 D:\ wamp \ www \ test.php(6):SoapClient - > __ call('call',Array)#1 D:\ wamp \ www \ test.php(6):SoapClient-> call('01f9c6b8498d290 ...','customer.info',Array)#2 {main} ** –