Wysyłka stanów na marketplace
Najszybszy potok w systemie — kolejka rusza co kilka sekund. Ma za to najwięcej warunków, które muszą być spełnione, żeby produkt w ogóle do niej trafił.
Zmiana stanu magazynowego trafia do kolejki wysyłki stanów, a ta jest przetwarzana co kilka sekund. To najkrótszy takt w całym systemie.
Jak liczony jest wysyłany stan
Stan z powiązanego magazynu jest porównywany z minimalnym stanem: powyżej progu jedzie w całości, na progu albo poniżej — jako zero. Wynik przechodzi jeszcze przez reguły wykluczeń dla pary produkt–kanał (Wykluczenia ofert — reguły stanu per produkt i kanał).
Dlatego liczba na marketplace prawie nigdy nie równa się dokładnie stanowi w magazynie — i tak ma być.
Warunki wejścia do kolejki
Produkt musi przejść wszystkie:
- połączenie aktywne,
- wysyłka stanów włączona — a że wymaga ona włączonego pobierania ofert, muszą być włączone oba przełączniki (Wyłączniki, które zatrzymują cały kanał),
- istnieje aktywne mapowanie magazynu z włączoną synchronizacją stanu,
- produkt ma powiązaną, aktywną ofertę — o ile kanał tego wymaga,
- produkt nie jest wykluczony dla tego kanału.
Niespełnienie któregokolwiek oznacza, że produkt nie trafia do kolejki wcale. Nie zobaczysz odrzuconego wpisu — nie będzie żadnego (Wyłączniki, które zatrzymują cały kanał).
Stany pozycji w kolejce
Stany widać w Konsola synchronizacji — gdzie zobaczyć, co się dzieje. Nazwy poniżej to dokładnie te, które stoją na ekranie:
| Stan na ekranie | Znaczenie |
|---|---|
| Oczekuje | Czeka na wysyłkę |
| W realizacji | Właśnie wysyłana |
| Wysłana | Marketplace przyjął |
| Nieudane | Nieudana, będzie ponowiona |
| Nieudane na stałe | Wyczerpane próby |
| Pominięte | Świadomie odpuszczona |
Nieudane pozycje są ponawiane z narastającym odstępem, a pozycje, które utknęły w stanie W realizacji, są cyklicznie odblokowywane. Pojedynczy błąd nie wymaga twojej reakcji — dopiero Nieudane na stałe oznacza, że trzeba spojrzeć.
Pozycje mają też priorytet: ruch po sprzedaży jedzie przed rutynowym odświeżeniem.
Pułapka bliźniaczej oferty
Oferta zakończona lub zablokowana, dzieląca klucz z ofertą żywą, potrafi zablokować wpis tej żywej — aż do trwałego odrzucenia albo wyczyszczenia po kilku dniach.
Objaw: jeden produkt nie aktualizuje stanu, reszta kanału działa bez zarzutu (Oferta marketplace — lustro listingu u nas).
Kaufland: kilka rynków na jednym połączeniu
Jedno połączenie Kauflanda może obsługiwać kilka rynków (DE, CZ, SK, PL, AT, FR, IT). Stan i cena idą osobno na każdy rynek, na którym oferta jest wystawiona:
- produkt oznaczony jako niedostępny w danym kraju dostaje na tym rynku zero, a kraj wyłączony z minimalnego stanu — stan bez progu;
- oferta, z której nie da się odczytać rynku, jest na połączeniu z kilkoma rynkami pomijana (pozycja w kolejce kończy się jako pominięta), zamiast trafić na rynek zgadnięty — ten sam identyfikator oferty może na innym rynku należeć do innej oferty. Przy jednym rynku idzie na ten rynek;
- cena w innej walucie niż waluta rynku (np. PLN na rynek niemiecki) jest odrzucana — Kaufland przyjąłby samą liczbę jako euro;
- oferta, której Kaufland już nie ma (404), jest oznaczana jako zakończona i wypada z wysyłki;
- na rynek odznaczony na połączeniu nic nie jest wysyłane, nawet jeśli oferta tam istnieje;
- połączenie bez wybranego rynku niczego nie wysyła, a test połączenia to zgłasza;
- limit zapytań po stronie Kauflanda (429) i chwilowa niedostępność (503) nie zjadają prób: partia jest odkładana i ponawiana;
- gdy Kaufland odrzuci dane dostępowe (401), wysyłka partii zatrzymuje się na tej ofercie, zamiast zbierać ten sam błąd po kolei. Pozostałe pozycje kończą się błędem „nie wysłano” i są ponawiane jak każdy inny błąd — każda zużywa przy tym jedną próbę.
OTTO: stany i ceny
- Stany idą na OTTO paczkami do 150 produktów w jednym zapytaniu. Jeśli OTTO odrzuci paczkę z powodu jednego złego produktu, system dzieli ją i wysyła dalej — błąd dostaje tylko ten jeden produkt, a nie cała paczka. Gdy OTTO odrzuca całe zapytanie niezależnie od produktów, cała paczka dostaje błąd do ponowienia — bez rozbijania jej na setki pojedynczych zapytań.
- Pozycja w kolejce bez czytelnej ilości kończy się błędem tylko dla siebie.
- Limit zapytań OTTO (429), awaria po ich stronie (5xx) i brak odpowiedzi nie zjadają prób: partia jest odkładana i ponawiana, a przy 429 cały kanał czeka tyle, ile OTTO każe.
- Zmiana ceny regularnej nie kasuje trwającej promocji. OTTO przyjmuje zawsze cały rekord ceny, więc system najpierw odczytuje trwającą promocję i wysyła ją razem z nową ceną. Gdy promocji nie da się odczytać (albo jej kwota jest nieczytelna), zmiana ceny jest wstrzymywana i ponawiana, zamiast skasować promocję po cichu. Produkt, którego OTTO w ogóle nie zwraca, dostaje samą cenę. Promocję kończy tylko jawne jej zdjęcie — albo obniżka ceny regularnej do poziomu promocji lub niżej: wtedy promocja traci sens i OTTO by jej nie przyjęło, więc idzie sama nowa cena.
- Odczyt pojedynczej oferty (np. przy sprawdzaniu ceny) nie zeruje zapisanego stanu tej oferty.
Historia
Stara zawartość kolejki jest archiwizowana, a archiwa da się przeszukiwać (Konsola synchronizacji — gdzie zobaczyć, co się dzieje). Wpis sprzed miesięcy nie zniknął — jest w archiwum.
Chcesz zobaczyć to na swoich zamówieniach? Pokażemy NOXTI na Twoich kanałach sprzedaży i Twoim magazynie.
Umów prezentację