Web services 用于测距的组合复数滤波器

Web services 用于测距的组合复数滤波器,web-services,magento,soap,Web Services,Magento,Soap,在Magento1.7SOAPIv2上,我正在寻找一种获取日期范围的方法,以从SOAPAPI检索信息 $complexFilter = new filters(); $complexFilter->complex_filter = array( array( 'key' => 'created_at', 'value' => array('key' => 'from', 'value' => '2012-12-17 00:00

在Magento1.7SOAPIv2上,我正在寻找一种获取日期范围的方法,以从SOAPAPI检索信息

$complexFilter = new filters();
$complexFilter->complex_filter = array(
    array(
        'key' => 'created_at',
        'value' => array('key' => 'from', 'value' => '2012-12-17 00:00:00')
    ), 
    array(
        'key' => 'created_at',
        'value' => array('key' => 'to', 'value' => '2013-01-21 12:02:02')
    ), 
);
这似乎是最自然的方法,但只能使用最后一个标准。我还尝试了其他组合,比如复杂过滤器的复杂过滤器,使用
gt
和类似的方法组合它们,而不是使用
和co的
。这些方法中的大多数都产生了相同的结果:只使用内部的最后一个标准


通过API获取日期范围的正确方法是什么?这也可以通过常规过滤器完成吗?如果是这样,如何将开始日期和结束日期结合起来?

在谷歌搜索了很多之后,我终于来了

显然,复杂过滤器的实现不允许存在多个属性。这也是我在测试中注意到的:只有最后使用的属性会影响结果。因此,我需要找到另一种方式来做我想做的事情。看到Magento没有提供一种简单的方法来使用SOAPAPI实现这一点,我感到有些悲哀

$complexFilter = new filters();
$complexFilter->complex_filter = array(
    array(
        'key' => 'created_at',
        'value' => array('key' => 'from', 'value' => '2012-12-17 00:00:00')
    ), 
    array(
        'key' => 'created_at',
        'value' => array('key' => 'to', 'value' => '2013-01-21 12:02:02')
    ), 
);
我现在使用的最后一种方法是确定最接近我想要的日期。然后迭代我想要的日期范围内的结果。通过这种方式(至少使用我们的产品数据),我将负载和结果保持在最小值,并且仍然可以得到所需的产品


编辑似乎原始链接已关闭,站点已不存在。上面的文字应该是足够的信息。该博客仅仅展示了一些错误实现的代码示例。

似乎是mage\sales\order\api\v2.php中的一个bug


Matlock在此线程的注释部分提供了一个可能的解决方案:

我找到了一个更好的方法查看Magento中的代码! 幸运的是,它区分大小写,因此:

$complexFilter->complex_filter = array(
    array(
        'key' => 'CREATED_AT',
        'value' => array('key' => 'from', 'value' => '2012-12-17 00:00:00')
    ), 
    array(
        'key' => 'created_at',
        'value' => array('key' => 'to', 'value' => '2013-01-21 12:02:02')
    ), 
);

把戏做得很巧妙

嗯,这个问题已经很老了。我仍然把我的2CT贴在上面。。。遗憾的是,这个问题在将近3年后仍然存在。这是难以置信的,似乎对我来说,使用
increment\u id
作为销售订单列表的列是有效的。我会将这种方法与Magento的SOAP API实现中的“sad”部分结合起来。遗憾的是,这种方法在拉订单的起始日期和截止日期方面非常有效。谢谢你的发现。