allegro / allegro-api

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

Problem z przesyłkami Poczta Polska - odbiór w punkcie #2438

Closed holospl closed 4 years ago

holospl commented 4 years ago

Czołem,

mam zrobioną integrację z pocztą, wszystkie metody działają oprócz allegro odbiór w punkcie. Cały czas otrzymuje błąd. Napisałem do opiekuna handlowego z PP, ale raczej nie kwapią się do szybkiej odpowiedzi, czy ktoś mógłby coś podpowiedzieć? Wiem, że to nie jest pytanie związane bezpośrednio z API Allegro, mimo wszystko metoda jest związana z serwisem wobec czego zaryzykuję i zapytam. :)

Błąd który zwraca mi ich API: addShipmentResponse Object ( [retval] => addShipmentResponseItemType Object ( [error] => errorType Object ( [errorNumber] => 81065 [errorDesc] => Sposób dostawy Allegro wskazuje na odbiór w punkcie, ale przesyłka nie ma ustawionego punktu odbioru. [guid] => F9E15A54971D7330CB9770D3C31482B0 ) [numerNadania] => [guid] => F9E15A54971D7330CB9770D3C31482B0 ) )

Wysyłane przeze mnie do nich informacje:

przesylkaBiznesowaType Object
(
    [pobranie] =>
    [urzadWydaniaEPrzesylki] => 772676
    [subPrzesylka] =>
    [masa] =>
    [gabaryt] => XXL
    [wartosc] =>
    [ostroznie] =>
    [adres] => adresType Object
        (
            [nazwa] => Sklep Żabka
            [nazwa2] =>
            [ulica] => Aleja Solidarności 3
            [numerDomu] =>
            [numerLokalu] =>
            [miejscowosc] => Warszawa
            [kodPocztowy] => 03734
            [kraj] => Polska
            [telefon] => 66839xxxx
            [email] => n2d65m9wrx+27e5ef307@allegromail.pl
        )

    [relatedToAllegro] => relatedToAllegroType Object
        (
            [id] => 12b4dcb5-f55c-11e9-9d30-19d703a3845b
            [sellerId] => 321298xxx
            [channel] => REST_API
            [deliveryMethod] => 10062
        )

    [guid] => 53C002F955B05FF3142CE283C42CC161
)

Gdzie leży problem?..

Zbigniew-L commented 4 years ago

zakładając, że komunikat masz poprawny, zauważyliśmy, że kod pocztowy (i miejscowość?) na koncie sprzedawcy allegro musi pasować do kodu pocztowego w profilach nadawcy w e-nadawcy (??? ale dlaczego to nie wiadomo)... może to jest problemem- spróbuj zmienić kod i miasto w e-nadawcy aby pasowało do danych z konta Allegro

holospl commented 4 years ago

Cenna uwaga, dzięki. Niestety w allegro jak i w ustawieniach e-nadawcy miejscowość i kod są takie same. Poza tym pewnie wpłynęło by to na inne przesyłki allegro. Allegro Pocztex Kurier 48 + wariant z pobraniem + Allegro Przesyłka polecona działają bez problemu...

Zbigniew-L commented 4 years ago

ten kod u nas działa może chodzi jeszcze o dodanie placowkaPocztowaType? jest tam placowka.id gdzie wpisujemy id punktu...

                    placowkaPocztowaType placowka = new urzadWydaniaEPrzesylkiType();
                    placowka.id = Convert.ToInt32(this.NewParcelData.Target_point);

                    // chyba coś takiego? bo już nie ma urzadWydaniaEPrzesylki... (2019-03-23)
                    placowka.punktWydaniaEPrzesylki = true;
                    placowka.punktWydaniaEPrzesylkiSpecified = true;

                    placowka.nazwa = this.NewParcelData.Receiver_company_name;

                    placowka.kodPocztowy = this.NewParcelData.Receiver_post_code;
                    placowka.miejscowosc = this.NewParcelData.Receiver_city;
                    placowka.ulica = this.NewParcelData.Receiver_street;
                    placowka.numerDomu = this.NewParcelData.Receiver_building_number;
                    subs.Add(placowka);
holospl commented 4 years ago

Dziękuje za pomoc, prawdopodobnie coś jest na rzeczy z placowkaPocztowaType., Ta dokumentacja od EN to żart, urzadWydaniaPrzesylki jest opisany jako element typu placowkaPocztowaType, ale urzadWydaniaEPrzesylki już nie. Niestety przerobiłem wysyłane informacje zgodnie z sugestią dalej mi to nie pomogło, aktualnie wygląda to w następujący sposób. Eh.


 przesylkaBiznesowaType Object
(
    [pobranie] => 
    [subPrzesylka] => 
    [masa] => 
    [gabaryt] => XXL
    [wartosc] => 
    [ostroznie] => 
    [adres] => adresType Object
        (
            [nazwa] => Sklep Żabka
            [nazwa2] => 
            [ulica] => Ignacego Mościckiego 86
            [numerDomu] => 
            [numerLokalu] => 
            [miejscowosc] => Tarnów
            [kodPocztowy] => 33100
            [kraj] => Polska
            [telefon] => 506733xxx
            [email] => az02yyihit+37d9b8e61@allegromail.pl
        )

    [relatedToAllegro] => relatedToAllegroType Object
        (
            [id] => 3e368633-f6f2-11e9-9ba5-4511490aca55
            [sellerId] => 321298xxx
            [channel] => REST_API
            [deliveryMethod] => 10062
        )

    [urzadWydaniaEPrzesylki] => placowkaPocztowaType Object
        (
            [lokalizacjaGeograficzna] => 
            [id] => 783495
            [prefixNazwy] => 
            [nazwa] => 
            [wojewodztwo] => 
            [powiat] => 
            [miejsce] => 
            [kodPocztowy] => 33100
            [miejscowosc] => Tarnów
            [ulica] => 
            [numerDomu] => 
            [numerLokalu] => 
            [nazwaWydruk] => 
            [punktWydaniaEPrzesylki] => 1
            [powiadomienieSMS] => 
            [punktWydaniaPrzesylkiBiznesowejPlus] => 1
            [punktWydaniaPrzesylkiBiznesowej] => 1
        )

    [guid] => BCDCDD0CB73FA689CF003F719EB5325A
)
Zbigniew-L commented 4 years ago

witam, nie zauważyłem wcześniej, że delivery method trzeba użyć stałe dla rest api a nie web api (czyli nie 10062 tylko jakiś guid - jest w dokumentacji)... (która jest jaka jest :) mogłaby być lepsza, ale to chyba dotyczy każdej dokumentacji :)

holospl commented 4 years ago

Żebyśmy się dobrze zrozumieli, to jest REST API, a dla dla REST_API podaje się ID numeryczne. Dla odbioru w punkcie jest to 10062, dla pocztex kurier 26, dla poleconego 28 itd itd. Wspomniane wcześniej metody działają, problem jest tylko z doprocyzowaniem dla punktu odbioru samego punktu, zresztą tak twierdzi komunikat błędu.

Zbigniew-L commented 4 years ago

dla REST_API z tego używasz w polu [deliveryMethod] zamiast 10061 trzeba podać guid czyli dla pobrania "88f677d9-c125-45e0-bdf0-f965826542a9" a bez pobrania "849a8308-240d-4045-ab30-f8207815bce4";

            case "KURIER POCZTEX OWP":
            case "POCZTA POLSKA OWP":
            case "KURIER POCZTEX48 OWP":
            case "KURIER POCZTEX24 OWP":
                if (isCOD == true)
                    // Allegro Poczta Polska Odbiór w Punkcie pobranie
                    res = allegroApiType == relatedToAllegroChannelType.WEB_API ? "20062" : "88f677d9-c125-45e0-bdf0-f965826542a9";
                else
                    // Allegro Poczta Polska Odbiór w Punkcie
                    res = allegroApiType == relatedToAllegroChannelType.WEB_API ? "10062" : "849a8308-240d-4045-ab30-f8207815bce4";
                break;
holospl commented 4 years ago

Kurczę, to jest ciekawe, dlatego że po pierwsze jeżeli podawałbym złe ID to przecież Allegro Pocztex Kurier 48, Allegro Pocztex Kurier 48 i Allegro Przesyłka Polecona nie powinny działać, a działają bez najmniejszego problemu.

Ponadto w dokumentacji od Elektronicznego Nadawcy jest zapis "Atrybut zawierający id sposobu dostawy zgodny ze sposobami obsługiwanymi przez Pocztę Polską, zawartymi w tabeli Sposoby dostawy Allegro."

ID, nie GUID, ale skoro u Ciebie działa, to nie pozostaje mi nic innego jak podmienić ID na GUID i zobaczyć czy jakkolwiek wpływa to na działanie istniejących już metod i tej nieszczęsnej dostawy z odbiorem w pukcie :) Sprawdzę dzisiaj i dam znać.

holospl commented 4 years ago

Udało mi się ustalić co jest problemem.

Komplet wysyłanych danych powinien wyglądać tak:

przesylkaBiznesowaType Object
(
    [pobranie] => 
    [urzadWydaniaEPrzesylki] => stdClass Object
        (
            [id] => 808464
        )

    [subPrzesylka] => 
    [masa] => 
    [gabaryt] => XXL
    [wartosc] => 
    [ostroznie] => 
    [adres] => adresType Object
        (
            [nazwa] => XXXXX
            [nazwa2] => 
            [ulica] => Cieszyńska 71
            [numerDomu] => 
            [numerLokalu] => 
            [miejscowosc] => Bielsko-Biała
            [kodPocztowy] => 43300
            [kraj] => Polska
            [telefon] => 51024xxx
            [email] => 9o6pibghx6+10ba1e2c9@allegromail.pl
        )

    [relatedToAllegro] => relatedToAllegroType Object
        (
            [id] => 3e52d5d1-fa29-11e9-be44-df6b5ed471af
            [sellerId] => 321298224
            [channel] => REST_API
            [deliveryMethod] => 10062
        )

    [guid] => 7D766375EDFAAEA9AF4171A880A6202D
)

Różnicą w porównaniu z ostatnim kodem jest brak deklaracji urzadWydaniaEPrzesylki jako placowkaPocztowaType.

Eh. No nic, zostawiam to tutaj dla potomnych, problem rozwiązany. Dziękuje Zbigniew-L za próbę pomocy! :) PS. API działa wobec tego prawdopodobnie prawidłowo zarówno z ID, jak i GUID.

stale[bot] commented 4 years ago

W tym wątku nie pojawiła się żadna nowa odpowiedź w ciągu 30 dni. Dlatego automatycznie oznaczamy go jako przeterminowany. Jeśli w ciągu 7 dni nie pojawi się żadna odpowiedź, zamkniemy ten wątek. Dziękujemy za zaangażowanie w dyskusję.