Nocny import nie kończy się do rana
Brak porównania różnic — proces wysyła cały katalog zamiast zmienionych rekordów. Rozwiązaniem jest diff i kolejka, nie mocniejszy serwer.
W Magento atrybut produktu nie jest kolumną w tabeli, tylko osobnym rekordem. Aktualizacja trzydziestu pól dla dużego katalogu to setki tysięcy operacji. Integracja z ERP musi więc pisać rzadziej, mądrzej i w paczkach — a ceny B2B przekazywać w formie, którą Magento potrafi policzyć w koszyku.
Ta tabela decyduje o harmonogramie integracji. Operacje z prawej kolumny planujemy w oknie nocnym albo dzielimy na etapy.
| Operacja | Mechanizm | Koszt przy dużym katalogu | Jak to prowadzimy |
|---|---|---|---|
| Aktualizacja stanu | source items | niski | na bieżąco, tylko różnice |
| Aktualizacja ceny bazowej | atrybut price | niski | na bieżąco, tylko różnice |
| Ceny per grupa klientów | tier price | średni | paczki, poza szczytem |
| Masowa zmiana atrybutów | EAV, wiele tabel | wysoki | kolejka, okno nocne, etapami |
| Zmiana struktury kategorii | reindeks katalogu | wysoki | staging, potem wdrożenie planowane |
| Eksport zamówienia | order API | niski | na zdarzenie, z idempotencją |
Od tej decyzji zależy, co partner zobaczy po zalogowaniu i czy koszyk policzy to samo, co faktura z ERP. Obie drogi są poprawne, ale nie można ich mieszać.
Brak porównania różnic — proces wysyła cały katalog zamiast zmienionych rekordów. Rozwiązaniem jest diff i kolejka, nie mocniejszy serwer.
Kontrahent nie ma przypisanej grupy klientów albo cennik nie dojechał. Bez reguły blokującej sklep pokazuje cenę domyślną.
Consumer nie działa albo przetwarza wolniej, niż przybywa zadań. Bez monitoringu kolejki objaw widać dopiero po dniach opóźnienia.
Sklep liczy rabat, ERP też. Kolejność reguł jest inna, więc kwoty różnią się o grosze — i księgowość zgłasza to co tydzień.
Ponowienie po timeoucie bez klucza idempotencji tworzy drugi dokument. Zawsze zapisujemy, że pozycja została już przekazana.
Brak atrybutu w Magento zatrzymuje cały import zamiast pominąć jedno pole. Walidacja powinna zgłosić wyjątek, nie przerwać przelot.
Trzy liczby wystarczą, żeby ocenić, czy wystarczy nocny batch, czy potrzebna jest kolejka i warstwa pośrednia.