Warunki — wszystkie muszą być spełnione
Warunki na liście łączą się przez I. LUB robi się jednym warunkiem-grupą „którykolwiek z poniższych”, który w środku trzyma alternatywy.
Lista warunków to I — LUB robi się grupą
Warunki wypisane jeden pod drugim łączą się przez I. Wszystkie muszą być spełnione.
Sprawdzanie zatrzymuje się na pierwszym niespełnionym warunku.
Jak zrobić alternatywę
Trzy sposoby, od najprostszego:
- Operator „jest jednym z" w obrębie jednego warunku — obsługuje „status to A albo B albo C". Wystarcza, gdy alternatywy dotyczą tego samego pola.
- Warunek „Którykolwiek z poniższych" — grupa, w której wypisujesz kilka różnych warunków; reguła idzie dalej, gdy spełniony jest co najmniej jeden z nich. To jest LUB.
- Dwie reguły z tym samym zdarzeniem i tymi samymi akcjami — dziś potrzebne już tylko wtedy, gdy alternatywy mają wykonywać różne akcje.
Warunek-grupa „Którykolwiek z poniższych"
Wybierasz go z listy warunków jak każdy inny. W polu wartości pojawia się mała lista, do której dodajesz kolejne alternatywy przyciskiem Dodaj alternatywę — każda z nich to zwykły wiersz warunku: własny warunek, własny operator, własne NIE.
- Pusta grupa nie spełnia się nigdy — połowicznie zbudowana grupa nie przepuści reguły „na wszystko".
- Przełącznik NIE na samej grupie czyta się jako „żaden z poniższych".
- Alternatywy nie zagnieżdżają się: grupa w grupie nie jest oferowana w wyborze i zostaje pominięta, gdyby ktoś taki wiersz wpisał z zewnątrz.
- Alternatywa, której nie da się sprawdzić (usunięty warunek, dziwna wartość), liczy się jak niespełniona — reszta alternatyw odpowiada dalej.
Grupa jest dostępna przy każdej rodzinie wyzwalaczy — zamówieniach, zwrotach, dokumentach, produktach.
Co da się sprawdzić
Kilkadziesiąt warunków, pogrupowanych:
| Grupa | Przykłady |
|---|---|
| Zamówienie | wartość, wartość produktów, koszt wysyłki, metoda płatności, opłacone, waluta |
| Czas | bieżąca godzina, dzień tygodnia |
| Produkty zamówienia | magazyn realizacji pozycji — wszystkie albo dowolna |
| Złożone | produkt w zamówieniu, adres i klient — z własnymi edytorami |
| Możliwości integracji | czy kanał obsługuje status zewnętrzny, traking, fakturę, dokumenty |
| Zwroty | decyzje oceny pozycji, klasy, listy dozwolonych, nadmiar i pozycje spoza zamówienia, niedostarczona przesyłka, zamówienie zwrotu opłacone, status zamówienia zwrotu |
| Dokumenty | typ, status |
| Inwentaryzacja | wyniki skanu |
| Katalog | stany, ceny, atrybuty |
| Kurier | statusy przesyłki |
| Dostawa / Przesyłki | m.in. wszystkie pozycje zamówienia wysłane |
Warunki na możliwości integracji są niedoceniane — chronią przed regułą, która na jednym kanale działa, a na drugim generuje zgłoszenia o błędach akcji.
Magazyn realizacji pozycji
Zamówienie nie ma jednego magazynu — magazyn realizacji siedzi na każdej pozycji z osobna (to samo pole, które widzisz na karcie zamówienia i które decyduje, do której kolejki kompletacji trafia pozycja). Dlatego są dwa warunki:
- Wszystkie produkty z magazynu — spełniony, gdy każda pozycja idzie ze wskazanego magazynu. To bramka dla reguł przypiętych do jednej lokalizacji: jej kurier, jej dokumenty.
- Dowolny produkt z magazynu — spełniony, gdy choć jedna pozycja idzie ze wskazanego magazynu, nawet jeśli reszta zamówienia jedzie skądinąd. Tym adresuje się rozbite zamówienie do obsługi jednej lokalizacji.
Oba mają operator jest jednym z, więc jedna reguła obsługuje kilka magazynów naraz („wszystko z magazynów, które dziś kompletujemy").
Przeczenia „nie wszystko stąd" nie ma na liście operatorów — robi się je przełącznikiem NIE na warunku „Wszystkie produkty z magazynu".
Wszystkie pozycje zamówienia wysłane
Warunek Ma numer przesyłki jest spełniony, gdy choć jedna przesyłka zamówienia ma numer. Przy zamówieniu, które wyjeżdża w kilku przesyłkach — np. część z twojego magazynu, część od hurtowni (Hurtownia — towar, który wysyła za ciebie ktoś inny) — to za wcześnie, żeby uznać je za wysłane.
Wszystkie pozycje zamówienia wysłane (tak/nie) jest spełniony dopiero wtedy, gdy każda pozycja zamówienia w całej ilości leży w paczkach, które mają numer przesyłki — w twoich i w tych, które hurtownia wysłała za ciebie. Twoje pozycje liczą się według tego, co przy pakowaniu włożono do każdego pudła. Pudło spakowane, ale jeszcze bez numeru przesyłki, nie wyjechało — jego pozycje czekają.
- Przesyłka, którą hurtownia wysłała sama i podała jej numer listu (np. Halmar), liczy się za wszystkie pozycje z magazynu tej hurtowni — także gdy przy liście nie wymieniła wszystkich produktów albo któregoś nie rozpoznaliśmy.
- Inna przesyłka z numerem, której paczki nie mają przypisanych żadnych pozycji (np. stare przesyłki), liczy się za swoje pozycje: przesyłka twojego kuriera z magazynu hurtowni — za pozycje z tego magazynu, twoja — za pozycje z twojego magazynu.
- Pozycji z magazynu wirtualnego warunek nie czeka — nie wyjeżdżają w paczce.
- Zamówienie bez pozycji albo bez przesyłki wychodzącej nie spełnia warunku.
Typowe użycie: zdarzenie Utworzono przesyłkę, warunek Wszystkie pozycje zamówienia wysłane, akcja Zmień status na status wysłanych.
Warunki złożone: „Produkt w zamówieniu" i „Adres i klient"
Dwa warunki mają własny edytor zamiast zwykłego pola wartości, bo pytają o atrybut, a nie o jedno konkretne pole:
- Produkt w zamówieniu — SKU, EAN, nazwa, produkt, kategoria, katalog, klasa ABC.
- Adres i klient — miasto, ulica, kod pocztowy, województwo, firma, NIP, e-mail, telefon, osoba, nazwa i miasto punktu odbioru.
Wypełniasz je w trzech krokach: Dopasuj po (który atrybut), Porównanie, Wartość. Operator nad edytorem zostaje przy „jest prawdą" — całe porównanie siedzi w środku.
Porównania: jest, jest jednym z, zawiera, zaczyna się od.
„Jest jednym z" przyjmuje listę wartości — pole zmienia się w listę chipów (wpisz i Enter) albo w wybór wielokrotny, gdy atrybut ma słownik. Jedna reguła zamiast pięciu wierszy w grupie „którykolwiek z poniższych": „NIP jest jednym z <lista firm B2B>", „SKU jest jednym z <lista promocyjna>", „miasto jest jednym z <lista aglomeracji>".
Kilka rzeczy, które warto wiedzieć:
- Porównanie jest niewrażliwe na wielkość liter — także na liście.
- W warunku „Adres i klient” dane kupującego porównuje się tak jak w wyszukiwarce i w zapisanych filtrach: bez polskich znaków i akcentów („Łódź” = „Lodz”), kod pocztowy bez myślnika i spacji („00-950” = „00950”), telefon w dowolnym zapisie, z kierunkowym albo bez („+48 600 700 800” = „600 700 800”). Reguła i zapisany filtr dają więc tę samą odpowiedź dla tego samego zamówienia.
- Puste wpisy z listy są pomijane, a pusta lista nie spełnia się nigdy. Warunek do połowy wypełniony nigdy nie przepuszcza reguły „na wszystko".
- Atrybuty, które są identyfikatorami (produkt, kategoria, katalog), mają tylko „jest" i „jest jednym z" — „zawiera 12" pasowałoby do 12, 120 i 512.
- Niektóre atrybuty czyta się z dwóch stron naraz: NIP i telefon mogą przyjść na adresie albo na kliencie, SKU i EAN — z pozycji zamówienia albo z dopasowanego produktu z katalogu. Lista wartości sprawdza obie strony.
- Przeczenia („zamówienie nie zawiera SKU X") nie ma wśród porównań — robi się je przełącznikiem NIE na warunku.
Niedostarczona przesyłka (zwroty)
Warunek Niedostarczona przesyłka jest spełniony, gdy zwrot to paczka wysłana do klienta, której kurier nie doręczył — odmowa przyjęcia, nieodebrana w terminie, zwrot do nadawcy — i która wróciła na magazyn. Klient nigdy nie miał towaru, więc taki zwrot zwykle trzeba obsłużyć inaczej niż zwrot od klienta. System rozpoznaje go na dwa sposoby, wystarczy jeden:
- zwrot jest powiązany z zapowiedzią, którą system zakłada dla nieudanego doręczenia (widać ją wśród przesyłek w drodze);
- ostatni status kuriera dla paczki wysłanej do klienta to Doręczenie nieudane.
Zamówienie zwrotu: opłacone i status (zwroty)
Reguła wyzwalana zwrotem (Zdarzenia — od czego reguła się zaczyna) ma do wyboru tylko warunki z grupy zwrotów. Dwa z nich pytają o zamówienie, z którego pochodzi zwrot:
- Zamówienie ze zwrotu: opłacone — czy zamówienie jest opłacone: oznaczone jako opłacone albo za pobraniem, które kurier pobrał (jedna z paczek wysłanych do klienta ma status doręczonej). Pobranie odmówione, nieodebrane albo jeszcze w drodze jest nieopłacone. Warunek zamówienia Opłacone czyta samo oznaczenie, którego importy przy pobraniu nie ustawiają — dla zamówienia za pobraniem oba warunki mogą więc odpowiedzieć różnie. To, co odpowiada ten warunek, pokazuje też chip Opłacone / Nieopłacone w nagłówku zwrotu.
- Zamówienie ze zwrotu: status — status wewnętrzny zamówienia, wybierany z tej samej listy statusów zamówień co w warunku Status wewnętrzny. Operatory: jest i jest jednym z.
Przykład: Utworzono zwrot + Niedostarczona przesyłka + Zamówienie ze zwrotu: opłacone → zwrot do weryfikacji BOK, która zdecyduje o zwrocie pieniędzy albo ponownej wysyłce.
Operatory
Zależą od typu porównywanej wartości:
| Typ | Operatory |
|---|---|
| Liczba | jest mniejsze niż, jest co najwyżej, jest większe niż, jest co najmniej, jest, jest puste/zerowe, jest większe od zera, jest mniejsze od zera, jest jednym z |
| Tekst | zawiera, zaczyna się od, kończy się na, nie jest puste, jest, jest jednym z |
| Data | jest przed, jest w dniu lub przed, jest po, jest w dniu lub po, jest w tej samej minucie co, jest starsze niż, jest nowsze niż, jest, jest jednym z |
| Tak/nie | jest prawdą, jest fałszem |
| Identyfikator | jest, jest jednym z |
Przy warunkach na statusy kurierskie operator działa w trybie „którykolwiek z zapisanych statusów spełnia".
Czas względny: „starsze niż" / „nowsze niż"
Data porównywana z konkretnym dniem starzeje się razem z regułą — „zamówione przed 1 marca" za pół roku znaczy coś zupełnie innego niż w dniu zapisu. Dlatego każdy warunek datowy przyjmuje też okno względne:
- wybierasz operator jest starsze niż albo jest nowsze niż,
- zamiast kalendarza pojawiają się dwa pola: ile i jednostka (minuty, godziny, dni). Dłuższe okresy zapisz w dniach — „starsze niż 30 dni".
„Zamówione starsze niż 3 dni" znaczy to samo w każdy dzień roku. „Nowsze niż" liczy okno kończące się TERAZ, więc data w przyszłości (planowana wysyłka) do niego nie należy. Niedokończone okno (sama liczba bez jednostki) jest błędem konfiguracji — warunek nie przechodzi, także z „NIE".
Ile czasu obiekt stoi w statusie
Warunek Godzin w bieżącym statusie podaje pełne godziny od wejścia zamówienia w status, w którym stoi teraz. Zamówienie, które nigdy nie zmieniło statusu, liczy się od utworzenia.
Najczęściej używa się go z wyzwalaczem Zamówienie utknęło w statusie (Zdarzenia — od czego reguła się zaczyna), ale działa pod każdym wyzwalaczem zamówieniowym — także w teście reguły.
Negacja
Każdy wiersz ma osobny przełącznik NIE, stosowany na końcu.
Lista operatorów ukrywa wersję przeczącą, gdy istnieje twierdząca — dzięki temu nie da się zbudować podwójnej negacji typu „NIE (jest różne od)", która czyta się nieczytelnie, a znaczy to samo co „jest równe".
Błąd warunku liczy się jako niespełniony
Jeżeli warunku nie da się sprawdzić — brak danych, nieoczekiwana wartość — traktowany jest jak niespełniony, a reguła się nie wykonuje. Bezpieczniej nie zrobić nic niż zrobić coś na ślepo.
W historii wykonań zobaczysz wtedy wynik warunki niespełnione (Historia wykonań — co się naprawdę stało).
Warunki są sprawdzane ponownie po oczekiwaniu
Reguła z opóźnieniem sprawdza warunki jeszcze raz po odczekaniu. Jeśli sytuacja się w tym czasie zmieniła, reguła może się nie wykonać mimo poprawnego startu — i tak ma być (Jak reguła się wykonuje — kolejka, ponowienia, oczekiwanie).
Chcesz zobaczyć to na swoich zamówieniach? Pokażemy NOXTI na Twoich kanałach sprzedaży i Twoim magazynie.
Umów prezentację