allegro / allegro-api

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

Powiązanie id metody dostawy w zamówieniu z metodami płatności z /parcel-management/delivery-services #5581

Closed SlawekMat closed 2 years ago

SlawekMat commented 2 years ago

Moje pytanie jak w temacie. W zamówieniu dostaję informacji o wybranej metodzie dostawy w formie: "method": { "id": "0aafb43c-e66a-46ec-9cc4-29bb39ebb483", "name": "Allegro One Box" }, W jaki sposób "przełożyć" to na listę usług dostawy otrzymaną w formie: { "id": 11237538, "service": "ALLEGRO", "name": "Allegro One", "owner": "ALLEGRO", "carrierId": "ALLEGRO",

MaciejFrackowiak commented 2 years ago

Nie mamy bezpośredniego mapowania form dostawy z usługami dostępnymi w ramach Wysyłam z Allegro. Posiłkując się jednak GET /sale/delivery-methods otrzymujemy istotne szczegóły:

{
            "id": "0aafb43c-e66a-46ec-9cc4-29bb39ebb483",
            "name": "Allegro One Box",
            "paymentPolicy": "IN_ADVANCE",
            "allegroEndorsed": true,
            "shippingRatesConstraints": {
                "allowed": true,
            ...

W połączeniu z GET /parcel-management/delivery-services i dostępną usługą:

{
            "id": xxxxxxx,
            "service": "ALLEGRO",
            "name": "Allegro One",
            "owner": "ALLEGRO",
            "carrierId": "ALLEGRO",
            "additionalServices": {
                "cashOnDelivery": {
                    "available": false,
                    "expressAvailable": false
                },
                "options": []
            }
        },

można dokonać takiej "ręcznej" korelacji.

SlawekMat commented 2 years ago

Ma pan na myśli, że trzeba sobie samemu zrobić mapowanie tego? Bo ja nie widzę żadnego elementu spójnego wiec chyba tylko pozostaje to zrobić samemu i modyfikować przy każdej zmianie po państwa stronie.

MaciejFrackowiak commented 2 years ago

Pod Allegro One Box kryją się automaty paczkowe Allegro. Całość usług dostawy świadczona przez Allegro to One by Allegro, zatem w serwisie WzA w przypadku wskazanego zamówienia możesz skorzystać z nadania paczki do automatu paczkowego Allegro.

SlawekMat commented 2 years ago

Mi zależy na przygotowaniu paczki za pomocą /parcel-management/parcel-create-commands/ W wywołaniu wymagane jest podanie serviceId i nie wiem skąd mógłbym go pobrać poza indywidualnym przygotowaniem tablicy podstawień. Allegro One Box to tylko przykład.

MaciejFrackowiak commented 2 years ago

Dla każdego użytkownika dostępne usługi mogą mieć różne id, dlatego kluczowe jest pobranie dostępnych usług poprzez GET /parcel-management/delivery-services. Cały flow zarządzania przesyłkami opisaliśmy w naszym poradniku.

SlawekMat commented 2 years ago

Ja to wszystko już przeczytałem i chyba ze zrozumiem, ale nie znalazłem tam odpowiedzi. Czy dobrze rozumiem, że nie ma żadnej metody na połączenie tych dwóch informacji i pozostaje tylko indywidualne mapowanie tych usług? Bo ani w moich usługach nie ma id metody dostawy z zamówienia. Ani też nawet nazwa w jednym i drugim przypadku nie są tożsame.

MaciejFrackowiak commented 2 years ago

Dokładnie tak, wspomniałem o tym w pierwszym komentarzu - nie ma 1:1 mapowania w postaci usługi z delivery-methods a delivery-services.

SlawekMat commented 2 years ago

Napisał pan, że nie ma bezpośredniego, sugeruje to, że można zrobić to jakąś dłuższą ścieżka. Zabrakło mi informacji, że musze sam o to zadbać. Swoją drogą bardzo szkoda, każda zmiana u państwa będzie niosła za sobą dużo błędów. Dziękuję za odpowiedź

SlawekMat commented 2 years ago

Niestety mam jeszcze jeden problem. Na liście delivery-methods mam trzy usługi UPS (Allegro Kurier UPS, Allegro Kurier UPS pobranie, Allegro Odbiór w Punkcie UPS), natomiast na liście delivery-services tylko jeden id (Allegro UPS). Czy mam rozumieć, że mapowanie każdej usługi dostawy związanej z UPS mam kierować na Allegro UPS?

MaciejFrackowiak commented 2 years ago

Tak, jedna usługa z delivery-services może umożliwiać nadanie kilku typów metod dostawy - w Pomocy Allegro znajdziesz dokładny zbiór i opis wg przewoźników.

SlawekMat commented 2 years ago

Dziękuję

SlawekMat commented 2 years ago

Niestety mam kolejny problem. Dotyczy środowiska testowego. Przy próbie założenia paczki Allegro otrzymuje komunikat: "errors": [ { "code": "AUTHENTICATION_ERROR", "message": "No access to 'Wysyłam z Allegro'", "details": null, "path": "header.authorization", "userMessage": "Brak dostępu do 'Wysyłam z Allegro' przy użyciu client token" } ] W opisie widzę, że do założenia paczki mam podać AUTHORIZATIONS: [bearer-token-for-user] W czym tkwi problem?

MaciejFrackowiak commented 2 years ago

Proszę podaj login lub identyfikator swojego konta, sprawdzę to.

SlawekMat commented 2 years ago

neverland_pl

SlawekMat commented 2 years ago

Próbowałem dodać paczkę na obu kluczach i zawsze mam tą samą informację.

MaciejFrackowiak commented 2 years ago

Twoje konto nie było aktywne oraz nie zweryfikowałeś dotychczas konta jako firmowe. Przed momentem aktywowałem je, natomiast proszę zweryfikuj je jako firmowe na stronie.

SlawekMat commented 2 years ago

Dziękuje za informację, ale czy żeby korzystać z platformy testowej muszę podawać konto bankowe i robić przelew?

MaciejFrackowiak commented 2 years ago

Podaj proszę fikcyjne dane, a co do przelewu - na Sandbox działa symulator płatności, czyli de facto nie musisz robić realnego przelewu.

SlawekMat commented 2 years ago

Niestety po podaniu losowego nr konta i próbie przejścia dalej mam komunikat "Nie mogliśmy wybrać metody weryfikacji. Spróbuj ponownie później"

SlawekMat commented 2 years ago

Udało mi się przejść przy kolejnej próbie

SlawekMat commented 2 years ago

Niestety nadal mam problemy. Żeby zakończyć konfigurację konta muszę wystawić jakąś ofertę, natomiast nie mogę tego zrobić, mam komunikat "Użytkownik z blokadą konta Firma nie może wystawiać nowych ofert."

MaciejFrackowiak commented 2 years ago

Proszę sprawdź teraz - ręcznie przeprocesowałem Twój wniosek, powinno być OK.

SlawekMat commented 2 years ago

Teraz się udało, ale i tak przy próbie założenia paczki przez API mam ten sam komunikat { "errors": [ { "code": "AUTHENTICATION_ERROR", "message": "No access to 'Wysyłam z Allegro'", "details": null, "path": "header.authorization", "userMessage": "Brak dostępu do 'Wysyłam z Allegro' przy użyciu client token" } ] }

MaciejFrackowiak commented 2 years ago

Jak widzę posiadasz posiadasz na koncie już dostęp do zasobu GET /parcel-management/delivery-services, zatem pozostałe zasoby związane z Wysyłam z Allegro powinny być aktywne.

SlawekMat commented 2 years ago

Jednak nie są dostępne, cały czas mam ten sam zwrot, również przy wywołaniu parcel-management/delivery-services

MaciejFrackowiak commented 2 years ago

Korzystasz zatem z autoryzacji client_credentials, a zasoby odpowiedzialne za obsługę Wysyłam z Allegro wymagają "bearer-token-for-user", czyli autoryzacji code flow lub device flow. Zmień sposób autoryzacji i spróbuj ponownie wywołać zasób.

SlawekMat commented 2 years ago

No właśnie sposoby, którymi próbuję się autoryzować to code flow i device flow. Niestety efektów nie ma

SlawekMat commented 2 years ago

Przeszedłem całą ścieżkę jeszcze raz i chyba się udało, może trzeba to było zrobić na aktywnym koncie

SlawekMat commented 2 years ago

Ale niestety nie jest łatwo cokolwiek sprawdzić na portalu testowym. Nie mogę utworzyć paczki, ponieważ "Email odbiorcy nie jest powiązany z żadnym zamówieniem". Czy muszę mieć sprzedaż na koncie testowym, a jeśli tak to jak to testowo zrobić?

MartaNowaczyk commented 2 years ago

Załóż dodatkowe konto zwykłe do symulacji zamówień.

SlawekMat commented 2 years ago

To niestety będę miał jeszcze mnóstwo pytań. Przy "kupowaniu" chcę wybrać dostawę Allegro One Box, jak mogę wybrać miejsce odbioru? Na mapie Poznania nie widać żadnego.

MartaNowaczyk commented 2 years ago

Proszę wybrać jeden z dostępnych np. w Warszawie.

stale[bot] commented 2 years ago

W tym wątku nie pojawiła się żadna nowa odpowiedź w ciągu 7 dni, dlatego automatycznie oznaczamy go jako przeterminowany. Jeśli w ciągu kolejnych 7 dni nie pojawi się żadna odpowiedź, wątek zostanie zamknięty. Dziękujemy za zaangażowanie w dyskusję i zachęcamy Cię do wypełnienia ankiety dotyczącej naszego wsparcia na forum.


There was no new reply in this thread within 7 days, therefore, we automatically marked it as expired. If no response is received within the next 7 days, this thread will be closed. Thank you for engaging in the discussion. We encourage you to complete our forum support survey.