TL;DR
- Kontekst: Techniczny PM w scaleupie e-commerce B2B z opakowaniami, zaraz po Brexicie.
- Problem: Przy wysyłce bezpośrednio z Polski do UK cło płacił klient. Obejście przez spółkę w UK trwało ~20 dni.
- Co zrobiłem: Połączyłem wewnętrzny system zamówień z systemem fakturowania i systemem kuriera. Faktura trójstronna generuje się automatycznie, a paczka jedzie prosto do klienta.
- Wynik: Dostawa trwa ~7–10 dni zamiast ~20 (~50% szybciej), a klienci nie płacą cła.
Diagnoza
Po Brexicie wysyłka bezpośrednio z Polski do klienta w UK oznaczała, że klient musiał dodatkowo zapłacić cło. Pierwsza alternatywa polegała na wysłaniu kontenera do spółki UK, a potem rozesłaniu pojedynczych paczek do klientów, ale to zajmowało ~20 dni. Rozwiązanie okazało się dużo mniej efektowne niż zmiana trasy. Wystarczyła faktura trójstronna, na której w odpowiednich polach stoją odpowiednie strony. Wtedy paczka przechodzi odprawę i może jechać prosto do klienta. Kiedy nasz system zamówień zaczął generować taką fakturę automatycznie (wysyłał zapytania do systemu fakturowania i do systemu kuriera), wysyłka bezpośrednia znowu miała sens. Dostawa skróciła się do ~7–10 dni, a klient nie płacił cła.
flowchart TD
A1["Polska"] -->|"bezpośrednio, cło na kliencie"| B1["Klient UK płaci cło"]
A2["Polska"] -->|"kontener do spółki UK, ~20 dni"| B2["Spółka UK"] -->|"rozesłanie"| C2["Klient UK"]
A3["Polska"] -->|"faktura trójstronna, ~7-10 dni"| C3["Klient UK, bez cła"]
classDef good fill:#e6f2ea,stroke:none,color:#1f4d33,rx:14,ry:14
classDef bad fill:#faeaea,stroke:none,color:#5f2626,rx:14,ry:14
classDef accent fill:#27272a,stroke:#3f3f46,stroke-width:1px,color:#fafafa,rx:14,ry:14
class A1,B1 bad
class A2,B2,C2 bad
class A3 good
class C3 accent
linkStyle default stroke:#a8a8b3,stroke-width:1.5px
Co zrobiłem
- Prowadziłem integrację jako techniczny PM. Ustaliłem, kto ma stać na fakturze trójstronnej (nadawca to spółka polska, kupujący to spółka w UK, odbiorca to klient w UK) i połączyłem trzy systemy.
- Połączyłem wewnętrzny system zamówień z systemem fakturowania (nowoczesne API z szablonami) i z systemem kuriera (stary format XML). Nasz system wysyłał zapytania do obu, więc faktury tworzyły się same przy wysyłce.
- Prowadziłem rozmowy z oboma partnerami. Każdy miał zupełnie inne API i te rozmowy nie były łatwe.
- Dzięki temu paczki mogły znowu jechać bezpośrednio z Polski do UK i przechodzić odprawę bez cła na kliencie.
Wyniki
- Dostawa: ~20 dni → ~7–10 dni (~50% szybciej, około 10 dni mniej).
- Klienci w UK nie płacą cła, bo pozwala na to układ faktury trójstronnej.
- Wróciła wysyłka bezpośrednia. Przy tych zamówieniach zrezygnowaliśmy z kontenera przez spółkę w UK.
Dzięki fakturze trójstronnej paczka mogła pojechać krótszą, bezpośrednią trasą.
Problem
Co Brexit zrobił z wysyłką do UK?
Po Brexicie wysyłka paczki bezpośrednio z Polski do klienta w UK oznaczała, że cło było naliczane na tego klienta. Firma obchodziła to tak, że wysyłała kontener do spółki w UK i stamtąd rozsyłała paczki. Trwało to ~20 dni. Klient długo czekał na swoje opakowania, więc jego doświadczenie było słabe.
Dlaczego nie wysyłać po prostu bezpośrednio?
Bo przepisy celne tego nie ułatwiały. Cła nie dało się załatwić zmianą kuriera, bo wynikało z przepisów, a nie z logistyki. Rozwiązania trzeba było szukać w dokumentach wysyłki, a konkretnie w tym, co faktura mówi o tym, kto do kogo wysyła.
Moja rola / zakres
- Byłem technicznym PM-em. To była praca produktowa, a nie projektowa, czyli inna część mojej roli w tej firmie.
- Prowadziłem integrację od początku do końca: ustalenie, jak ma wyglądać faktura, połączenie systemów i rozmowy z partnerami.
- Pracowałem z dostawcą systemu fakturowania, firmą kurierską, zespołem od naszego systemu zamówień i z obiema spółkami.
Proces
- Najpierw ustaliłem, że cło to sprawa dokumentów. Rozwiązanie leżało w tym, jak zbudowana jest faktura.
- Zaprojektowałem fakturę trójstronną: nadawca to spółka polska, kupujący to spółka w UK, odbiorca to klient w UK. Taki układ pozwalał paczce przejść odprawę na trasie bezpośredniej.
- Połączyłem wewnętrzny system zamówień z systemem fakturowania (nowoczesne API z szablonami) i z systemem kuriera (stary format XML). Zapytania z naszego systemu trafiały do obu, a faktury tworzyły się automatycznie przy wysyłce.
- Prowadziłem integrację z obiema stronami: trzy systemy, dwóch zewnętrznych partnerów i sporo cierpliwych rozmów, zanim wszystko zadziałało.
Kluczowe decyzje i trade-offy
- Zmiana dokumentu zamiast logistyki. Cło było prawdziwe, ale naliczano je na podstawie tego, jak wysyłka była opisana w dokumentach. Faktura trójstronna spełniała wymagania odprawy, więc paczka mogła jechać prosto do klienta bez obciążania go cłem. Wysyłka kontenerem była wolniejsza i nie ruszała istoty problemu.
- Trzy strony we właściwych polach. Nadawca to spółka polska, kupujący to spółka w UK, odbiorca to klient w UK. Wpisanie ich w odpowiednie pola faktury było sednem całej sprawy, bo odprawa sprawdza to, co jest napisane w dokumencie.
flowchart LR
F["Faktura trójstronna"] --> N["Nadawca = spółka PL"]
F --> K["Kupujący = spółka UK"]
F --> O["Odbiorca = klient UK"]
classDef info fill:#e9eff8,stroke:none,color:#1e3a5f,rx:14,ry:14
class F,N,K,O info
linkStyle default stroke:#a8a8b3,stroke-width:1.5px
- Trzy systemy do połączenia. Nasz system zamówień musiał wysyłać zapytania i do systemu fakturowania (nowoczesne API z szablonami), i do systemu kuriera (stary XML). Żaden z nich nie był budowany z myślą o drugim, a nasz system nie obsługiwał natywnie żadnego z tych formatów. Musiałem ustalić, jak połączyć wszystkie trzy, i cierpliwie przejść przez trudne rozmowy z obiema firmami, aż faktury zaczęły się tworzyć automatycznie.
flowchart LR
W["Wewnętrzny system zamówień"] -->|"zapytanie API"| A["System fakturowania<br/>nowoczesne API + szablony"]
W -->|"zapytanie API"| B["System kuriera<br/>stary XML"]
A --> P["Połączenie systemów"]
B --> P
P --> C["Faktura trójstronna generowana automatycznie"]
classDef info fill:#e9eff8,stroke:none,color:#1e3a5f,rx:14,ry:14
classDef accent fill:#27272a,stroke:#3f3f46,stroke-width:1px,color:#fafafa,rx:14,ry:14
class W,A,B,P info
class C accent
linkStyle default stroke:#a8a8b3,stroke-width:1.5px
- Wysyłka bezpośrednia zamiast kontenera. Wybrałem szybszą drogę (~7–10 dni zamiast ~20) i zapłaciłem za to trudniejszą integracją. Według mnie warto, kiedy klient czeka na zamówienie.
| Trasa | Czas | Cło na kliencie | Trudność |
|---|---|---|---|
| Kontener przez spółkę UK | ~20 dni | brak | niska (zwykła logistyka) |
| Bezpośrednia (faktura trójstronna) | ~7–10 dni | brak | integracja dwóch różnych API |
Jak to się skończyło
Dostawa do UK skróciła się z ~20 dni do ~7–10 (~50% szybciej), a klienci nie płacili cła. Faktura trójstronna pozwoliła paczce przejść odprawę na trasie bezpośredniej. Najtrudniejsza była sama integracja. Nasz system zamówień musiał naraz rozmawiać z nowoczesnym API po jednej stronie i ze starym XML-em po drugiej, a żaden z partnerów nie był przygotowany ani na drugiego, ani na nas.
Co z tego wyniosłem
- Czasem rozwiązanie jest w dokumentach. Zmiana tego, co jest napisane na fakturze, odblokowała całą logistykę.
- Przepisy to też problem projektowy. Wymagania odprawy po Brexicie wyznaczały, jak ma wyglądać faktura. Kiedy zaczęliśmy od przepisów, wiedzieliśmy, co zbudować.
- Łączenie niepasujących systemów to prawdziwa praca produktowa. Nowoczesne API i stary XML same się nie dogadają. Muszę przyznać, że najwięcej pracy w tym projekcie kosztowało mnie właśnie ustalenie, jak je połączyć, i cierpliwość w rozmowach z partnerami.