Podczas jednego z wdrożeń Odoo u firmy produkcyjnej z branży opakowań księgowość miała zostać w Comarch ERP Optima. Sprzedaż, zakupy, magazyn i produkcja przeszły do Odoo. Pojawiło się pytanie, jak sprawić, żeby dwa systemy nie wymagały dwóch kompletów ręcznej pracy.
Bez integracji każdy dokument trzeba by wprowadzać dwa razy: faktury sprzedaży z korektami, faktury zakupu, dokumenty magazynowe. Do tego dochodzi pilnowanie, czy kartoteki kontrahentów i towarów w obu systemach są takie same. Każde przepisanie to ryzyko pomyłki w stawce VAT, walucie albo numerze dokumentu.
Optima nie ma publicznego REST API. Do wyboru są gotowe nakładki firm trzecich, wymiana plikami XML albo własny łącznik. W tym projekcie wybraliśmy ostatnią drogę, bo klient potrzebował przesyłać dane w obie strony i obsłużyć dokumenty, których gotowe narzędzia nie obejmowały w całości.
Zbudowaliśmy pośrednika, który działa przy serwerze Optimy i korzysta z jej natywnych mechanizmów. Dzięki temu każdy dokument przechodzi przez reguły Optimy, nie omija ich. Po zatwierdzeniu w Odoo faktura sprzedaży, dokument magazynowy lub zapis księgowy trafia do kolejki. Stamtąd zostaje przekazany do Optimy razem ze split payment, kodami GTU i kursem waluty. Brakujący kontrahent albo towar zakłada się przy okazji. Wynik wraca do Odoo: dokument dostaje identyfikator z Optimy, a status płatności faktury aktualizuje się sam. Jeśli wystąpi błąd, zespół od razu widzi komunikat na dedykowanym kanale w Odoo.
Efekt? Jedno wprowadzenie dokumentu zamiast dwóch, spójne kartoteki w obu systemach i księgowość, która widzi te same dane co sprzedaż.
Ten przykład pokazuje, że integracja z Optimą nie ma jednej słusznej formy. O wyborze między gotowym API, plikami XML a własnym łącznikiem decyduje zakres wymienianych danych i to, czy mają płynąć w jedną stronę, czy w obie.