Integracja sklepu z enova365 - REST API, moduły, praktyka
enova365 (Soneta) jest najmłodszym wiekiem z popularnych polskich ERP-ów i to widać w API. REST z OAuth2, sensowna dokumentacja, modułowa architektura - wdrożenie integracji wygląda po prostu inaczej niż przy XL czy GT. Klienci, którzy migrowali z Subiekta na enovę, najczęściej dzielą się tym samym wnioskiem: „szkoda, że dopiero teraz".
Spis treści (9)
W skrócie
- 1. API: REST z OAuth2 (od enova 2017+), dobrze udokumentowane
- 2. Modularność: kupujesz tylko te moduły, które są ci potrzebne (handel, magazyn, kadry, finanse)
- 3. Cenniki: rozbudowane (indywidualne, grupowe, progi ilościowe, promocje)
- 4. Wdrożenie: szybsze o 30-40% wzgl. XL przy podobnym scope
- 5. Limitacje: mniejszy ekosystem konektorów niż Comarch, ale rosnący
Czym jest enova365
ERP od krakowskiej Sonety. Modułowy - handel, magazyn, finanse, kadry, projekty, każdy moduł osobno. Wersja chmurowa (enova365 BIZNES) i on-premise. Aktywnie rozwijany, regularne aktualizacje.
Mocne strony jako baza dla sklepu B2B:
- Czyste REST API z OAuth2
- Solidny model cenowy (porównywalny z XL)
- Aktualne stawki VAT, e-Faktura (KSeF) - wbudowane
- Wsparcie dla pracy w chmurze (mniej problemów infrastrukturalnych)
Słabsze strony:
- Mniejszy rynek wdrożeniowców e-commerce specjalizujących się w enova niż w XL
- Mniej gotowych konektorów do platform e-commerce - częściej custom
REST API enova365
Endpoint base'owy: https://api.enova365.cloud/{tenant}/{wersja}/... (lub on-premise - adres serwera klienta).
Autoryzacja: OAuth2 Client Credentials Flow. Sklep / middleware dostaje client_id + client_secret od klienta enovy, wymienia na token, używa do każdego wywołania.
Format: REST + JSON. Endpointy nazwane po modułach enovy (/Handel/Kontrahenci, /Handel/Towary, /Handel/Dokumenty).
Limity:
- 60 req/min na konto (domyślnie, podniesione w SLA)
- Paginacja po 100/250/500 zależnie od endpointa
- Webhooks - TAK, na zmiany kluczowych encji (zmiana stanu, cennika, dokumentu)
To różnica jakościowa wzgl. GT / XL. Webhooks oznaczają, że nie musisz pollować - enova powiadamia.
Architektura wdrożenia
[Sklep Magento / Shopware]
|
| REST
v
[Middleware - Symfony lub Node.js]
|
+--- REST + OAuth2 do enova365
+--- Redis (cache, kolejki)
+--- Webhooks listener z enovy
Middleware potrzebny dla typowych funkcji (kolejki, cache, idempotencja). Ale prostszy niż dla XL - nie musimy obchodzić timeoutów ani problemów SOAP-u.
Bezpośrednie połączenie sklep ↔ enova ma sens dla małych sklepów (do ~3k SKU). Powyżej - middleware ratuje skórę przy złożonych transformacjach i monitoringu.
Co synchronizujemy i jak
Towary (/Handel/Towary):
- enova → sklep, batch w nocy + delta przez webhook
- Pełna synchronizacja 50k SKU: ~1.5h (znacznie szybciej niż XL)
- Atrybuty filtrowalne - enova ma „cechy" towaru, sensowny model
Kontrahenci (/Handel/Kontrahenci):
- enova → sklep on-demand (po NIP) + okresowe synchro nowych
- Klient B2B rejestruje się w sklepie → middleware sprawdza NIP w enova → tworzy konto lub aktywuje
Ceny (/Handel/Cenniki):
- enova ma osobny endpoint do kalkulacji ceny dla kontrahenta - wykorzystujemy
- Cache 10-15 min, klucz
(kontrahent_id, sku, ilosc) - Webhook na zmianę cennika → invalidacja cache
Stany magazynowe (/Handel/Stany):
- Webhook + delta polling co 2-5 min
- Pull on-demand dla konkretnego SKU
- Cache 30s
Zamówienia (/Handel/Dokumenty/ZK lub bezpośrednio FS):
- Sklep → enova z idempotencyjnym
Symbol(np.WEB-2026-000123) - enova zwraca pełen
Dokumentz numerem nadanym, statusem, kosztem dostawy
Faktury:
- enova generuje, middleware odbiera webhook, pobiera PDF, zapisuje w storage sklepu
- E-Faktura (KSeF) - obsługiwana natywnie w enova, fakturę dostaje klient z KSeF, sklep tylko pokazuje numer
Cenniki w enova - co realnie dostajesz
enova ma rozbudowany silnik cen, porównywalny z XL:
- Cenniki indywidualne (per kontrahent)
- Cenniki grupowe (per grupa)
- Progi ilościowe (
od 100 szt. cena X) - Rabaty stałe i procentowe
- Promocje czasowe
- Cenniki w walutach
- Logika hierarchiczna (najpierw indywidualny, potem grupowy, potem promocyjny - konfigurowalna)
Sklep nie liczy ceny lokalnie. Zawsze pyta enovę.
Limity kredytowe i blokady
enova ma natywne wsparcie dla limitów kredytowych kontrahenta:
- Saldo bieżące (suma niezapłaconych faktur)
- Limit kredytowy (kwota maksymalna)
- Saldo + limit razem decydują o blokadzie
Endpoint /Handel/Kontrahenci/{id}/Saldo zwraca aktualne wartości. Sklep waliduje przed dopuszczeniem do checkoutu z formą „przelew z terminem".
W praktyce robimy walidację dwustopniową:
- Soft check w koszyku (informacja: „uwaga, przekroczysz limit o X zł")
- Hard check przy potwierdzaniu zamówienia (enova zwraca błąd, blokada)
Najczęstsze problemy
1. Wersje enovy - różnice między wydaniami. enova wydaje co kwartał. Aktualizacja u klienta to często okazja do zmiany pól w API. Testy integracyjne przy każdej aktualizacji.
2. Cloud vs. on-premise. Enova w chmurze Sonety ma stałe IP i dostęp. On-premise - często za firewall klienta, wymaga VPN lub IP whitelisting. Ustalanie tego trwa.
3. Webhooki z opóźnieniem. W godzinach szczytu webhook może mieć 30 s opóźnienia. Dla większości scenariuszy ok, dla rezerwacji koszyka - uzupełniamy pull on-demand.
4. Mapowanie kategorii i cech. enova ma model „grupy towarów" i „cechy" - sklep ma kategorie i atrybuty. Mapowanie 1:1 rzadko działa.
5. KSeF i faktury. Od 2026 obligatoryjne KSeF dla B2B. enova obsługuje natywnie, ale sklep musi pokazać klientowi prawidłowo numer KSeF + ewentualnie PDF (wizualizacja).
Koszt i czas
Czas:
- MVP (produkty + ceny + stany): 4-6 tygodni
- Pełna integracja (z zamówieniami, dokumentami, limitami kredytowymi): 10-14 tygodni
- Stabilizacja: 3-5 tygodni
Koszt:
- Wdrożenie: 70-160 tys. zł
- Licencje enova (po stronie klienta) - moduł handlowy + API: zależnie od konfiguracji
- Utrzymanie: 10-25 tys. zł rocznie
Szybciej niż XL, drożej niż Subiekt GT, znacznie taniej niż SAP. Dla większości polskich średnich B2B - najlepszy stosunek do funkcjonalności.
Kiedy enova ma sens nad XL czy GT
Nad GT - gdy:
- Skala rośnie powyżej możliwości GT (>15k SKU + 200+ kontrahentów)
- Potrzebujesz REST + webhooki
- Chcesz chmurową architekturę
Nad XL - gdy:
- Twoja firma startuje od zera (greenfield ERP)
- Cenisz nowoczesny API i krótszy time-to-integration
- Skala 5-80 M zł obrotu (XL od 80 M wzwyż jest mocniejszy)
- Nie potrzebujesz głębokiej customizacji ERP po stronie procesów
Pozostań przy XL gdy:
- Skala > 80 M zł obrotu, dużo customów ERP-owych
- Twój dział księgowości pracował na XL latami
- Wymagasz konkretnych modułów branżowych XL
FAQ
Czy enova365 ma gotowe konektory do Magento i Shopware? Tak, ale mniej dojrzałe niż dla XL. Najczęściej projekty robi się przez 2-3 wyspecjalizowane firmy lub custom przez middleware.
Jak enova radzi sobie z KSeF? Bardzo dobrze. Soneta wcześnie dostosowała się do KSeF, mechanizm wystawiania i odbierania faktur jest wbudowany. Dla sklepu oznacza to: enova robi KSeF, sklep dostaje numer i pokazuje klientowi.
Czy mogę zintegrować enova365 z BaseLinkerem? Tak, BaseLinker ma oficjalny moduł enova. Dla podstawowych przepływów (zamówienia z marketplace'ów, synchronizacja stanów) działa. BaseLinker w sklepie B2B.
Czy enova obsługuje multi-firma (kilka spółek w jednej instalacji)? Tak, ma multi-bazę. Sklep może rozmawiać z jedną lub wieloma bazami enovy (np. spółka PL + spółka DE).
Czy enova ma API dla raportów / BI? Tak, większość encji jest dostępna przez API. Plus enova ma natywne moduły BI (Soneta BI), które można podpiąć do dashboardów.
Co dalej
- Inne ERP-y: Comarch XL, Subiekt GT, SAP
- Architektura integracji: Middleware vs. bezpośrednio
- Platforma sklepu: Shopware 6
- Pełny przegląd integracji: pillar /integracje
O autorze
Jakub Owsianka
Architekt rozwiązania w WiseB2B - silniku platform B2B. Zaczynał po stronie biznesu (własne sklepy), potem deweloper, dziś projektuje wdrożenia dla sklepów z katalogami w dziesiątkach tysięcy SKU. W ostatnich latach wdrożył AI-development w zespole i funkcjonalności oparte o AI bezpośrednio w silniku sklepu.
Czytaj dalej w temacie wydajności
Wszystkie wpisyMasz pytanie do tego artykułu?
Dodatkowy kontekst, problem z własnym wdrożeniem, druga opinia - napisz wprost. Odpowiadam osobiście w 1-2 dni robocze.