Soap i Allegro

0

Witam,
Mam dziwny problem otóż integruje się z allegro i chcę ściągnąć sprzedawane przedmioty , dostaje je ale zauważyłem że przy wywołaniu __soapCall te wartości pageSize,pageNumber są pomijane (nie są wymagane przez wsdl).


        $request = array(
            'sessionId' => $sessionId,
            'pageSize' => $pageSize,
            'pageNumber' => $pageNumber 
        );
        $this->soap->__soapCall("doGetMySoldItems", $request);

Tą tablice przekazuję:

array (size=3)
  'sessionId' => string 'xyz' (length=52)
  'pageSize' => int 1
  'pageNumber' => int 1

To zwraca __getLastRequest:

string '<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:AllegroWebApi" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body>
    <ns1:doGetMySoldItems>
      <session-id xsi:type="xsd:string">xyz</session-id>
      <sort-options xsi:type="ns1:SortOptionsStruct"/>
      <filter-options xsi:type="ns1:SoldFilterOptionsStruct"/>
      <search-value xsi:nil="true"/>
      <category-id xsi:nil="true"/>
      <item-ids xsi:nil="true" xsi:type="ns1:ArrayOfItemsID"/>
      <page-size xsi:nil="true"/>
      <page-number xsi:nil="true"/>
    </ns1:doGetMySoldItems>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
' (length=843)
0

spróbuj wywołać tę metodę tylko z sessionId. Może nie masz wystarczająco dużo elementów by pojawiły się na drugiej stronie. Zauważ, że parametr pageNumber może przyjąć 0 zamiast 1, który oznacza pierwszą stronę. I dlatego dostajesz pusty wynik

0

Podawałem to jako przykład, generalnie zawsze dostaje 100 rekordów (defaultowa wartość) ze strony 0 (też defaultowa) nie wiem czemu ale __soapCall argumenty te pomija, źle tworzy zapytanie ( zobacz xml'a nigdzie nie jest przekazywana wartość pageSize i pageNumber) , a akurat potrzebuje przeiterować po wszystkich rekordach z allegro.

0

Udało mi się rozwiązać w końcu problem, jednym słowem działanie __soapCall jest dość dziwne i trzeba wprowadzić wszystkie parametry.


$request = array(
            'sessionId' => $sessionId,
            'sortOptions' => array(
                'sort-type' => 3,
                'sort-order' => 2),
            'filterOptions' => array(
                'filter-format' => null,
                'filter-from-end' => null,
                'filter-auto-listing' => null,
                'filter-price' => array(
                   'filter-price-from' => null,
                   'filter-price-to' => null),
                'filter-duration-type' => null
                ),
            'searchValue' => null,
            'categoryId' => null,
            'itemIds' => array(),
            'pageSize' => 1,
            'pageNumber' => 0
        );

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0