Prestashop筛选器日期\加载项Web服务
我是新来的,我对网络服务有问题 当我尝试检索按日期过滤的客户时,我收到以下错误:Prestashop筛选器日期\加载项Web服务,prestashop,Prestashop,我是新来的,我对网络服务有问题 当我尝试检索按日期过滤的客户时,我收到以下错误: <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", "s
<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>
我被卡住了,我不知道该怎么办!!!感谢您的帮助查看Customer class webservice参数,没有日期添加:
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\u add
字段添加到webserviceParameters。
或者使用函数getWebserviceObjectList来更改行为
如果您没有访问服务器安装的权限,则可以使用排序
获取最新客户,直到找到现有客户为止。您可以使用withlimit
在foreach或while循环中使用
在进行一些测试和检查后进行编辑:
首先,我们不需要将字段date\u add
添加到$webserviceParameters
中
请求应为:
$opt = array( 'resource' => 'customers',
'filter[date_add]' => '['.$begin.','.$finish.']',
'date' => 1,
'display' => 'full',
'output_format' => 'JSON'
);
如果只向筛选器添加一个日期,它将尝试仅匹配该日期
然后,您需要更改第284行中的pswebserviceclibrary.php并添加字段“date”:
$params = array('filter', 'display', 'sort', 'limit', 'id_shop', 'id_group_shop', 'date');
现在应该可以了。我测试了自己
编辑2:
这是我的完整测试,在更改了pswebserviceclibrary.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();
}
?>
get($opt);
}
捕获(PrestaShopWebserviceException$ex){
//显示与错误相关的消息
回显“其他错误:
”。$ex->getMessage();
}
?>
首先:谢谢
我修改了你的指示,但结果没有改变,仍然给我相同的错误
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'),
)
);
我不明白你知道吗?你在
过滤器[date\u add]
中有'date=1'
。请尝试添加到数组中。因为在webservice if not(!empty($this->urlFragments['date'])&&$this->urlFragments['date'])
中,它将从可用字段中删除添加的日期。我不想变得无聊,但我仍然有相同的错误。没有问题。刚刚再次编辑,添加了我的工作示例。别忘了如前所述更改pswebserviceclibrary.php。非常好,非常好用。。。非常感谢你,这是无价的帮助
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'),
)
);