TL;DR
- Kontekst: Techniczny PM w scaleupie e-commerce B2B z opakowaniami, po wejściu Brexitu.
- Problem: Bezpośrednia wysyłka Polska → UK przerzucała cło na klienta; obejście przez spółkę w UK trwało ~20 dni.
- Co zrobiłem: Spiąłem wewnętrzny system zamówień z systemem fakturowania i systemem logistycznym (kurierem), żeby auto-generować fakturę trójstronną i odprawiać przesyłkę bezpośrednio do klienta.
- Wynik: Dostawa ~20 dni → ~7–10 dni (~50% szybciej), zero cła na klientach.
Diagnoza
Wąskie gardło to nie była ciężarówka. To był dokument. Po Brexicie wysyłka bezpośrednia z Polski do klienta w UK oznaczała, że klient był obarczony dodatkowo cłem. Pierwsza alternatywa polegała na wysłaniu kontenera do spółki UK, a potem rozesłanie pojedynczych paczek do klientów, ale to zajmowało ~20 dni. Rozwiązanie nie było ani logistyczne, ani polityczne: to była faktura trójstronna, która w odpowiednich polach nazywała odpowiednie strony, więc paczka mogła przejść odprawę na bezpośrednim kursie. Gdy ten dokument dało się generować automatycznie (wewnętrzny system zamówień wysyłał zapytania API do systemu fakturowania, czyli nowoczesnego API z szablonami, i do systemu logistycznego/kuriera, czyli legacy XML), otworzyła się wysyłka bezpośrednia. Czas dostawy spadł z ~20 dni do ~7–10, bez cła na kliencie.
flowchart TD
A1["Polska"] -->|"bezpośrednio, zablokowane cłem"| 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: zdefiniowałem logikę faktury trójstronnej (nadawca = spółka PL, kupujący = spółka UK, odbiorca = klient UK) i spiąłem trzy systemy.
- Spiąłem wewnętrzny system zamówień z systemem fakturowania (nowoczesne API z szablonami) i systemem logistycznym/kurierem (legacy XML). Wewnętrzny system wysyłał zapytania API do obu, żeby faktury trójstronne generowały się automatycznie przy wysyłce.
- Prowadziłem rozmowy integracyjne po obu stronach: dwóch partnerów, dwa bardzo różne API, trudne negocjacje.
- Odblokowałem bezpośrednią wysyłkę Polska→UK, która przechodziła odprawę bez cła na kliencie.
Wyniki
- Czas dostawy ~20 dni → ~7–10 dni (~50% szybciej, ~10 dni mniej).
- Zero cła na klientach UK, dzięki strukturze faktury trójstronnej.
- Przywróciłem wysyłkę bezpośrednią: wycofałem kontenerowy objazd przez spółkę UK dla tych wysyłek.
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. Obejście, jakie miał biznes, to wysłać kontener do spółki UK i rozesłać paczki stamtąd, co trwało ~20 dni. Wolno i słabe doświadczenie dla klienta czekającego na opakowania.
Dlaczego po prostu nie wysyłać bezpośrednio?
Bo struktura celna to penalizowała. Cło nie było problemem logistycznym do którego można dorzucić kuriera; było regulacyjne. Odblokowanie musiało siedzieć w tym, jak wysyłka była udokumentowana: konkretnie, co faktura mówiła, kto do kogo wysyła.
Moja rola / zakres
- Techniczny PM: to była praca PM-a, nie designu, inna część mojego zakresu.
- Prowadziłem integrację end-to-end: logikę faktury, pomost między systemami i rozmowy z partnerami.
- Współpracowałem z partnerem fakturowania, kurierem, zespołem odpowiedzialnym za wewnętrzny system zamówień oraz dwiema naszymi spółkami.
Proces
- Zidentyfikowałem, że cło to problem dokumentu, nie logistyki: struktura faktury była dźwignią.
- Zaprojektowałem logikę faktury trójstronnej: nadawca = spółka PL, kupujący = spółka UK, odbiorca = klient UK. Ta kombinacja pozwalała paczce przejść odprawę na bezpośrednim kursie.
- Spiąłem wewnętrzny system zamówień z systemem fakturowania (nowoczesne API z szablonami) i systemem logistycznym/kurierem (legacy XML), tak żeby zapytania API z wewnętrznego systemu trafiały do obu i faktury generowały się automatycznie przy wysyłce.
- Prowadziłem integrację po obu stronach: trzy systemy, dwóch zewnętrznych partnerów, uporczywe rozmowy, aż zadziałało.
Kluczowe decyzje i trade-offy
- Napraw dokument, nie logistykę. Cło było realne, ale było naliczane na podstawie tego, jak wysyłka była udokumentowana. Faktura trójstronna (nadawca / kupujący / odbiorca) zadowalała odprawę i pozwalała paczce lecieć bezpośrednio bez obciążania klienta. Pierwotna alternatywa, czyli zbiorcza wysyłka kontenerem, była wolniejsza i nie ruszała istoty problemu.
- Trzy nazwane strony, w odpowiednich polach. Nadawca = spółka PL, kupujący = spółka UK, odbiorca = klient UK. Wciśnięcie tych ról w odpowiednie pola faktury było sednem całej sprawy; odprawa czyta dokument, nie intencję.
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
- Spiąć trzy systemy, nie dwa. Wewnętrzny system zamówień musiał wysyłać zapytania API zarówno do systemu fakturowania (nowoczesne API z szablonami), jak i do systemu logistycznego/kuriera (legacy XML). Żadne z nich nie było zbudowane pod drugie, a wewnętrzny system nie mówił natywnie w żadnym z tych dwóch dialektów. Praca polegała na zdefiniowaniu pomostu między wszystkimi trzema i uporczywym przeczekaniu trudnych rozmów integracyjnych po obu zewnętrznych stronach, aż dokument popłynął automatycznie.
flowchart LR
W["Wewnętrzny system zamówień"] -->|"zapytanie API"| A["System fakturowania<br/>nowoczesne API + szablony"]
W -->|"zapytanie API"| B["System logistyczny/kurier<br/>legacy XML"]
A --> P["Pomost integracyjny"]
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 kontenerowego objazdu. Wybrałem szybszą ścieżkę (~7–10 dni vs ~20) i zapłaciłem za to złożonością integracji: słuszny kompromis, gdy klient czeka na zamówienie.
| Trasa | Czas | Cło na kliencie | Złożoność |
|---|---|---|---|
| Kontenerowy objazd | ~20 dni | brak | niska (logistyka standardowa) |
| Bezpośrednia (faktura trójstronna) | ~7–10 dni | brak | integracja dwóch różnych API |
Jak to się skończyło
Dostawa do UK spadła z ~20 dni do ~7–10 (~50% szybciej), z zerem cła na kliencie: faktura trójstronna przeprowadziła paczkę przez odprawę na bezpośrednim kursie. Najtrudniejsza część to sama integracja: wewnętrzny system zamówień musiał gadać jednocześnie z nowoczesnym API po jednej stronie i z legacy XML po drugiej, z dwoma partnerami, którzy nie byli zbudowani pod siebie ani pod niego.
Co z tego wyniosłem
- Wąskie gardło to czasem dokument, nie ciężarówka. Napraw to, co mówi dokument, a logistyka może się odblokować pod spodem.
- Ograniczenia regulacyjne to problemy projektowe. Odprawa brexitowa dyktowała strukturę faktury; wychodząc od tej regulacji, wiedzieliśmy, co budować.
- Spięcie niekompatybilnych API to realna praca produktowa. Nowoczesne API i legacy XML same nie spotkają się w połowie drogi, a wewnętrzny system zamówień nie mówił natywnie w żadnym z nich. Zdefiniowanie tego pomostu i upór w rozmowach to miejsce, w którym to wdrożyłem.