Zanim dodasz pierwszego przewoźnika
Uruchomienie rozstrzyga się w kilku miejscach: w karcie każdego przewoźnika, w rejestrze każdego zapytania i w polach statusu, które zobaczysz na listach. Oto szczegóły, które warto mieć jasne, zanim cokolwiek ruszysz. Jeśli szukasz ogólnego obrazu menu i przepływu, znajdziesz go w jak moduł działa od środka.
Dane dostępowe to dane Twojego konta u każdego przewoźnika
Dodanie przewoźnika obejmuje Carrier Name, Carrier Type (pole wyboru), Enabled i Company. Obok nich wpisujesz dane dostępowe. Sam moduł opisuje API Key jako «API key of the carrier account», a API Secret jako «API secret of the carrier account». Account Number to numer konta u danego przewoźnika, a pole podaje jako przykłady «FedEx account, UPS account, etc.».
Praktyczny wniosek: te trzy dane to dane Twojego konta u każdego przewoźnika, więc miej je pod ręką, zanim usiądziesz do konfiguracji. A ponieważ każdy wpis ma własne Company, jeśli pracujesz z kilkoma firmami w jednej bazie, sprawdź, do której przypisany jest każdy przewoźnik.
Custom Endpoint URL jest opcjonalny i dotyczy konkretnego przypadku
Wśród pól przewoźnika jest Custom Endpoint URL. Jego opis definiuje go jako własny, opcjonalny adres URL API dla «non-standard carriers». Jeśli Twój przewoźnik nie podpada pod ten przypadek, nie musisz go wypełniać.
Enabled i Connection Status sprawdzaj osobno
Enabled to pole wyboru, a Connection Status to osobne pole listy wyboru. To dwie różne informacje i warto je sprawdzać oddzielnie. Obok masz Last Sync Time, czyli datę i godzinę ostatniej synchronizacji, oraz Last API Response, czyli ostatnią odpowiedź API. W tej samej karcie zostają też Created i Created By, czyli data dodania i użytkownik, który go dodał.

Hazmat Categories, z sześcioma kategoriami i dopłatą równą zero.Każde zapytanie jest zapisane pole po polu
Moduł zapisuje rekord z tymi polami: Carrier, Request Type, Status, Timestamp, HTTP Status Code, Response Snippet, Error Message, Request Payload i Company. Gdy coś się nie zgadza, to właśnie tam trzeba zajrzeć:
Request Type: jaki to był typ zapytania.Request Payload: co zostało wysłane.HTTP Status Code: kod HTTP odpowiedzi.Response Snippet: fragment odpowiedzi.Error Message: tekst błędu.Timestamp: kiedy to się stało.
Dzięki Carrier i Timestamp szybko zawęzisz, o którego przewoźnika i o jaki moment chodzi. Do interpretacji konkretnych komunikatów masz przewodnik po błędach i ostrzeżeniach modułu.
Jest kilka pól statusu i nie znaczą tego samego
W module znajdziesz kilka pól o nazwie status lub state, każde z własnym zestawem wartości:
statuszSuccess,FailediTimeout.statuszSuccess,ErroriLabel Exists.statuszDraft,Generated,PrintediFailed.statuszActive,DegradediDown.statuszDraft,In Progress,Completed,FailediPaused.statuszDraft,Completed,FailediPartial.statezOpen,Submitted,Approved,RejectediPaid.statezDraftiDone.status_filterzDraft,Ready-to-ShipiAll.
Zwróć uwagę, że Failed i Draft występują w kilku z nich. Gdy filtrujesz albo ktoś z zespołu mówi Ci, że coś jest w Failed, zapytaj, na której liście to zobaczył, zanim zaczniesz szukać przyczyny.
Najdłuższe pole state biegnie od Draft do Cancelled
Jedno z pól state modułu przechodzi przez te wartości: Draft, Blocked, Cost Quoted, Ready to Ship, In Transit, Out for Delivery, Delivered, Attempted Delivery, Returned to Sender, Lost, Damaged i Cancelled. Są też dwa pola, status i current_status, z Pre-Label, In-Transit, Out-for-Delivery, Delivered, Exception i Returned.
Uważaj na zapis: w jednym przypadku jest Out for Delivery, a w drugim Out-for-Delivery; tak samo Ready to Ship i Ready-to-Ship z status_filter. Pamiętaj o tym przy wyszukiwaniu i tworzeniu zapisanych filtrów.

Export Intrastat nad listą przesyłek (Shipping › Shipments), z przesyłkami DHL Express w statusach Ready to Ship i Delivered.
Bulk Print Labels z dwiema zaznaczonymi przesyłkami DHL Express; tekst kreatora mówi o jednym pliku PDF lub ZIP.
Create Return (z przesyłką pierwotną, przewoźnikiem, typem usługi, Email Customer i notatkami do zwrotu) oraz do rejestracji faktury przewoźnika przez Record Carrier Invoice.last_health_check_status ma trzy wartości
Pole last_health_check_status przyjmuje Success, Failed lub Unknown. W pierwszym tygodniu notuj, którą z trzech wartości widzisz każdego dnia, i porównuj ją z Last Sync Time i Last API Response przewoźnika.
Co sprawdzić w pierwszym tygodniu
Z powyższym przegląd pierwszych dni sprowadza się do tego:
- Każdy przewoźnik ma
API Key,API SecretiAccount Numberze swojego konta oraz właściweCompany.
Custom Endpoint URLjest wypełniony tylko tam, gdzie dotyczy przypadku «non-standard carriers».
EnablediConnection Statuskażdego przewoźnika, sprawdzane osobno.
Last Sync TimeiLast API Response, codziennie.
- Wartość
last_health_check_status.
- Przy każdym nieudanym zapytaniu:
HTTP Status Code,Error Message,Response SnippetiRequest Payload.
- Które rekordy są w
Blocked,ExceptionlubAttempted Delivery.
Ile to kosztuje i jak pomaga FlexigoTech
Moduł kosztuje 9 € netto (bez VAT) za wersję Odoo, w płatności jednorazowej, dla 17, 18, 19 i 20; w Odoo 19 i 20 dodatkowo wymaga subskrypcji FlexigoTech Cloud, której plan Conector kosztuje 49 €/mies. lub 490 €/rok netto (bez VAT) (Pro: 98 €/mies. lub 980 €/rok), z maksymalnie 3 kontami platformy (Pro: 10). To połączenie przez FlexigoTech Cloud przechowuje dane dostępowe w formie zaszyfrowanej, pilnuje synchronizacji i wysyła e-mail, jeśli coś zawiedzie; bez subskrypcji lub przy zawieszonej usłudze zatrzymuje się to, co daje subskrypcja, a dane zostają w Twoim Odoo.
Szczegóły znajdziesz w karcie w Odoo Apps oraz na stronie modułu w flexigotech.com.
W FlexigoTech wdrażamy Odoo 17, 18, 19 i 20 oraz tworzymy konektory i integracje na zamówienie. Jeśli potrzebujesz pomocy w dodaniu przewoźników, analizie pierwszych błędów albo dopasowaniu przepływu wysyłek do Twojej operacji, opisz nam swój przypadek.
Czytaj dalej
Sprawdzone w kodzie źródłowym konektora (wersja 20.0) i w podlinkowanych źródłach
Źródła
- Kod modułu: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/carrier_api_log.py
- Kod modułu: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/carrier_config.py
- Kod modułu: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/carrier.py
- Kod modułu: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/carrier_batch_job.py
- Kod modułu: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/carrier_label.py
- Kod modułu: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/claim.py
- Kod modułu: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/cost_reconciliation.py
- Kod modułu: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/rate_lookup.py
- Kod modułu: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/shipment.py
- Kod modułu: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): models/tracking.py
- Kod modułu: flexigo_advanced_shipping_carrier_integration 20.0 (ffa31c5f): wizards/batch_processing_wizard.py
- apps.odoo.com/apps/modules/20.0/flexigo_advanced_shipping_carrier_integration
- apps.odoo.com/apps/modules/17.0/flexigo_advanced_shipping_carrier_integration
- apps.odoo.com/apps/modules/18.0/flexigo_advanced_shipping_carrier_integration
- apps.odoo.com/apps/modules/19.0/flexigo_advanced_shipping_carrier_integration
- flexigotech.com/en/services.html
- flexigotech.com/precios.html
