![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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
|
|
|
![]()
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 17:39 |