Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Prestashop筛选器日期\加载项Web服务_Prestashop - Fatal编程技术网

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来更改行为

如果您没有访问服务器安装的权限,则可以使用
排序
获取最新客户,直到找到现有客户为止。您可以使用with
limit
在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'),
    )
);