2017-04-04 31 views
1

我是新來的,並且我遇到了webservice的問題。webservice中的Prestashop過濾器date_add

當我嘗試檢索客戶通過過濾DATE_ADD我得到這個錯誤:

<message><![CDATA[This filter does not exist. Did you mean: "deleted"? The full list is: "id", "id_default_group", "id_lang", "newsletter_date_add", "ip_registration_newsletter", "last_passwd_gen", "secure_key", "deleted", "passwd", "lastname", "firstname", "email", "id_gender", "birthday", "newsletter", "optin", "website", "company", "siret", "ape", "outstanding_allow_amount", "show_public_prices", "id_risk", "max_payment_days", "active", "note", "is_guest", "id_shop", "id_shop_group"]]></message> 

這是我的代碼:

$yesterday = date("Y-m-d H:i:s", time() - 60 * 60 * 24); 

$webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG); 

// Qui imposto le opzion dell'array per il Webservice: in questo caso i clienti e setto che il formato è json 
$opt = array('resource' => 'customers', 
         'filter[date_add]' => '['.$yesterday.']&date=1', 
         'display' => 'full', 
         'output_format' => 'JSON' 
         ); 

// faccio la chiamata 
$xml = $webService->get($opt); 

我堅持,我不知道該怎麼辦! !任何幫助表示讚賞

回答

0

望着Customer類webservice的參數,也沒有DATE_ADD:

protected $webserviceParameters = array(
     'fields' => array(
      'id_default_group' => array('xlink_resource' => 'groups'), 
      'id_lang' => array('xlink_resource' => 'languages'), 
      'newsletter_date_add' => array(), 
      'ip_registration_newsletter' => array(), 
      'last_passwd_gen' => array('setter' => null), 
      'secure_key' => array('setter' => null), 
      'deleted' => array(), 
      'passwd' => array('setter' => 'setWsPasswd'), 
     ), 
     'associations' => array(
      'groups' => array('resource' => 'group'), 
     ) 
    ); 

如果你有訪問服務器安裝,你可以在date_add字段添加到webserviceParameters。 或者函數getWebserviceObjectList改變行爲。

如果您無權訪問服務器安裝,則可以使用sort獲取最新的客戶,直到達到您已擁有的客戶。您可以使用limit在foreach或while循環中使用。

編輯經過一些測試和檢查發生了什麼: 首先,我們不需要將字段添加到$webserviceParameters

請求應該是:

$opt = array('resource' => 'customers', 
       'filter[date_add]' => '['.$begin.','.$finish.']', 
       'date' => 1, 
       'display' => 'full', 
       'output_format' => 'JSON' 
      ); 

如果只添加一個日期過濾器,它會嘗試只匹配日期。

然後,你需要改變PSWebServiceLibrary.php在284行,並添加字段「日期」:

$params = array('filter', 'display', 'sort', 'limit', 'id_shop', 'id_group_shop', 'date'); 

現在,它應該工作。我測試了我自己。

編輯2: 這是我的完整測試,在更改了我在PSWebserviceLibrary.php中提到的這一行後,這將在間隔日期中使用date_add檢索我的客戶。

<?php 
require_once('PSWebServiceLibrary.php'); 

echo 'starting<br />'.PHP_EOL; 

try { 
    // creating web service access 
    $webService = new PrestaShopWebservice(MY_BASE_URL, WS_KEY, true); 

    $yesterday = date("Y-m-d", time() - 60 * 60 * 24); 
    $begin = date("Y-m-d", time() - 60 * 60 * 24 * 30); 

    $opt = array('resource' => 'customers', 
         'filter[date_add]' => '['.$begin.','.$yesterday.']', 
         'date' => 1, 
         'display' => 'full', 
         'output_format' => 'JSON' 
         ); 

    //Retrieving the XML data 
    $xml = $webService->get($opt); 
} 
catch (PrestaShopWebserviceException $ex) { 
    // Shows a message related to the error 
    echo 'Other error: <br />' . $ex->getMessage(); 
} 
?> 
+0

謝謝合作,但仍然有 –

+0

你有什麼想法的問題? –

+0

你在'filter [date_add]'裏面有''date = 1''。嘗試添加到數組。因爲在webservice中如果不是'(!empty($ this-> urlFragments ['date'])&& $ this-> urlFragments ['date'])'它將從可用字段中刪除date_add – sadlyblue

0

首先:感謝

我修改你的指示,但結果並沒有改變,仍然給我同樣的錯誤。

protected $webserviceParameters = array(
    'fields' => array(
     'id_default_group' => array('xlink_resource' => 'groups'), 
     'id_lang' => array('xlink_resource' => 'languages'), 
     'newsletter_date_add' => array(), 
     'ip_registration_newsletter' => array(), 
     'last_passwd_gen' => array('setter' => null), 
     'secure_key' => array('setter' => null), 
     'deleted' => array(), 
     'passwd' => array('setter' => 'setWsPasswd'), 
/** inizio modifica aggiunta per il webservice */ 
     'date_add' => array(), 
/** fine della modifica */ 
    ), 
    'associations' => array(
     'groups' => array('resource' => 'group'), 
    ) 
); 

我無法理解

相關問題