allegro / allegro-api

Issue tracker and wiki for Allegro REST API
https://developer.allegro.pl/
214 stars 39 forks source link

[NEWS] [Wyraź swoją opinię] Sekcja ‘Pasuje do pojazdów’ w opisie oferty - nowy zasób GET /sale/compatible-products/search. #877

Open PawelTaberski opened 5 years ago

PawelTaberski commented 5 years ago

W sierpniu 2018 dodaliśmy nową strukturę w modelu oferty - Pasuje do pojazdów. Obecnie w tej sekcji możesz tekstowo dodać listę marek i modeli aut, do których pasuje oferowana część.

Planujemy rozbudować tę funkcjonalność o dedykowany zasób, którym możesz wyszukać kompatybilne pojazdy na podstawie podanej frazy. W odpowiedzi otrzymasz identyfikatory, które będziesz mógł wykorzystać przy tworzeniu oferty w sekcji "compatibilityList". W tej sekcji nie będzie można już wprowadzać informacji w postaci tekstowej tylko identyfikatory.

Dzięki zmianie kupujący szybciej trafią na Twoją ofertę, a dokładny opis pojazdów do jakich pasuje dana część ułatwi im podjęcie decyzji.

Poniżej opis zasobu, który planujemy wdrożyć. Chcielibyśmy poznać wasze zdanie na temat nowego zasobu, który planujemy wdrożyć.

Swoje sugestie zamieszczajcie pod postem, bądź przesyłajcie do nas przez formularz kontaktowy. W treści zaznaczcie proszę, że sugestię przesyłacie do ticketa numer 877 Na GitHub.

GET /sale/compatible-products/search To zasób, którym wyszukasz kompatybilne pojazdy na podstawie podanej frazy. Otrzymane w ten sposób identyfikatory przekaż, gdy będziesz tworzył treść sekcji "compatibilityList". Zasób zwróci maksymalnie 200 wyników, dlatego wprowadź możliwie jak najbardziej szczegółową frazę.

Przy wywołaniu tej metody skorzystaj z poniższych zmiennych:

Przykładowy request: curl -X GET 'https://api.allegro.pl/sale/compatible-products/search?type=CAR&phrase=Volkswagen Golf III Hatchback 1993-1997 1.9 TDI 90KM kod silnika: AHU skrzynia manualna 5 biegowa napęd AWD' -H 'Accept: application/vnd.allegro.beta.v1+json' \ -H 'Content-Type: application/vnd.allegro.beta.v1+json' \ -H "Authorization: Bearer {token}"

Przykładowa odpowiedź: { "count": 3, -- liczba zwróconych elementów w tablicy compatibleProducts "compatibleProducts": [ -- lista kompatybilnych pojazdów { "id": "ae28e6178d908308008ab60fb0033fc0f9fce7d220c1715275b1fe2f0b9f3df6", -- identyfikator kompatybilnego pojazdu "text": "Volkswagen Golf III Hatchback 1.9 TDI (kod: AHU ) produkcja wersji: 1993-1997 moc: 90KM/kW manualna 5 biegowa FWD" -- opis kompatybilnego pojazdu }, { "id": "f50dbdfada9daef2051b69d319f6b36b2db70d9771910f1f55b2d1a14fc4e7b9", "text": "Volkswagen Golf III Hatchback 1.9 TDI (kod: AHU ) produkcja wersji: 1993-1997 moc: 90KM/kW manualna 5 biegowa AWD Syncro" }, { "id": "b7d624229f9d69e366eda66c43cc1897bd607f11a99fe149f5af160c2f79b3a9", "text": "Volkswagen Golf III Hatchback 1.9 TDI (kod: ALE ) produkcja wersji: 1993-1997 moc: 90KM/kW manualna 5 biegowa FWD" } ] }

Poniżej przykład uzupełnionej sekcji "compatibilityList" przy pomocy identyfikatorów jakie otrzymasz w odpowiedzi.

“compatibilityList” : { “items” : [ {“id”:”ae28e6178d908308008ab60fb0033fc0f9fce7d220c1715275b1fe2f0b9f3df6”}, {“id”:”f50dbdfada9daef2051b69d319f6b36b2db70d9771910f1f55b2d1a14fc4e7b9”}, {“id”:”b7d624229f9d69e366eda66c43cc1897bd607f11a99fe149f5af160c2f79b3a9”} ] }

martacronic commented 5 years ago

Z uwagi na fakt, że przy wprowadzaniu "Pasuje do pojazdów" uprzedziliście, że za jakiś czas będziecie rozwijali ten zasób wstrzymałam się z dodawaniem tej sekcji tekstowo.

Rozwiązanie, które proponujecie nie jest czymś z czego będę mogła skorzystać, ponieważ to wasze wyszukiwanie proponuje mi samochody, a potem będzie trzeba "ręcznie" zweryfikować i dobrać te samochody, które rzeczywiście pasują do danej części, co w przypadku 10000 aukcji i więcej jest już karkołomne.

Jeśli klient kupi np. zły element zawieszenia do nie swojego samochodu, bo wasze wyszukiwanie podpowiedziało, że auto może być dobre, to taka reklamacja po montażu i użytkowaniu samochodu, które przez tą część się zepsuje będzie bardzo kosztowna.

W przypadku symetrycznej sprzedaży w serwisie eBay mam listę k-type, która jest ogólno dostępna i są do niej dodawane wraz z pojawianiem się nowych aut nowe k-typy przy jednoczesnym nie zmienianiu poprzednich. Przy spięciu tego z tecdociem mam strukturę, w której mogę bez obaw wystawiać i zmieniać aukcję. link

Ponadto interesuje mnie czy planujecie wprowadzić filtrowanie po pojeździe?

TimothyKoval commented 5 years ago

Mam tak sobie wyszukiwać każde zastosowanie dla każdego produktu z oferty? Chyba pomyliliście API z ftont-endem.

Zróbcie to jak ludzie - drzewo zastosowań, np.

Pojazdy > Osobowe > VW > Golf > III > ...

Pozostałe parametry dołączcie jako jakieś atrybuty (np. typ nadwozia czy typ skrzyni biegów) żeby nie powielać danych 412390847198 razy. Całe takie drzewko udostępnijcie jak ludzie - publicznie, bez żadnej autoryzacji i innych pierdół - nie zachowujcie się jak reszta idiotów z tej branży ("nie dam ci zdjęć bo są moje").

dlis2010 commented 5 years ago

Ciężki temat panowie wrzuciliście na warsztat...

Najpierw trochę informacji które przegapiliście:

Volkswagen Golf III Hatchback 1.9 TDI (kod: AHU ) produkcja wersji: 1993-1997 moc: 90KM/kW manualna 5 biegowa AWD Syncro

podane lata oznaczają lata produkcji konkretnej wersji, a w tych latach mogło być stosowanych kilka różnych części.

Przykładowo tworzymy aukcje filtra powietrza który pasuje do powyższego auta i tu pojawia się problem - lata produkcji tego modelu to 1993-1997, ale w latach 93-95 stosowano filtr FILTR1 a w latach 95-97 stosowano filtr FILTR2. Możliwe rozwiązania:

Mógłbym wypisać jeszcze więcej przykładów (modele tylko z klimatyzacja, z sportowym zawieszeniem, 3 lub 5 drzwiowe....) w każdym przypadku informacja o tym musiałaby przy aktualnym Waszym rozwiązaniu znaleźć się w opisie aukcji co znowu podważa sens listy. Zwłaszcza, że konkretna część przykładowo może być stosowana w pojeździe 1 tylko w wersji z klimatyzacja, a w pojeździe 2 tylko bez klimy - czyli musielibyśmy mieć w liście dwie wersje pojazdu + w opisie znowu dwie wersje z informacjami dodatkowymi

Sensownym rozwiązanie byłoby rozbudowanie compatibilityList o stringa, przykładowo:

“compatibilityList” : {
“items” : [
  {
    “id”:”ae28e6178d908308008ab60fb0033fc0f9fce7d220c1715275b1fe2f0b9f3df6”,
    “additionalInfo”:”sportowe zawieszenie”,
  },
  {
    “id”:”f50dbdfada9daef2051b69d319f6b36b2db70d9771910f1f55b2d1a14fc4e7b9”,
    “additionalInfo”:”wersja pięciodrzwiowa z klimatyzacją”,
  },
  {
    “id”:”b7d624229f9d69e366eda66c43cc1897bd607f11a99fe149f5af160c2f79b3a9”,
    “additionalInfo”:”numer nadwozia od ZZ10000”,
  },
]
}

Na aukcji by to wyglądało tak:

Dzięki temu Wy macie ujednolicone informacje które w przyszłości możecie wykorzystać do filtrowania, wyszukiwania itp. a sprzedający ma możliwość uzupełnienia informacji o konkretnym aucie.

Wracając jeszcze do GET /sale/compatible-products/search Potrzebne byłoby jeszcze rozwiązanie masowe tak, aby można było powiązać Wasze id z z modelami trzymanymi w bazach sprzedających. Robienie tego co prawda jednorazowo lecz ręcznie (nie mamy pewności, ze wyszukiwarka zwróci odpowiedni model) z wszystkimi możliwymi wersjami jest dość kłopotliwe.

Aczkolwiek nie oszukujmy się, większość sprzedawców części samochodowych pracuje w oparciu o bazę TecDoc'a - wystarczyłoby zrobić zasób pozwalający pobrać identyfikator kompatybilnego pojazdu przesyłając carId z tecdoc'a. Zwłaszcza, że swoją listę pewnikiem w oparciu o niego budujecie.

Narazie tyle, powodzenia życzę i trzymam kciuki za sensowne rozwiazanie! ;)

kfijalko commented 5 years ago

Tak jak pisałem w #477 sam TecDoc nie załatwi sprawy. 1) cały słownik pojazdów musi być dostępny od razu (do pobrania tak jak pisała @martacronic ) żeby można było mapowanie zrobić w bazie sprzedawcy a nie poprzez ręczne wyszukiwanie pojedynczych zastosowań. 2) słownik musi być przyrostowy. tu można się posłużyć przykładem bazy tecdoc. Dają informację o tym, które rekordy zostały dodane/usunięte/edytowane. 3) myślę, że zejście do takiego poziomu jak pisze @dlis2010 było by bardzo trudne do realizacji i część informacji musi pozostać w opisie części tak jak jest to teraz. Natomiast dało by się obsłużyć "okres zastosowania" jeżeli kupujący oprócz modelu podawałby jeszcze rok produkcji. 4) pozostałe parametry specyficzne dla danej kategorii mogą być uzupełniane jako parametry kategorii, tak jak obecnie. tylko musicie je wprowadzać "rozważnie". Czyli, teraz żeby parametr się wyświetlał w filtrze to musi mieć zesłownikowane wartości. Tu może się pojawić problem jeżeli będzie jakiejś brakowało. Tak samo typ parametru jeżeli dana część działa z klimatyzacją lub bez, czy pasuje na lewą i prawą stronę, to parametr nie może wymagać jednej wartości.

Ogólnie trzymam kciuki, pomysł bardzo dobry.

PawelTaberski commented 5 years ago

Bardzo dziękuję za wszystkie komentarze, na bieżąco przekazuje je do zespoły, który pracuje nad tą funkcjonalnością.

jakubmaguza commented 5 years ago

@martacronic Niestety MVL nie jest aż tak dokładny, co jest w miarę zrozumiałe. Ogranicza się do wersji silnika i roku produkcji. W danym przedziale może być kilka wersji, kilka różnych części, więc i tak trzeba ssprawdzać, czy dana część będzie pasowała do konkretnego samochodu, zazwyczaj po numerze VIN.

KType też są zmieniane. Zazwyczaj w tym pliku jest dodana informacja o tym czy coś zostało zaktualizowane czy usunięte. Co nie zmienia faktu, że to świetna sprawa, bo mając dane z TecDoc, automatycznie mamy informację o pasujących do danej części pojazdach.

martacronic commented 5 years ago

@jakubmaguza oczywiście to co zaproponowałam nadal nie jest rozwiązaniem idealnym. Wyszukiwarka i brakiem jawnego katalogu, który w tej chwili jest proponowany jest czymś czego na pewno nie wykorzystam, jeśli zostanie w takiej formie i zostanę przy wypisywaniu wszystkich aut w treści aukcji. Ktype są usuwane, ale nie pamiętam, żeby były sytuacje, w których dany samochód z już przypisanym ktype dostał inny, ale oczywiście baza jest tak duża, że mogło się tak zdarzyć. U mnie ktype TecDOc rozwiązuje problem, ale jak @dlis2010 napisał dla niego to za mało i to jest jak najbardziej zrozumiałe.

@PawelTaberski nadal nie wiem czy planujecie kiedyś wprowadzić filtrowanie po pojeździe? Jeśli ta lista pojazdów ma tylko na celu wprowadzenie "ładniejszych" aukcji, to szkoda mojego czasu, bo już dawno takie informację na temat kompatybilności mam w sposób czytelny wprowadzony w treść aukcji i wiem, że jest to dokładna lista pojazdów.

jakubmaguza commented 5 years ago

@martacronic jeśli dobrze pamiętam, to raz zmieniali Fiaty na Abarthy albo odwrotnie :p

PawelTaberski commented 5 years ago

Tak, jak pisałem wszystkie sugestie przekazuje do zespołu, który pracuje nad tą funkcjonalnością. Jak ostatecznie będzie wyglądać ta metoda jeszcze nie wiem. Zbieramy od Państwa sugestie i na pewno postaramy się wdrożyć jak najlepsze rozwiązanie.

kuli-g commented 5 years ago

ja proponuję jakiś parser który zamieniał by np listę LI wielokrotnie zagnieżdzoną (lub xml lub cokowiek innego) np Marka -> model -> wersja/silnik -> wersja/silnik -> model -> wersja/silnik -> wersja/silnik na zgrabny tekst rozwijany po kliknięciu. Kupujący klikał by sobie w interesujący go pojazd i rozwijał pozycje przy zachowaniu czytelności zamiast przeglądać listę kilkuset pojazdów pisaną maczkiem, I dorzuć to do API a natychmiast się przerzucam na to

PawelTaberski commented 5 years ago

Bardzo dziękuję wszystkim za zaangażowanie, wszystkie uwagi i sugestię przekazałem do zespołu pracującego nad tą funkcjonalnością. Dostałem informacje, że były to bardzo cenne informacje i na pewno dostosują mechanizm działania. Jak tylko będę wiedział już o tym, jak to będzie ostatecznie wyglądało poinformuje o tym w osobnym komunikacie.

Liberko commented 5 years ago

Moje rozważania dotyczy zasady działania tej funkcjonalności. Z tego co widzę, pozwala to na uniknięcie wrzucania w tytuł aukcji parametrów kompatybilności. Posłużę się przykładem. Jestem sprzedawcą i mam na stanie model klocków hamulcowych pasujących jednocześnie do fiata 125p, trabanta, wartburga i poloneza. Zazwyczaj nadawany tytuł aukcji brzmiałby "klocki hamulcowe fiat 125p trabant wartburg polonez". I teraz kupujący poszukujący klocków do swojego trabanta puszcza search string "klocki trabant", co zwraca mu moją aukcję. Super. Problem jest, gdy lista kompatybilności, jak zazwyczaj, jest dłuższa i nie mieścimy się w liczbie dozwolonych znaków w tytule aukcji. Tak jest w większości przypadków. Teraz z pomocą przychodzi funkcjonalność compatibilityList. Dzięki temu tytuł aukcji mógłby brzmieć "klocki hamulcowe", a pasujące pojazdy wrzucamy na listę. Niby rewelacja, ale z tego co widzę, wyszukiwanie kupującego w serwisie działa dobrze na zadaną frazę "klocki trabant" ale tylko z poziomu kategorii "motoryzacja". Większość kupujących nie wybierze przecież kategorii "motoryzacja" i nie zada zapytania, zrobi to ze strony głównej serwisu. W ten sposób pozbawiliśmy sprzedawcę części potencjalnych klientów... Czy moje spostrzeżenia i obawy są słuszne? Tak ma być?

kuli-g commented 5 years ago

@Liberko u Ciebie jest kilka modeli, a co ze mną jak np sprzedaję np czujniki które pasują do kilkudziesięciu wersji kilku modeli z czterech albo więcej marek? Żeby objąć wszystkie możliwością wyszukania po tytule muszę robić po 20-30 ofert i w każdej wpisywać inne modele. Wątpię żeby nawet rozwiązanie allegro potrafiło ogarnąć tak rozbudowane zastosowania.

PawelTaberski commented 5 years ago

Informacje o tym jak będzie wyglądała ta sekcja po wdrożeniu znajdziecie tutaj.