Open studiowizjo opened 7 months ago
Dziękuję za zgłoszenie. Pracujemy nad rozwiązaniem tego problemu. Przepraszamy za niedogodności.
Przypominam sie w temacie. Czy udalo sie juz moze zdiagnozowac problem?
Pracujemy jeszcze nad poprawką, także proszę o jeszcze trochę cierpliwości.
Ponownie przypominam sie w temacie poniewaz minelo juz 10 dni od zgloszenia.
Wdrożyliśmy poprawkę już dobre kilka dni temu. Jeśli problem nadal występuje proszę o podanie aktualnego trace-id dla odpowiedzi z błędem.
Probowalismy przed weekendem- w piatek i blad dalej wystepowal. Obecnie rowniez wystepuje. Aktualny endpoint, na ktory wysylane jest zapytanie: https://api.allegro.pl/shipment-management/shipments/create-commands/96e7970f-0002-4c28-b4fa-bb1cc5128761
, Trace ID: 525e246b476fd86e
oraz odpowiedz:
{
"commandId": "96e7970f-0002-4c28-b4fa-bb1cc5128761",
"status": "ERROR",
"errors": [
{
"code": "PROCESSING_ERROR",
"message": "Problem with dispatch. Contact us, and we will help as soon as possible.",
"details": null,
"path": null,
"userMessage": "Problem z nadaniem przesyłki. Skontaktuj się z nami. Pomożemy jak najszybciej."
}
],
"shipmentId": null
}
Prosba rowniez o informacje kiedy naprawia Panstwo problem, poniewaz napisala Pani, ze wprowadziliscie poprawke kilka dni wczesniej, ale nie pojawila sie zadna odpowiedz z ta informacja.
Rozumiem rowniez, ze flow, ktore stosujemy jest odpowiednie aby wygenerowac przesylke, numer ktory mozna przekazac klientowi oraz wydrukowac dokumenty przewozowe? Slowem, jest to alternatywa dla skorzystania recznie z funkcjonalnosci "Nadaj przesylke", ktora widac w szczegolach zamowienia: https://allegro.pl/moje-allegro/sprzedaz/zamowienia/63807180-fe68-11ee-b91f-033d9f94da9c
Twoja sprawa jest nadal weryfikowana. Wrócę z informacją. Odpowiadając jeszcze na pytanie jest to odpowiednie flow, które odwzorowuje proces "Nadaj przesyłkę".
Problem powoduje brak podania maskowanego maila wygenerowanego przez Allegro. Postaramy się zwracać odpowiedni komunikat błędu w takim przypadku.
Ok, dziekuje. Mam jeszcze pytanie jesli chodzi o umowy wlasne. Rozumiem, ze korzystajac z API, nawet jesli ma sie wlasna umowe z danym kurierem, to mozna wprowadzic gdzies na koncie (gdzie?) dane do integracji z kurierem i wyslac zapytanie do API aby wygenerowac dokumenty przewozowe, zamiast integrowac sie samodzielnie?
Umowy własne dodasz w ustawieniach zamówień, a w naszym poradniku znajdziesz opis jak z takich umów korzystać.
Dziekuje za wskazanie miejsca, jednak w dokumentacji nie widze stricte informacji w temacie, o ktory pytalem. Czyli czy posiadajac umowe wlasna, mozna korzystajac z API generowac dokumenty przewozowe, tak samo jak w przypadku korzystania z domyslnych form dostawy, za waszym posrednictwem?
@studiowizjo tak, oczywiście można generować przesyłki w ramach umów własnych.
Pytam, ponieważ:
https://api.allegro.pl/shipment-management/shipments/create-commands
i zwraca nam on prawidlowo commandId
= 0c908688-4da5-488a-b026-a5af8d408762
(Trace ID: 8123d8e518c0de93
).commandId
wywolujemy endpoint https://api.allegro.pl/shipment-management/shipments/create-commands/0c908688-4da5-488a-b026-a5af8d408762
(Trace ID: 8c4e8e3613bf743
) i otrzymujemy:{
"commandId": "0c908688-4da5-488a-b026-a5af8d408762",
"status": "ERROR",
"errors": [
{
"code": "CREDENTIALS_ID_NOT_PROVIDED",
"message": "Seller didnt provide credentials for own delivery Method",
"details": "Seller didnt provide credentials for own delivery Method",
"path": "credentialsId",
"userMessage": "Wybrana metoda dostawy nie obsługuje tego zamówienia"
}
],
"shipmentId": null
}
Przesylka generowana jest dla metody dostawy o ID 2488f7b7-5d1c-4d65-b85c-4cbcf253fd9
(Allegro Paczkomaty InPost).
We wskazanym miejscu na koncie Allegro - https://allegro.pl/moje-allegro/sprzedaz/zamowienia/ustawienia widze 2 umowy wlasne, w tym jedna z InPost o numerze 5435109
. Edytujac ja widze, ze jest tam wprowadzony klucz autoryzacyjny.
Na czym wiec w tym przypadku polega problem?
Dla umowy własnej przy tworzeniu przesyłki powinieneś jeszcze przekazać id umowy własnej (pole input.credentialsId
). Uzyskasz ją w odpowiedzi dla GET /shipment-management/delivery-services w polu credentialsId
przy danej usłudze dostawy.
Dziekuje, dziala. Przesylka zostala utworzona i w kolejnym kroku potrzebowalbym wygenerowac etykiete przewozowa. Potrzebne jest do tego shipmentId
. Czy jesli podczas wykonywania 2 powyzszych metod nie zostalo ono zapisane, to mozna je pozniej wyciagnac jakos przez API?
Probowalem korzystajac z endpointu https://api.allegro.pl/order/checkout-forms/a08675e0-071c-11ef-b244-8fcab1eca631/shipment
(Trace ID: 5b6013b1657bfd86
), ale nie zwraca mi on numerow:
{
"shipments": [],
}
chociaz na koncie w podgladzie zamowienia: https://allegro.pl/moje-allegro/sprzedaz/zamowienia/f78b0550-086f-11ef-b244-8fcab1eca631?sellerId=41496971
widze 3 numery sledzenia przesylek.
shipmentId
uzyskasz tylko w odpowiedzi podczas sprawdzania statusu przesyłki (GET /shipment-management/shipments/create-commands/{commandId}). Posłuż się commandId
użytym w momencie tworzenia przesyłki.
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.
Jest jeszcze pewien problem z tym powiązany. Wykonując zapytanie na endpoint: https://api.allegro.pl/order/shipment-management/shipments/cb1dd96d-0d6c-4481-95a3-1ea08f563cfb
otrzymuje:
{
"errors": [
{
"code": "NotFoundException",
"message": "Not found",
"details": null,
"path": null,
"userMessage": "Funkcja niedostępna. Skontaktuj się z autorem aplikacji."
}
]
}
Trace ID: 17a03b2a8961d752
W tym przypadku podano maskowany adres klienta. Co jest więc przyczyną problemów?
Poprawne wywołanie powinno być bez "order": GET /shipment-management/shipments/{shipmentId}
Mam jeszcze problem z korzystaniem z endpointu: shipment-management/shipments/create-commands/{commandId}
. Zwraca mi on blad:
{
"result": {
"commandId": "117adae8-d22a-4b4c-8a9b-b50a79375756",
"status": "ERROR",
"errors": [
{
"code": "DELIVERY_METHOD_NOT_FOUND",
"message": "Requested delivery method was not found",
"details": "Requested delivery method was not found",
"path": "deliveryMethodId",
"userMessage": "Wybrana metoda nie jest wspierana"
}
],
"shipmentId": null
}
}
dla utworzonej wczesniej przesylki (shipment-management/shipments/create-commands) uzywajac danych:
{
"input": {
"deliveryMethodId": "845efe05-0c96-47c3-a8cb-aa4699c158ce",
"credentialsId": null,
"sender": {
//...
},
"receiver": {
//...
},
"pickup": {
//...
},
"referenceNumber": 171,
"packages": [
{
"type": "PACKAGE",
"length": {
"value": "20",
"unit": "CENTIMETER"
},
"width": {
"value": "30",
"unit": "CENTIMETER"
},
"height": {
"value": "6",
"unit": "CENTIMETER"
},
"weight": {
"value": "0.4",
"unit": "KILOGRAMS"
}
}
],
"labelFormat": "PDF",
"insurance": {
"amount": "200.00",
"currency": "PLN"
}
}
}
Dzięki za dane, jak tylko zweryfikuję ten przypadek wrócę z informacją.
Wybrana metoda z zamówienia nie jest dostępna w WZA, taką przesyłkę musisz nadać samodzielnie.
Co oznacza WZA? Jak mozemy wykryc to na wczesniejszym etapie, tak aby nie wysylac zapytania kiedy nie bedzie ono obslugiwane?
Dla zasobu GET /shipment-management/delivery-services zwracamy tylko metody WZA (Wysyłam z Allegro)
Faktycznie ten endpoint nie zwraca nam takiej przesyłki. Do tego zamówienia jest przypisana wysyłka o nazwie "Przesyłka kurierska pobranie" oraz id "845efe05-0c96-47c3-a8cb-aa4699c158ce". Co to wiec za forma wysylki? Czy jest to jakas wlasna forma? Jesli tak, to gdzie na koncie mozna znalezc informacje i edytowac ja?
W tym artykule znajdziesz informacje jakich przewoźników znajdziesz w WZA. Wszystkie dostępne metody, które można dodać do cennika znajdziesz wywołując GET /sale/delivery-methods. Twoja metoda dostawy to "Przesyłka kurierska pobranie".
Powyzej pytalem:
Dziekuje za wskazanie miejsca, jednak w dokumentacji nie widze stricte informacji w temacie, o ktory pytalem. Czyli czy posiadajac umowe wlasna, mozna korzystajac z API generowac dokumenty przewozowe, tak samo jak w przypadku korzystania z domyslnych form dostawy, za waszym posrednictwem?
i otrzymalem odpowiedz:
@studiowizjo tak, oczywiście można generować przesyłki w ramach umów własnych.
Na podstawie ostatniej odpowiedzi rozumiem, ze jednak nie zawsze korzystajac z API mozna wygenerowac dokumenty przewozowe?
Jesli sie nie da, to musimy wiedziec jaki to kurier zeby samodzielnie zintegrowac sie z nim. Korzystajac z GET /sale/delivery-methods otrzymuje dla tej przesylki:
{
"id": "845efe05-0c96-47c3-a8cb-aa4699c158ce",
"name": "Przesy\u0142ka kurierska pobranie",
"paymentPolicy": "CASH_ON_DELIVERY",
"allegroEndorsed": false,
"shippingRatesConstraints": {
"allowed": true,
"maxQuantityPerPackage": {
"max": 999999
},
"maxPackageWeight": {
"supported": false
},
"firstItemRate": {
"min": "0.00",
"max": "1000000.00",
"currency": "PLN"
},
"nextItemRate": {
"min": "0.00",
"max": "1000000.00",
"currency": "PLN"
},
"shippingTime": {
"default": {
"from": "PT48H",
"to": "PT72H"
},
"customizable": true
}
},
"marketplaces": [
"allegro-pl"
]
}
Nie ma tu wiec informacji czy jest to InPost, DPD, DHL, itd.
W jaki sposob mozna uzyskac te informacje?
Czy jest to forma wysylki domyslna- zdefiniowana przez Panstwa czy tez forma wlasna? Jesli wlasna, to gdzie na koncie mozna znalezc jej ustawienia i mozna zarzadzac nia?
Możesz na umowie własnej, ale w WZA nie mamy dostępnych wszystkich przewoźników i metod dostawy, stąd czasem jest konieczne nadanie przesyłki poza API Allegro. "Przesyłka kurierska pobranie" - to może być jakikolwiek kurier, także jest to forma własna. Dla InPostu mamy dedykowane metody jak np. "Kurier InPost". Jeśli chodzi o więcej szczegółów dotyczących samych metod dostaw, ich dostępności w WZA i ustawień to skorzystaj z formularz kontaktowego, bo to już nie są pytanie dotyczące samego API, a osoby zajmujące się stricte tematem przesyłek będą lepszym wsparciem.
W zasadzie generowanie przesylek dziala nam wylacznie dla Paczkomatow InPost.
Obecnie przeprowadzilem probe dla przesylki, ktora jest wasza wlasna i endpoint: shipment-management/delivery-services
zwraca mi informacje na jej temat:
{
"id": {
"deliveryMethodId": "c3066682-97a3-42fe-9eb5-3beeccab840c",
"credentialsId": null
},
"name": "Allegro Kurier DPD",
"carrierId": "DPD",
"additionalServices": [
{
"id": "additionalHandling",
"name": "Paczka niestandardowa",
"description": "Paczka o kształcie, który nie jest prostopadłościanem (np. opona, tuba) lub taka, która jest owinięta stretchem, folią lub innym materiałem utrudniającym przesuwanie."
},
{
"id": "returnOfDocuments",
"name": "Dokumenty zwrotne",
"description": "Zwrot dokumentów podpisanych przez odbiorcę."
},
{
"id": "collectionUponDelivery",
"name": "Przesyłka zwrotna",
"description": "Odbiór przez kuriera kolejnej przesyłki od odbiorcy i doręczenie jej do nadawcy."
},
{
"id": "guarantee0930",
"name": "Doręczenie do 09:30",
"description": ""
},
{
"id": "guarantee1200",
"name": "Doręczenie do 12:00",
"description": ""
},
{
"id": "guaranteeNextDay",
"name": "Doręczenie w następnym dniu roboczym",
"description": ""
},
{
"id": "saturdayDelivery",
"name": "Doręczenie w sobotę",
"description": ""
},
{
"id": "privateShipping",
"name": "Doręczenie do osoby prywatnej",
"description": ""
},
{
"id": "documentsSupply",
"name": "Dostarczenie dokumentów przewozowych przez kuriera",
"description": ""
},
{
"id": "personalDelivery",
"name": "Doręczenie do rąk własnych",
"description": ""
}
],
"additionalProperties": [],
"owner": "ALLEGRO",
"marketplaces": [
"allegro-pl"
],
"packageTypes": [
"PACKAGE",
"DOX"
],
"cashOnDelivery": null,
"insurance": {
"limit": 500000,
"currency": "PLN"
},
"features": []
}
Wyglada wiec na to, ze powinna to byc wysylka obslugiwana przez WZA. Generujemy wiec dla niej przesylkie wysylajac na endpoit: shipment-management/shipments/create-commands
takie dane:
{
"input": {
"deliveryMethodId": "c3066682-97a3-42fe-9eb5-3beeccab840c",
"credentialsId": null,
"sender": {
//...
},
"receiver": {
//...
},
"pickup": {
"name": "[wycieto]",
"company": "[wycieto]",
"street": "Konopnicka",
"streetNumber": "3/u3",
"postalCode": "22-022",
"city": "Lublin",
"countryCode": "PL",
"email": "[wycieto]",
"phone": "[wycieto]",
"point": null
},
"referenceNumber": 9364,
"packages": [
{
"type": "PACKAGE",
"length": {
"value": "20",
"unit": "CENTIMETER"
},
"width": {
"value": "30",
"unit": "CENTIMETER"
},
"height": {
"value": "6",
"unit": "CENTIMETER"
},
"weight": {
"value": "0.4",
"unit": "KILOGRAMS"
}
}
],
"labelFormat": "PDF",
"insurance": {
"amount": "200.00",
"currency": "PLN"
}
}
}
Przesylka jest generowana, natomiast sprawdzajac pozniej jej status: shipment-management/shipments/create-commands8ffbad05-e374-41d3-b6c4-5a505eab2f94
otrzymujemy:
{
"commandId": "8ffbad05-e374-41d3-b6c4-5a505eab2f94",
"status": "ERROR",
"errors": [
{
"code": "VALIDATION_ERROR",
"message": "Incorrect pickup postcode for selected carrier",
"details": null,
"path": "pickup.postalCode",
"userMessage": "Przewo\u017anik nie obs\u0142uguje podanego kodu pocztowego"
}
],
"shipmentId": null
}
Co wskazuje na bledny kod pocztowy podczas tworzenia przesylki. Jak podano jednak powyzej ten kod to 22-022
, co wydaje sie prawidlowe. Probowalismy rowniez wersji z wycieciem myslnika z kodu (w dokumentacji jest jednak w formacie z myslnikiem), jednak komunikat bledu nie zmienia sie.
Co jest przyczyna tego bledu?
Według wyszukiwarki takiego kodu nie ma, a na podstawie kodów Poczty Polskiej działamy.
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.
Kontynuujac temat tworzenia przesylek:
shipment-management/shipments/create-commands
. Otrzymujemy zwrotnie commandId = 2d4301a5-1ef4-4bbd-b80f-b55987811538
. Po wygenerowaniu etykiety, nie ma na niej danych przekazanych w parametrach "referenceNumber" oraz "description". Chcemy gdzies miec widoczna informacje nt. loginu kupujacego. Informacja dla nas: wewnętrzne ID zamówienia: #23229.c7c92e7c-0239-4422-afbe-2d6838ab9647
2db1d109-51c0-4145-84de-b5bddf20ad51
. W tym przypadku. Wstawiane sa dane przekazane w polu "description", ale nie sa widoczne dane z pola "referenceNumber".To chyba dotyczy tego samego problemu co w wątku #6423. Część przewoźników nie korzysta z tych pól, w związku z czym informacja nie będzie widoczna na etykiecie.
Mam jeszcze inne pytanie:
Wysylajac na endpoint: shipment-management/shipments/create-commands
dane:
{
"input": {
"deliveryMethodId": "aa1d05e0-943b-47cb-a759-9d8c16707129",
"credentialsId": null,
"sender": {
"name": "[wycieto dane]",
"company": "[wycieto dane]",
"street": "[wycieto dane]",
"streetNumber": "[wycieto dane]",
"postalCode": "[wycieto dane]",
"city": "[wycieto dane]",
"countryCode": "[wycieto dane]",
"email": "[wycieto dane]",
"phone": "[wycieto dane]",
"point": null
},
"receiver": {
"name": "[wycieto dane]",
"company": "[wycieto dane]",
"street": "[wycieto dane]",
"streetNumber": "[wycieto dane]",
"postalCode": "[wycieto dane]",
"city": "[wycieto dane]",
"countryCode": "[wycieto dane]",
"email": "[wycieto dane]",
"phone": "[wycieto dane]",
"point": null
},
"pickup": {
"name": "[wycieto dane]",
"company": "[wycieto dane]",
"street": "[wycieto dane]",
"streetNumber": "[wycieto dane]",
"postalCode": "[wycieto dane]",
"city": "[wycieto dane]",
"countryCode": "PL",
"email": "[wycieto dane]",
"phone": "[wycieto dane]",
"point": "FUP Szczecin 10"
},
"referenceNumber": "[wycieto dane]",
"description": "802a8a70-227e-11ef-b37e-d3a9f63d9e89",
"packages": [
{
"type": "PACKAGE",
"length": {
"value": "20",
"unit": "CENTIMETER"
},
"width": {
"value": "30",
"unit": "CENTIMETER"
},
"height": {
"value": "6",
"unit": "CENTIMETER"
},
"weight": {
"value": "0.4",
"unit": "KILOGRAMS"
}
}
],
"labelFormat": "PDF"
}
}
otrzymujemy blad:
{
"errors": [
{
"code": "VALIDATION_ERROR",
"message": "musi pasować do wyrażenia [A-Za-z0-9-_]+",
"details": "Invalid value: FUP Szczecin 10",
"path": "input.pickup.point",
"userMessage": "musi pasować do wyrażenia [A-Za-z0-9-_]+"
}
]
}
Jaki wiec powinien byc prawidlowy kod pickup point dla tej formy dostawy? Chodzi o ten punkt - https://poczta-polska.info.pl/poczta/5494-kolbaskowo/ . Probowalismy podawac zarowno "FUP Szczecin 10" jak i "72-001".
Pole pickup.point możesz wypełnić wartością pobraną:
ze szczegółów zamówienia, za pomocą GET /order/checkout-forms/{id}, w polu: delivery.pickupPoint.id,
W tym przypadku checkoutFormId = 802a8a70-227e-11ef-b37e-d3a9f63d9e89
i delivery.pickupPoint
ma wartość null
.
Chcemy jednak w tym miejscu ustawic punkt, w ktorym kurier ma odebrac przesylke, tak wiec chyba niekoniecznie informacja ta musi pochodzic z zamowienia?
z API odpowiedniego przewoźnika. Model każdego z nich jest różny, dlatego odwołaj się bezpośrednio do dokumentacji API przewoźników. Przykładowy punkt Poczty Polskiej (API): “116744”. Punkt jest widocznie niepoprawny. Walidacja za pomocą wyrażenia regularnego [A-Za-z0-9-_]+ nie przepuszcza spacji.
Sprobowalismy testowo uzyc tego punktu i zwraca nam blad:
{
"commandId": "f66205f7-8383-4f48-9f52-5b9718aea364",
"status": "ERROR",
"errors": [
{
"code": "VALIDATION_ERROR",
"message": "Pickup point is incorrect",
"details": null,
"path": "pickup.point",
"userMessage": "Punkt nadania przesy\u0142ki jest niepoprawny"
},
{
"code": "VALIDATION_ERROR",
"message": "Service is unavailable for selected parcel type",
"details": null,
"path": "additionalServices",
"userMessage": "Us\u0142uga niedost\u0119pna dla wybranego typu przesy\u0142ki"
}
],
"shipmentId": null
}
Bardziej chodziło mi tu o format niż o punkt do wykorzystania, dlatego najlepiej zbierać takie dane bezpośrednio od przewoźnika. Odpowiednie identyfikatory punktów (pickup.pointId) pobierzesz z API przewoźnika, w tym przypadku Poczty Polskiej (https://www.poczta-polska.pl/webservices/). Możesz też pobrać plik CSV lub XML z punktami Poczty Polskiej z ich strony.
Dziekuje. Wstawienie punktu pobranego w podany sposob eliminuje poprzedni blad, ale pozostaje blad:
{
"commandId": "bb53dd5b-953c-4254-9750-c997a49f2a99",
"status": "ERROR",
"errors": [
{
"code": "VALIDATION_ERROR",
"message": "Service is unavailable for selected parcel type",
"details": null,
"path": "additionalServices",
"userMessage": "Us\u0142uga niedost\u0119pna dla wybranego typu przesy\u0142ki"
}
],
"shipmentId": null
}
chociaz nie podano nic w additionalServices
.
W tym przypadku nie chodzi o additionalServices, tylko o wybrany typ przesyłki i wybraną metodę. "Allegro Przesyłka polecona", która jest przesyłką listowną i dla tej usługi akceptowalnym package.type jest tylko list: DOX. Przekazałam do zespołu od WZA mylącą ścieżkę.
Ustawilismy w tym przypadku "DOX", ale nadal mamy blad:
{
"commandId": "39f52a10-db99-4e9c-ab51-b13d569ad198",
"status": "ERROR",
"errors": [
{
"code": "ERROR",
"message": "Processing error",
"details": null,
"path": null,
"userMessage": "Problem z nadaniem przesy\u0142ki. Skontaktuj si\u0119 z nami. Pomo\u017cemy jak najszybciej."
}
],
"shipmentId": null
}
Z tego co udało mi się sprawdzić był problem z API przewoźnika. Czy problem się powtarza?
Tak, powtarza sie. Aktualny blad (taki sam, ale inne commandId):
{
"commandId": "78813cbf-5509-413d-9016-d939d8a13596",
"status": "ERROR",
"errors": [
{
"code": "ERROR",
"message": "Processing error",
"details": null,
"path": null,
"userMessage": "Problem z nadaniem przesy\u0142ki. Skontaktuj si\u0119 z nami. Pomo\u017cemy jak najszybciej."
}
],
"shipmentId": null
}
Sprawdziliśmy i w tym czasie Poczta Polska miała jeszcze awarię, także to jest pewnie przyczyną. Gdyby jednak teraz też się nie udało podaj proszę commandId lub trace-id.
Faktycznie, teraz udalo sie prawidlowo wygenerowac. Dziekuje.
Obecnie mamy 2 inne problemy:
{
"commandId": "61797349-482f-4395-bf8b-4d8dab93a290",
"status": "ERROR",
"errors": [
{
"code": "VALIDATION_ERROR",
"message": "Decimals are not supported by the selected currency",
"details": null,
"path": "insurance.amount",
"userMessage": "Podana waluta nie wspiera warto\u015bci dziesi\u0119tnych"
}
],
"shipmentId": null
}
Chodzi o zamówienie zlozone w koronach czeskich.
Taki blad pojawia sie dla takich parametrow ubezpieczenia:
"insurance": {
"amount": 3055.56,
"currency": "CZK"
}
Jesli jednak zgodnie z komunikatem podamy jako amount po prostu "3055" (lub: "5055.00" albo "5055.0"), to otrzymuje blad:
{
"errors": [
{
"code": "VALIDATION_ERROR",
"message": "The amount must have the following format: 9999.99",
"details": "Invalid value: 3055",
"path": "input.insurance.amount",
"userMessage": "Kwota musi być w formacie 9999.99"
}
]
}
{
"commandId": "70bd8709-24be-4f8a-82b7-20fe79f8499f",
"status": "ERROR",
"errors": [
{
"code": "BAD_REQUEST",
"message": "receiver.point with specified PointId was not found",
"details": null,
"path": "receiver.point",
"userMessage": "Pole punkt odbiorcy ze wskazanym id nie zosta\u0142o znalezione"
}
],
"shipmentId": null
}
W tym przypadku podany receiver.point to A006317
i zostal on on pobrany z orderCheckoutForm.delivery.pickupPoint.id
Z kolei orderCheckoutForm.id = cc20ca40-272c-11ef-ab70-cb4493390667
.
{
"commandId": "8e248f05-47cb-4a34-b2de-b9b0d59bc861",
"status": "ERROR",
"errors": [
{
"code": "VALIDATION_ERROR",
"message": "Receiver address is incorrect",
"details": null,
"path": "receiver.street",
"userMessage": "Adres odbiorcy jest nieprawid\u0142owy"
}
],
"shipmentId": null
}
W receiver.street
probowalismy podawac "103" lyb "Hyżne 103", co wynika z danych otrzymanych o zamowieniu dla checkoutFormId = bc8ec3f0-2729-11ef-bfe7-2bfe9f5effc2
. Zwraca nam to nastepujace dane:
{
"address": {
"firstName": "[WYCIETE]",
"lastName": "[WYCIETE]",
"street": "Hyzne 536 / 536",
"city": "Hyzne",
"zipCode": "36-024",
"countryCode": "PL",
"companyName": "[WYCIETE]",
"phoneNumber": "[WYCIETE]",
"modifiedAt": null
},
"method": {
"id": "028e2be0-1c06-41cf-a309-ec5557273786",
"name": "Allegro Odbiór w Punkcie Pocztex"
},
"pickupPoint": {
"id": "242213",
"name": "UP Hyżne k. Dynowa",
"description": null,
"address": {
"street": "103",
"zipCode": "36-024",
"city": "Hyżne",
"countryCode": "PL"
}
}
}
Poniewaz mamy uzupelniona sekcje "pickupPoint", to danych z niej uzywamy do generowania przesylki.
- Tak jak w przypadku ceny w walucie CZK, tak samo dla przesyłek w walucie CZK przyjmowane są ceny bez wartości dziesiętnych, ale zgodnie z formatem podanym w komunikacie.
Tzn, jak mamy podac, bo tak jak wspomnialem probowalismy na rozne sposoby, np.
i za kazdym razem otrzymujemy blad.
Czy jest jakis sposob zeby przez API w takiej sytuacji ustalic najblizszy dostepny punkt?
Ok, dziekuje.
Cieszę się, że udało się rozwiązać problem.
Korzystając z endpointu: shipment-management/shipments/create-commands tworzymy przesylke i zwrotnie otrzymujemy commandId o wartości: 3ee2446d-cf15-4610-ac69-5f8352ec407a. Korzystając z niego wykonujemy zapytanie na endpoint: shipment-management/shipments/create-commands/3ee2446d-cf15-4610-ac69-5f8352ec407a i otrzymujemy:
Co jest przyczyna?