Allegro WebAPI

Interfejs programistyczny platformy Allegro

doGetCatsData

Ostatnia zmiana: 07.03.2013 r.
Dostępność:
Metoda pozwala na pobranie pełnego drzewa kategorii dostępnych we wskazanym kraju.

  1. country-id | int | wymagany
    Identyfikator kraju (listę identyfikatorów krajów uzyskać można za pomocą metody doGetCountries).
  2. local-version | long | niewymagany
    Parametr zdezaktualizowany (należy przekazać dowolną wartość, odpowiednią dla typu parametru).
  3. webapi-key | string | wymagany
    Klucz WebAPI użytkownika.
  4. onlyLeaf | boolean | niewymagany
    Jeśli ustawisz jego wartość na true / 1 (boolean), w odpowiedzi otrzymasz tylko kategorie najniższego rzędu.



Orientacyjna struktura wywołania metody

$dogetcatsdata_request = array(
   'country-id' => 1,
   'local-version' => 0,
   'webapi-key' => 'g2fe408289'
);

  1. cats-list | CatInfoType[]
    Tablica struktur zawierających informacje o każdej kategorii.
    1. cat-id | int
      Identyfikator kategorii.
    2. cat-name | string
      Nazwa kategorii.
    3. cat-parent | int
      Identyfikator kategorii nadrzędnej (lub 0 dla kategorii głównych).
    4. cat-position | int
      Pozycja kategorii wobec innych kategorii tego samego rzędu (indeksowana od 0).
    5. cat-is-product-catalogue-enabled | int
      Pole zdezaktualizowane (zawsze będzie zwracać 0).
    6. isLeaf | boolean
      Dla kategorii najniższego rzędu, otrzymasz true / 1 (boolean).
  2. ver-key | long
    Wartość klucza wersji odpowiednia dla wybranego kraju i przekazanego klucza WebAPI.
  3. ver-str | string
    Wersja komponentu struktury drzewa kategorii odpowiednia dla przekazanego klucza WebAPI.



Orientacyjna struktura odpowiedzi serwera

$dogetcatsdata_response = array(
   'cats-list' => array(
      array(
         'cat-id' => 26013,
         'cat-name' => 'Antyki i Sztuka',
         'cat-parent' => 0,
         'cat-position' => 0,
         'cat-is-product-catalogue-enabled' => 0),
      array(...),
      array(
         'cat-id' => 8999,
         'cat-name' => 'Wzmacniacze i kolumny',
         'cat-parent' => 5564,
         'cat-position' => 6,
         'cat-is-product-catalogue-enabled' => 0),
      array(...),
      array(
         'cat-id' => 19393,
         'cat-name' => 'Nokia',
         'cat-parent' => 19357,
         'cat-position' => 5,
         'cat-is-product-catalogue-enabled' => 0),
      array(...)),
   'ver-key' => 16551276,
   'ver-str' => '1.2.63'
);

  • ERR_INPUT_COUNTRY_ERROR
    Niepoprawny identyfikator kraju (wskazany kraj nie jest obsługiwany lub w parametrze przekazano zerową/pustą wartość).
  • ERR_NO_DATABASE
    Problemy z bazą danych Allegro.
  • ERR_WEBAPI_EXPIRED
    Data ważności klucza WebAPI została przekroczona.
  • ERR_WEBAPI_KEY
    Niepoprawna wartość klucza WebAPI lub klucz został zablokowany.
  • ERR_WEBAPI_KEY_INACTIVE
    Klucz WebAPI został zdezaktywowany (nie zaakceptowano 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 (25.05.2010 r.) / vb.net (Autor: kopsoe)
  1. Dim Baza As New DataSet("Baza")
  2. Baza.Tables.Add(New DataTable("ListaKategorii"))
  3. Dim Allegro As New AllegroWebApiService
  4. Dim wer_key As Long
  5. Dim wer_str As String = Nothing
  6. Dim wynik() As CatInfoType = Allegro.doGetCatsData(1, 0, "g2fe408289", wer_key, wer_str)
  7. With Baza.Tables(0).Columns
  8. .Add(New DataColumn("cat-id", Type.GetType("System.Int32")))
  9. .Add(New DataColumn("cat-name", Type.GetType("System.String")))
  10. .Add(New DataColumn("cat-parent", Type.GetType("System.Int32")))
  11. .Add(New DataColumn("cat-position", Type.GetType("System.Int32")))
  12. End With
  13. For Each element In wynik
  14. With Baza.Tables(1)
  15. .Rows.Add()
  16. .Rows(.Rows.Count - 1).Item(0) = CType(element.catid, Int32)
  17. .Rows(.Rows.Count - 1).Item(1) = CType(element.catname, String)
  18. .Rows(.Rows.Count - 1).Item(2) = CType(element.catparent, Int32)
  19. .Rows(.Rows.Count - 1).Item(3) = CType(element.catposition, Int32)
  20. End With
  21. Next
#2 (15.05.2011 r.) / c# (Autor: saper_2)
  1. private void button7_Click(object sender, EventArgs e)
  2. {
  3. addLog("Init AllegroWebApiService... ", false); // addLog(string text, bool Add_CRLF=true)
  4. AllegroWebApiService api = new AllegroWebApiService();
  5. addLog("DONE.");
  6.  
  7. DataSet Cats = new DataSet("Cats");
  8. Cats.Tables.Add("Cats"); // add table
  9. // add columns to table
  10. Cats.Tables[0].Columns.Add(new DataColumn("cat-id", Type.GetType("System.Int32")));
  11. Cats.Tables[0].Columns.Add(new DataColumn("cat-name", Type.GetType("System.String")));
  12. Cats.Tables[0].Columns.Add(new DataColumn("cat-parent", Type.GetType("System.Int32")));
  13. Cats.Tables[0].Columns.Add(new DataColumn("cat-position", Type.GetType("System.Int32")));
  14.  
  15. addLog("+++++ Get Categories List : BEGIN +++++");
  16. try
  17. {
  18. long verkey;
  19. string verstr;
  20. CatInfoType[] cita = api.doGetCatsData(API_INFO.CountryCode, 0x0, API_INFO.WebApiKey, out verkey, out verstr);
  21.  
  22. foreach (CatInfoType cit in cita)
  23. {
  24. Cats.Tables[0].Rows.Add();
  25. // this maybe done less dirty but it works too
  26. Cats.Tables[0].Rows[Cats.Tables[0].Rows.Count - 1][0] = (Int32)cit.catid;
  27. Cats.Tables[0].Rows[Cats.Tables[0].Rows.Count - 1][1] = (string)cit.catname;
  28. Cats.Tables[0].Rows[Cats.Tables[0].Rows.Count - 1][2] = (Int32)cit.catparent;
  29. Cats.Tables[0].Rows[Cats.Tables[0].Rows.Count - 1][3] = (Int32)cit.catposition;
  30. }
  31. // no filter, sort by cat-parent ascending, and cat-position ascending
  32. Cats.Tables[0].Select("", "cat-parent ASC, cat-position ASC");
  33. addLog("Categories: " + Cats.Tables[0].Rows.Count.ToString() + " (ver-key=0x"+verkey.ToString("X16")+" <"+verkey.ToString()+">, ver-str=""+verstr+"")");
  34. for (int i = 0; i < Cats.Tables[0].Rows.Count; i++)
  35. {
  36. addLog(
  37. " - [" + Convert.ToString(Cats.Tables[0].Rows[i][0]) + "] "" + Convert.ToString(Cats.Tables[0].Rows[i][1]) + """ +
  38. ", parent=" + Convert.ToString(Cats.Tables[0].Rows[i][2]) +
  39. ", position=" + Convert.ToString(Cats.Tables[0].Rows[i][2])
  40. );
  41. }
  42.  
  43. }
  44. catch (System.Web.Services.Protocols.SoapException ee)
  45. {
  46. addLog("Error: Code=" + ee.Code + Environment.NewLine + ee.Message);
  47. }
  48. addLog("----- Get Categories List : END -----");
  49. }
#3 (24.08.2015 r.) / python (Autor: rikkt0r)
  1. from suds.client import Client
  2.  
  3. config = {
  4. 'allegro_key': 'XXX',
  5. 'allegro_country': 1,
  6. 'allegro_version': 0
  7. }
  8.  
  9. class Allegro:
  10. def __init__(self):
  11. self.c = Client('https://webapi.allegro.pl/service.php?wsdl')
  12. self.c.options.cache.setduration(hours=2)
  13. self.version = 0
  14.  
  15. def get_categories(self):
  16.  
  17. cat_list = self.c.service.doGetCatsData(
  18. countryId=config['allegro_country'],
  19. localVersion=self.version,
  20. webapiKey=config['allegro_key']
  21. ).catsList.item
  22.  
  23. cats = []
  24.  
  25. for cat in cat_list:
  26. cats.append({'id': cat.catId, 'name': cat.catName, 'parent': cat.catParent})
  27.  
  28. return cats
  29.  
  30.  
  31. if __name__ == "__main__":
  32. a = Allegro()
  33. cat = a.get_categories()
  34. print("Test: " + str(cat[0]))