Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> webapi allegro pobieranie sprzedanych przedmiotów z ostatnich 24godzin ?
danieljoz
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.07.2017

Ostrzeżenie: (0%)
-----


Witam przeglądałem ogólnie webapi allegro i niestety nie mogłem nigdzie dojrzeć opcji o pobraniu godziny o której dany użytkownik zakupił dany produkt owszem można pobrać to z informacji payu ale jak wiadomo nie każdy klient korzysta z payu niektórzy robią wpłaty na konto albo wybierają płatność przy odbiorze a mi chodzi o pobranie informacji o sprzedanych przedmiotach z ostatnich 24 godzin skrypt mój wygląda tak

Kod
<?php
class WebAPISoapClient extends SoapClient
{
/**
* Kraj - Polska.
*/
    const COUNTRY_PL = 1;
/**
* Logowanie do serwisu testwebapi.pl.
*/
    const COUNTRY_TESTWEBAPI = 228;

/**
* Zapytanie o wersję Allegro WebAPI.
*/
    const QUERY_ALLEGROWEBAPI = 1;

/**
* Automatycznie tworzy klienta dla interfejsu Allegro WebAPI.
*/
    public function __construct()
    {
        parent::__construct('http://webapi.allegro.pl/uploader.php?wsdl');
    }
}
// nasze dane
$config = array(
    'login' => 'TUTAJ LOGIN',
    'password' => 'HASŁO',
    'apiKey' => 'KLUCZ API'
);

// dla serwisu testowego wybierz WebAPISoapClient::COUNTRY_TESTWEBAPI
$country = WebAPISoapClient::COUNTRY_PL;

try
{
    $client = new WebAPISoapClient();
    // pobieranie wersji WebAPI
    $version = $client->doQuerySysStatus(WebAPISoapClient::QUERY_ALLEGROWEBAPI, $country, $config['apiKey']);
    // właściwe logowanie do serwisu
    $session = $client->doLogin($config['login'], $config['password'], $country, $config['apiKey'], $version['ver-key']);
}
catch(SoapFault $soapFault)
{
    /* obsługa wyjątku */
}
  // pobieranie ilości elementów w zakładce
$count = $client->doMyAccountItemsCount($session['session-handle-part'], 'sold', array() );
   // tablica to przechowywania pobranych elementów
    $auctions = array();
    // pierwsza strona na początek
    $offset = 0;

    // pobieramy aukcje tak długo jak mamy następną stronę
    while($count > 0)
    {
        // pobieramy daną stronę
        $auctions = array_merge($auctions, $client->doMyAccount2($session['session-handle-part'], 'sold', $offset, array() ) );
        // pobraliśmy 25 elementów
        $count -= 25;
        // przechodzimy do następnej strony
        $offset += 25;
    }
    // tablica do przechowywania listy ID
    $ids = array();

    // zapisujemy wszystkie ID aukcji
    foreach($auctions as $auction)
    {
        $ids[] = $auction->{'my-account-array'}[0];
    }
    // tablica danych o klientach
    $customers = array();

    // pobieramy dane w porcjach po 25 aukcji
    while( count($ids) > 0)
    {
        // pobieramy aktualną stronę
        $customers = array_merge($customers, $client->doGetPostBuyData($session['session-handle-part'], array_slice($ids, 0, 25) ) );
        // usuwamy pierwsze 25 elementów z tablicy
        $ids = array_slice($ids, 25);
    }
  // nowa lista
    $data = array();

    // ogarniamy ten chaos
   foreach($customers as $customer)
    {
        $data[ $customer->{'item-id'} ] = $customer->{'users-post-buy-data'};
    }

    foreach($data as $id => $customers)
    {
        // każdy element tablicy aukcji jest kolejną tablicą - klientów, którzy w tej aukcji zakupili towar
        foreach($customers as $customer)
        {
            echo $id, ', ', $customer->{'user-data'}->{'user-id'};
           echo ', ', $customer->{'user-data'}->{'user-login'};
            echo ', ', $customer->{'user-data'}->{'user-first-name'};
            echo ', ', $customer->{'user-data'}->{'user-last-name'}, "\n";
        }
    }
?>


Pomoże ktoś jak pobrać aukcje które się sprzedały w ostatnim czasie a nie wszystkie jakie się sprzedały które allegro trzyma w bazie ? utknełem w skrypcie a chciałem napisać skrypt który ułatwi tak naprawdę mi życie dzięki z góry za pomoc
Go to the top of the page
+Quote Post
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Możesz jeszcze tym zadziałać: http://allegro.pl/webapi/documentation.php/show/id,1245
Go to the top of the page
+Quote Post
danieljoz
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.07.2017

Ostrzeżenie: (0%)
-----


To mi nie pomoże oczywiście ta funkcja przefiltruje po zakończonych ostatnio ale mimo wszystko stare aukcje dalej będą na liście a skrypt nie będzie w stanie rozpoznać które są starsze niż 1 dzień jak to robią inne sklepy które również działają po api że nie pobierają starych aukcji które zostały już zrealizowane ?

Ten post edytował danieljoz 14.07.2017, 21:36:09
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 17:39