Несколько ComplexFilter в API Magento v2 - PullRequest
1 голос
/ 17 декабря 2009

В настоящее время у меня возникают некоторые трудности с использованием нового мыла Magento v2 из интерфейса c #.

С php я смог сделать что-то вроде этого:

$params["created_at"]["from"] = date("Y-m-d H:i:s",Functions::convert_time($dataDa));
$params["created_at"]["to"] = date("Y-m-d H:i:s",Functions::convert_time($dataA));
MageInterface::getSingleton()->shipmentList($params); 

В этом режиме мне удалось без проблем найти список заказов, которые были созданы от $ dataDa до $ dataA. Однако с c # кажется, что работает только последний из селекторов.

Мой код:

var cpf = new complexFilter[2];
cpf[0] = new complexFilter
                    {
                        key = "created_at",
                        value = new associativeEntity
                        {
                            key = "to",
                            value = uxDataA.DateTime.ToString("yy-MM-dd HH:mm:ss")
                        }
                    });
cpf[1] = new complexFilter
                    {
                        key = "created_at",
                        value = new associativeEntity
                        {
                            key = "from",
                            value = uxDataDa.DateTime.ToString("yy-MM-dd HH:mm:ss")
                        }
                    });
var filters = new filters();
filters.complex_filter = cpf;
var risultato = mage.salesOrderList(sessionKey, filters); 

В этом режиме учитывается только критерий create_at-> from (это похоже на то, что второй комплексный фильтр перекрывает предыдущий с тем же ключом). Идеи?

Заранее спасибо.

Ответы [ 2 ]

4 голосов
/ 10 октября 2014

Это работает для меня:

private filters addFilter(filters filtresIn, string key, string op, string value)
    {
        filters filtres = filtresIn;
        if (filtres == null)
            filtres = new filters();

        complexFilter compfiltres = new complexFilter();
        compfiltres.key = key;
        associativeEntity ass = new associativeEntity();
        ass.key = op;
        ass.value = value;
        compfiltres.value = ass;

        List<complexFilter> tmpLst;
        if (filtres.complex_filter!=null)
            tmpLst = filtres.complex_filter.ToList();
        else tmpLst = new List<complexFilter>();

        tmpLst.Add(compfiltres);

        filtres.complex_filter = tmpLst.ToArray();

        return filtres;
    }

и звоните

{
Mage_Api_Model_Server_V2_HandlerPortTypeClient clientSoap = new Mage_Api_Model_Server_V2_HandlerPortTypeClient();

        string sessionId = clientSoap.login(LOG, PASS);           
        filters filtres = new filters();    

        filtres = addFilter(filtres, "status", "eq", "processing");
        filtres = addFilter(filtres, "created_at", "from", "2014-09-07 08:00:00");
        filtres = addFilter(filtres, "created_at", "to", "2014-09-07 00:00:00");

        salesOrderEntity[] lst = clientSoap.salesOrderList(sessionId, filtres);
}
0 голосов
/ 18 декабря 2009

Решено, была ошибка (или функция?) В mage \ sales \ order \ api \ v2.php

Смотрите больше информации в этой теме: http://www.magentocommerce.com/boards/viewthread/70368/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...