Odoo Rescue, ERP Recovery[Launched]

Odoo Rescue: naprawa zepsutego systemu operacyjnego firmy

Odoo Rescue: naprawa zepsutego systemu operacyjnego firmy preview

Architektura systemu //

Odoo 19Odoo.shPythonXML-RPCBaseLinker APIShopifyAllegro APISendGridQWebMRP

🔹 1. Przegląd Projektu

Klient to firma produkcyjno-handlowa działająca w obszarze eko-opakowań, magazynów, marketplace'ów, sprzedaży B2B/B2C oraz operacji wewnętrznych w Odoo. System był już centrum biznesu, ale po latach ręcznych zmian, modułów zewnętrznych, importów i poprawek robionych na żywo przez Studio stał się trudnym do opanowania węzłem operacyjnym

Właściciel nie potrzebował kolejnej drobnej naprawy Odoo. Potrzebował jednego systemu, który łączy działy, pracowników, magazyn, produkcję, sprzedaż, pocztę, CRM, marketplace'y, e-commerce i operacje końcowe w jeden kontrolowany przepływ

Moja rola była rolą rescue engineera: wejść w chaotyczny obszar ERP, rozplątać dług techniczny i procesowy oraz odbudować model operacyjny end-to-end — od przyjęcia surowca do sprzedaży gotowego produktu

🔹 2. Z Czym Przyszedł Klient

Dług infrastrukturalny: Odoo działało na Hetznerze z zestawem modułów customowych i zewnętrznych, z których część nie była gotowa do przejścia na Odoo 19
Katalog bez jasnego modelu: produkty były pomieszane między szablonami, wariantami, zestawami, opakowaniami, EAN, SKU z BaseLinkera i logiką magazynową. Część rekordów powstała po nieudanych importach jako osobne duplikaty
Zanieczyszczona baza kontaktów: duplikaty, puste rekordy, wpisy testowe, różne formaty danych bankowych, regionów i kontaktów
Magazyn i produkcja bez struktury kontrolnej: BoM, surowce, kody kreskowe, pomieszczenia magazynowe i druk etykiet istniały, ale wymagały stabilizacji i normalizacji
CRM i poczta nie dawały pełnej kontroli: wiadomości gubiły się w Discuss albo w ręcznym procesie, follow-upy robili managerowie ręcznie, a zapytania sprzedażowe nie miały stabilnej ścieżki do oferty
Ryzyka bezpieczeństwa i jakości: podczas audytu znalazłem historyczną podatność w mechanizmie Followers: zewnętrzny kontakt został błędnie dopisany do wewnętrznych dyskusji i przez długi czas otrzymywał kopie korespondencji operacyjnej. W systemie działały też niekontrolowane scheduled actions / cron jobs oraz automatyzacje bez jasnego właściciela biznesowego

🔹 3. Zakres Prac

Przenieść Odoo z Hetznera na Odoo.sh / Odoo Cloud i dostosować system do Odoo 19
Zrobić audyt modułów customowych, zostawić potrzebne elementy, usunąć niekompatybilne części oraz ustabilizować PBX i UI po aktualizacji
Oczyścić bazę kontaktów, leadów, danych bankowych i regionów
Znormalizować katalog produktów i nomenklaturę produkcyjną: szablony, warianty, SKU, EAN, opakowania, zdjęcia, wagę, wymiary, surowce i mapping BaseLinker
Skonfigurować logikę magazynową: BoM, surowce RAW, kody kreskowe, pomieszczenia magazynowe, etykiety i strukturę gotową do produkcji
Skonfigurować kontrolę obecności i dyscyplinę operacyjną: biuro miało trackować czas pracy w Odoo, a magazyn i produkcja pracować przez skanowanie kodów kreskowych
Zbudować automatyzację poczty i CRM: AI routing, kwalifikację leadów, reguły deterministyczne, follow-upy i sales draft flow
Przygotować e-commerce, portal B2B/B2C, integracje Shopify / Allegro / delivery oraz tracking layer
Zreintegrować uporządkowany katalog, logikę magazynową i dane produktowe z marketplace'ami oraz sklepem internetowym

🔹 4. Rozwiązanie I Przebieg Prac

Infrastructure & Odoo 19 Migration

Przeprowadzono audyt starego środowiska Hetzner i folderu modułów Odoo
ERP przeniesiono na Odoo.sh / Odoo Cloud, a bazę zaktualizowano do Odoo 19
Dostosowano kod customowy i zapytania ORM do nowej wersji core
Przeniesiono i dostosowano zestaw kluczowych modułów customowych i zewnętrznych dla telefonii, HR, zakupów, procesów wewnętrznych i rozszerzeń serwisowych Odoo
Niekompatybilne moduły telefoniczne i OCA usunięto z docelowej architektury, żeby nowa instalacja Odoo 19 nie odziedziczyła zbędnego długu technicznego

Product Catalog Recovery

Przeprowadzono audyt aktualnego stanu katalogu: produkty, warianty, opakowania, zestawy, surowce, SKU, EAN, zdjęcia, ceny, wymiary i mapping BaseLinker były pomieszane bez jednej spójnej logiki
Na podstawie analizy technicznej i data-driven research przygotowano kilka wariantów przebudowy katalogu, wraz z ryzykami i skutkami dla magazynu, marketplace'ów, e-commerce i produkcji
Po zatwierdzeniu modelu stworzono naming convention dla wszystkiego, co może mieć nazwę: produktów, szablonów, wariantów, opakowań, zestawów, surowców, SKU, logiki EAN, zdjęć i atrybutów
Katalog przebudowano z chaotycznej masy rekordów w kontrolowaną hierarchię product template → product variant, gdzie każdy sellable SKU miał jasną rolę, nazwę, opakowanie, EAN, wagę, wymiary i połączenie z BaseLinkerem
Nazwy produktów zostały przepisane nie tylko pod logikę księgowo-magazynową, ale też pod zachowanie klientów w wyszukiwarce: data-driven research pomógł dopasować nazwy i metadane do realnych zapytań, co wsparło wzrost sprzedaży po aktualizacji sklepu i marketplace'ów
Bałagan po importach rozebrano w kontekście: wykryto falę 719 źle utworzonych produktów/szablonów, oddzielono rekordy faktycznie używane w sprzedaży lub magazynie, a niewykorzystany szum bezpiecznie zarchiwizowano bez utraty danych operacyjnych
Efektem był katalog, który da się utrzymywać: SKU, nazwy, atrybuty, zdjęcia, metadane, mapping BaseLinker i logika magazynowa przestały ze sobą kolidować i stały się stabilną bazą synchronizacji sklepu oraz marketplace'ów

Warehouse, BoM & Barcode Logic

Surowce przeniesiono do struktury RAW
Utworzono BoM dla gotowych produktów i zestawów
Stany magazynowe powiązano z konkretnymi pomieszczeniami magazynowymi
Naprawiono druk etykiet po migracji do Odoo 19: raporty przeniesiono na poziom product.product, poprawiono szablony QWeb, nazwy plików druku, barcode fields i variant attributes
Wykryto i odizolowano 11 konfliktów EAN, a 8 potwierdzonych par EAN przeniesiono przez pipeline backup / plan / rollback / verify

CRM, Contacts & Database Hygiene

Usunięto 1380 duplikatów kontaktów, 34 rekordy testowe i 59 pustych kart
Znormalizowano IBAN, BIC/SWIFT i adresy banków dla 10 banków
Ustandaryzowano województwa i lokalizację dla 11 języków
Przygotowano cold leads i customowe listy do lead generation, CRM outreach oraz dalszego sales enrichment
Usunięto szum CRM z automatycznie tworzonych leadów: wiadomości od istniejących kontaktów miały trafiać do historii komunikacji tego kontaktu, a nie tworzyć nową kartę leada za każdym razem

Mail Routing, AI Qualification & Sales Automation

Zaprojektowano i wdrożono MelonRing AISMR — moduł Odoo do inbound email routing, AI qualification, reguł deterministycznych i audit trail
Skonfigurowano logikę routingu: nowe zapytania biznesowe tworzą crm.lead z kategorią, odpowiedzialnym, tagami, priorytetem i summary, a maile od istniejących kontaktów są podpinane do istniejącego rekordu i nie mnożą duplikatów leadów
Wdrożono reguły Poka-yoke przeciw masowym wysyłkom bezpośrednio przez lokalny SMTP
Zamknięto historyczny wyciek przez mail.followers: wyczyszczono błędne subskrypcje, zablokowano dodawanie zewnętrznych kontaktów do wrażliwych obiektów wewnętrznych i przeniesiono tę zasadę do jawnego zachowania systemu
Przeprowadzono rewizję scheduled actions / cron jobs: usunięto zbędne lub nieświadomie aktywne zadania tła, które dublowały standardową logikę, przeliczały dane albo tworzyły nieprzewidywalne obciążenie bez właściciela biznesowego
Infrastrukturę pocztową przeniesiono na SendGrid, zweryfikowano SPF/DKIM i obniżono bounce rate z ~15% do poniżej 1%
Zbudowano sales automation layer: qualification states, draft-input snapshots, partner/product/qty/pricing candidates oraz manager review przed quotation generation

E-commerce & Integrations

Skonfigurowano Shopify sync, trasy magazynowe, lokacje tranzytowe i automatyczną konwersję zamówień
Technicznie przygotowano integracje FedEx PL, DHL i InPost do obliczania dostawy i generowania etykiet
Przygotowano Odoo E-commerce i portal B2B jako alternatywę dla Shopify
Dodano customowy Odoo theme layer i MelonRing Meta Pixel tracking dla Odoo Website Sale
Przygotowano Allegro Odoo Sync do importu zamówień przez Allegro REST API
Po normalizacji produktów, surowców, SKU, EAN, zdjęć, wagi i wymiarów zaktualizowane dane zreintegrowano z marketplace'ami i sklepem internetowym

🔹 5. Stack Techniczny

ERP Core: Odoo 19, Odoo.sh / Odoo Cloud, Python, XML/QWeb, ORM
Data & Integration: XML-RPC, BaseLinker API, Shopify integration, Allegro REST API, CSV pipelines
CRM & AI: Odoo CRM, mail.thread, crm.lead, OpenAI-style AI qualification architecture, deterministic rule engine
Sales & E-commerce: Odoo Sales, Website Sale, B2B/B2C portal, quotation draft workflow, Meta Pixel
Warehouse & Manufacturing: Inventory, Barcode, MRP, BoM, product.product, product.template, product dimensions, label reports
Communication: Zadarma PBX, SendGrid SMTP, IMAP/SMTP routing, SPF/DKIM, mail followers cleanup

🔹 6. Wyniki I Wartość Dla Biznesu

ERP ustabilizowane po migracji: Odoo przeniesiono z Hetznera na Odoo.sh, zaktualizowano do Odoo 19 i oczyszczono z niekompatybilnych modułów
Operacje spięte w jeden przepływ: właściciel dostał techniczną bazę łączącą działy, pracowników, magazyn, produkcję, sprzedaż, CRM, pocztę i integracje w jeden system — od surowca do sprzedaży gotowego produktu
Katalog stał się zarządzalny: około 400 szablonów i wariantów przeniesiono do czystej hierarchii, a BaseLinker/Odoo SKU mapping stał się kontrolowany, bez ślepego importu
Zaktualizowane dane wróciły do sprzedaży: znormalizowany katalog, logika magazynowa, zdjęcia, SKU, EAN, waga i wymiary zostały zreintegrowane z marketplace'ami oraz sklepem internetowym
Baza została oczyszczona: usunięto 1380 duplikatów kontaktów, 34 rekordy testowe i 59 pustych kart, a dane i regiony znormalizowano
Magazyn dostał podstawę automatyzacji: BoM, surowce RAW, kody kreskowe, pomieszczenia magazynowe i etykiety przeniesiono do stabilniejszego modelu
Reputacja pocztowa została zabezpieczona: SendGrid + SPF/DKIM obniżyły bounce rate z ~15% do poniżej 1%
CRM dostał warstwę automatyzacji: inbound email routing, AI qualification, follow-up automation i sales draft flow z manager review
Ryzyka operacyjne zostały obniżone: znaleziono i zamknięto historyczny wyciek przez Followers, zablokowano ryzykowne masowe wysyłki, wyczyszczono zbędne scheduled actions / cron jobs i usunięto krytyczne błędy QWeb/PBX/Owl 2 po migracji

🔹 7. Status

Launched / Technically Ready. System jest technicznie ustabilizowany, a kluczowe moduły i integracje przygotowane. Część efektu biznesowego zależy od wdrożenia reguł po stronie zespołu: pracy w CRM, skanowania magazynu, testów usług kurierskich i dyscypliny pracy w Odoo zamiast powrotu do ręcznych procesów

Masz podobny problem do rozbrojenia?

Niezawodne systemy nie powstają z gadania. Porozmawiajmy, jak precyzyjna inżynieria może przywrócić tempo twojemu produktowi