Punkt wyjścia
Odpytywanie ERP prosto ze sklepu było zbyt ryzykowne
Źródłem danych o magazynie, zamówieniach i dostawach jest Comarch XL, system o bardzo rozbudowanej strukturze tabel. Sklep na Magento 2 potrzebuje tych danych na bieżąco, ale połączenie go wprost z bazą ERP niosło dwa problemy. Kod sklepu musiałby znać wnętrze Comarch XL i zmieniać się razem z nim. Ruch klientów przekładałby się natomiast bezpośrednio na zapytania do bazy ERP, obciążałby ją i blokował na niej tabele, z których korzysta cała firma. Potrzebne było rozwiązanie, które połączy oba systemy i jednocześnie odgrodzi bazę ERP od sklepu.
Co zrobiliśmy
Osobna szyna danych, która bierze na siebie złożoność ERP
Zbudowaliśmy na Symfony szynę danych, przez którą przechodzi cała wymiana między sklepem a ERP. Tylko ona zna strukturę Comarch XL.
- 1
Warstwa pośrednia między sklepem a ERP
Szyna stoi pomiędzy Magento 2 a Comarch XL i bierze na siebie całą złożoność tabel ERP. Sklep rozmawia z nią przez REST API i nie musi wiedzieć, jak dane są zapisane w Comarch XL. Szyna odciąża też bazę ERP, bo ruch klientów sklepu nigdy nie trafia do niej bezpośrednio.
- 2
Zamówienia ze sklepu do ERP
Zamówienia złożone w Magento 2 płyną przez szynę do Comarch XL. Sklep nie zapisuje niczego w bazie ERP samodzielnie, przekazuje zamówienie szynie, a ta wie, jak zapisać je w strukturze Comarch XL. Kod sklepu pozostaje przez to niezależny od tego, jak zbudowane są tabele ERP.
- 3
Statusy, wysyłki i faktury z powrotem do sklepu
W drugą stronę szyna przesyła do Magento 2 statusy zamówień, dane wysyłek i faktury. Z faktur generujemy PDF-y, które trafiają do klientów. Klient widzi w sklepie aktualny stan swojego zamówienia, choć źródłem tych informacji pozostaje Comarch XL, a sklep dostaje je gotowe od szyny.
- 4
Katalog z cenami i stanami tą samą drogą
Tą samą szyną do sklepu trafia katalog z cenami i stanami magazynowymi. Dzięki temu cała wymiana danych między sklepem a ERP ma jedną drogę. Sklep pokazuje ceny i dostępność z Comarch XL, ale nie odpytuje go za każdym razem, gdy klient otwiera stronę produktu.
Efekt
Sklep ma dane z ERP, a baza ERP nie odczuwa ruchu
Magento 2 i Comarch XL wymieniają dane w obie strony: zamówienia płyną do ERP, a statusy, wysyłki, faktury, ceny i stany wracają do sklepu. Cała ta wymiana idzie przez szynę danych, więc sklep nigdy nie odpytuje Comarch XL bezpośrednio, a ruch klientów nie obciąża bazy ERP i nie blokuje jej tabel. Kod sklepu nie zależy od wnętrza ERP, bo strukturę Comarch XL zna tylko szyna.
- Dwustronna wymiana zamówień, statusów i faktur
- Faktury w PDF generowane dla klientów
- Zero blokad na bazie Comarch XL