Allegro WebAPI

Interfejs programistyczny platformy Allegro

doBidItem

Tematyka: Kupujący
Ostatnia zmiana: 17.07.2014 r.
Dostępność:
Metoda pozwala na złożenie oferty kupna w trwającej ofercie.

  1. session-handle | string | wymagany
    Identyfikator sesji użytkownika, uzyskany za pomocą metody doLogin(Enc).
  2. bid-it-id | long | wymagany
    Identyfikator oferty, w której ma zostać złożona oferta kupna.
  3. bid-user-price | float | wymagany
    Oferowana kwota (dla ofert z licytacją). Dla ofert typu Kup Teraz!, w polu przekazana musi zostać kwota równa kwocie KT ustalonej przez sprzedającego, zgodna z widoczną w trwającej ofercie.
  4. bid-quantity | long | wymagany
    Liczba przedmiotów, której dotyczy składana oferta (także w przypadku oferty wielowariantowej).
  5. bid-buy-now | long | niewymagany (wymagany dla ofert typu Kup Teraz!)
    Informacja o tym, czy w ofercie (która musi mieć taki format zakupu dostępny) zakup ma być dokonany przez Kup Teraz! (1 - tak, 0 - nie). Domyślną wartością jest 0.
  6. pharmacy-recipient-data | PharmacyRecipientDataStruct | niewymagany
    Struktura zawierająca dane adresowe kupującego leki (dot. kategorii: Zdrowie i Uroda > Leki bez recepty; wypełnienie struktury przy zakupie w kategorii innej niż wskazana, spowoduje że dane w niej przekazane będą ignorowane).
    1. recipient-first-name | string | niewymagany
      Imię kupującego leki.
    2. recipient-last-name | string | niewymagany
      Nazwisko kupującego leki. 
    3. recipient-address | string | niewymagany
      Adres kupującego leki. 
    4. recipient-postcode | string | niewymagany
      Kod pocztowy kupującego leki.
    5. recipient-city | string | niewymagany
      Miasto, w którym mieszka kupujący leki.
  7. variant-id | string | niewymagany (wymagany dla ofert z kategorii obsługujących oferty wielowariantowe. Ich lista jest dostępna w naszym FAQ)
    Identyfikator kupowanego wariantu, uzyskany za pomocą metody doShowItemInfoExt.



Orientacyjna struktura wywołania metody

$dobiditem_request = array(
   'session-handle' => '22eb99326c6be29aa16d07d622bcfbcbee94ad54846f2f4e03_1',
   'bid-it-id' => 1086438628,
   'bid-user-price' => 15.00,
   'bid-quantity' => 1,
   'bid-buy-now' => 0,
   'pharmacy-recipient-data' => array()
   'variant-id' => '22eb99326c6be29aa16d07d622bcfbcbee94ad5',
);


  1. bid-price | string
    Wysokość składanej oferty oraz informacja o dokonaniu zakupu lub aktualnym stanie licytacji.



Orientacyjna struktura odpowiedzi serwera

$dobiditem_response = array(
   'bid-price' => '15,50 zł - Niestety zostałeś przelicytowany. Ktoś wcześniej zaoferował wyższą kwotę maksymalną Obecnie najwyższa oferta wynosi 15,50 zł'
);


  • ERR_AUCTION_KILLED
    Nie można pobrać informacji o wskazanej ofercie, ponieważ została ona usunięta przez administratora serwisu.
  • ERR_BLOCKED_USER_CANT_INVOKE_METHOD
    Użytkownik z blokadą konta nie może korzystać z tej metody.
  • ERR_CANNOT_BID_ITEM
    Nie można złożyć oferty we wskazanej ofercie (np. podano niepoprawną liczbę przedmiotów, oferowana kwota jest zbyt niska, oferta nie ma udostępnionej możliwości zakupu przez Kup Teraz!, w ofercie udostępniono jedynie możliwość zakupu przez Kup Teraz!, oferta zdążyła się zakończyć, dokonano próby zakupu alkoholu z konta o statusie Junior, itp.).
  • ERR_CANNOT_BID_VARIANT_NOT_PROVIDED
    Aby dokonać zakupu w ofercie wielowariantowej konieczne jest wybranie wariantu przedmiotu.
  • ERR_INCORRECT_BUY_NOW_PRICE
    Przy zakupie przez Kup Teraz!, w polu bid-user-price należy przekazać kwotę równą kwocie KT ustalonej przez sprzedającego, zgodną z widoczną w trwającej ofercie.
  • ERR_INVALID_ITEM_ID
    Podano niepoprawny identyfikator oferty.
  • ERR_INVALID_QUANTITY
    Ilość sztuk przedmiotu w danym wariancie deklarowana do zakupu jest nieprawidłowa (większa niż ilość dostępnych sztuk w danym wariancie lub mniejsza niż 1).
  • ERR_ITEM_FROM_OTHER_COUNTRY
    Oferta wystawiona została w kraju innym niż kraj do którego zalogowany jest użytkownik.
  • ERR_ITEMS_PER_USER_LIMIT_EXCEEDED
    Przekroczono ustalony przez sprzedającego limit liczby przedmiotów możliwych do zakupu przez pojedynczego użytkownika (dotyczy tylko ofert promowanych jako Okazje Allegro, które mają narzucony limit ofert dla jednego użytkownika).
  • ERR_NO_SESSION / ERR_SESSION_EXPIRED
    Niepoprawny identyfikator sesji lub sesja wygasła.
  • ERR_NOCODE_CAN_BID
    Nie można złożyć oferty we wskazanej ofercie - użytkownicy bez pełnej aktywacji konta nie mogą brać udziału w ofertach, w których sprzedający ustawił dla nich ograniczenie dostępu po pierwszym zakupie lub w których sprzedający (w ofercie typu Kup Teraz!) nie pozwala na płatność za pośrednictwem PayU.
  • ERR_NOCODE_CANNOT_BID_HOUR
    Nie można złożyć oferty we wskazanej ofercie - użytkownicy bez pełnej aktywacji konta nie mogą licytować, jeżeli czas do zakończenia oferty jest krótszy niż 1 godzina.
  • ERR_NOCODE_NO_BUYNOW
    Nie można złożyć oferty we wskazanej ofercie - użytkownicy bez pełnej aktywacji konta nie mogą korzystać z ofert typu Kup Teraz! w przypadku gdy dokonali już zakupu w swojej pierwszej ofercie (w ramach limitu 500 zł). Zasada ta obowiązuje jedynie w serwisach zagranicznych.
  • ERR_WEBAPI_KEY_INACTIVE
    Klucz WebAPI na którym została wygenerowana sesja został zdezaktywowany (jego właściciel nie zaakceptował warunków Regulaminu WebAPI).
  • ERR_WEBAPI_NOT_AVAIL
    Problemy z usługą Allegro WebAPI.

Allegro nie bierze odpowiedzialności za skutki wykorzystania zamieszczonych przykładów kodu, nie daje także gwarancji ich poprawnego działania. Widoczny kod ma charakter wyłącznie poglądowy i może zawierać błędy.

#1 (29.10.2013 r.) / php (Autor: pokupkivpolshe)
  1. <?php
  2. //pobieranie ustawień aplikacji webowej
  3. require_once 'app_config.php';
  4.  
  5. //pobieranie ustawień połączenia z bazą danych
  6. require_once 'database_connection.php';
  7.  
  8. //pobieranie ustawień allegro
  9. require_once 'allegro_settings.php';
  10.  
  11. //w przykładzie została wykorzystana funkcja error_handler ($string) celem której jest przekierowanie użykownika na stronę z informacją o błędzie $string.
  12.  
  13. //zakładamy, że jesteśmy zalogowani do serwisu Allegro przez SOAP czyli został pobrany identyfikator sesji $session['session-handle-part']
  14. $session_handle = $session['session-handle-part'];
  15.  
  16. //pobieranie niezbędnych argumentów z bazy danych
  17. $select_query = sprintf("SELECT price, quantity FROM auctions WHERE link='%s';", mysql_real_escape_string ($link));
  18.  
  19. //wykonanie polecenia MySQL
  20. $result = mysql_query($select_query)
  21. or error_handler ('Bląd aktualizacji danych w tabeli z aukcjami: '.mysql_error());
  22.  
  23. //otrzymanie danych z bazy danych
  24. while ($row = mysql_fetch_array($result))
  25. {
  26. $price = $row['price'];
  27. $quantity = $row['quantity'];
  28. }
  29.  
  30. //funkcja licytacji; $link - identyfikator aukcji; $price - oferowana stawka licytacji do aukcji; $quantity - liczba przedmiotów, której dotyczy składana oferta.
  31. function Licytacja ($session_handle, $link, $price, $quantity=1)
  32. {
  33. try
  34. {
  35. $session = $client->doBidItem($session['session-handle-part'], $link, $price, $quantity);
  36. }
  37. catch(SoapFault $error)
  38. {
  39. //wyłapywanie błędów przy wykonaniu funkcji 'doShowItemInfoExt'
  40. $system_error=$error->faultcode.': '.$error->faultstring;
  41. //zapisywanie w tabeli AUCTIONS (kolumna system_message) komunikatu o błędzie.
  42. $update_query = sprintf("UPDATE auctions SET system_message ='%s' WHERE link='%s';",
  43. mysql_real_escape_string ($system_error),
  44. mysql_real_escape_string ($link));
  45. //wykonanie polecenia MySQL
  46. mysql_query($update_query)
  47. or error_handler ('Bląd aktualizacji danych w tabeli z aukcjami: '.mysql_error());
  48. }
  49.  
  50. }
  51.  
  52. ?>