Performing operations on numbers

Aby wykonać warunek lub operację z wykorzystaniem liczby w regułach systemu należy w pierwszym kroku zweryfikować czy nasze pole to rzeczywiście pole liczbowe.

Pole liczbowe ma ściśle określony format, tzn. są to znaki numeryczne z separatorem dziesiętnym w formie "." - kropki.

Poniżej klika przykładów błędnych liczb:
10,99
10 000.99
10,000.99
10.99 USD

Poprawa liczba to:
10000.99

Weryfikacji naszych danych możemy dokonać w dwóch miejscach

1) W zakładce "Items" po przejściu na kartę konkretnego produktu, widzimy wszystkie przypisane mu pola. Szukamy pola na którym na zależy i sprawdzamy jaką wartość reprezentuje. Poniżej przykład:

2) Bezpośrednio w regule po włączeniu trybu test mode widzimy podpowiedzi w warunkach i operacjach. Poniżej przykład:

W podanych przykładach będziemy odnosić się do pola "price", jak widać pole reprezentuje wartość "69.95 PLN". Nie jest więc polem liczbowym. Aby wykonać na nim operacje liczbowe należy poprawić wartość pola doprawadzjąc je do formatu liczby, w tym wypadku operacja jaką musimy wykonać to usunięcie " PLN" co w wyniku zwróci nam wartość "69.95", która to jest liczbą.

Dodajemy więc regułę "Zamień price na liczbę". Reguła będzie spełniona dla wszystkich produktów. Czyli:

IF
All elements
THEN
TAKE "price" and "Replace value" " PLN" "

Powinno to wyglądać jak poniżej:

Jak widać, jeżeli mamy włączony "Test mode" od razu widzimy jak ustawiona operacja wpłynie na naszą wartość. "Results" to wynik po zastosowaniu operacji "Replace value"

W tym momencie w polu "price" mamy wartość "69.95" co jest wartością liczbową. Możemy więc warunkować względem niej kolejną regułę. Dla przykładu będziemy chcieli obniżyć wartość "price" o 10% dla produktów droższych od 50.00

Dodajemy kolejną regułę, którą nazwiemy "Obniż cenę dla produktów droższych od 50" (ważne aby zachować kolejność reguł, ponieważ są wykonywane sekwecyjnie, reguła "Zamień price na liczbę" powinna być wykonana przed regułą "Obniż cenę dla produktów droższych od 50"). Reguła będzie wyglądała w następujący sposób:

IF
"price" "number" "greater than" "50"
THEN
TAKE "price" "calculate value" use "price" Multiply by "0.9"

Będzie to wyglądać jak poniżej:

Należy tutaj podkreślić, że w warunkach powinniśmy wybrać grupę "Number". "Greater than" występuje zarówno w grupię "Number" jak w grupię "Text", ich działanie jest jednak zupełnie odmienne. Grupa "Text" i warunek "Greater than" porówna nam znak do znaku nam natomiast zależy na porównaniu liczb.
W Operacji w "Results" widać wynik działania "price" (69.95) pomnożonego przez "0.9", czyli "62.96".
Aktualnie więc dla wszystkich produktów droższych od "50.00" wartość "price" została obniżona o 10%.

Mamy więc wynik, którego oczekiwaliśmy. Ponieważ jednak z pola "price" usuneliśmy " PLN" a nasz format pliku produktowego. wymaga "price" zawierał " PLN", musimy dodać kolejną regułę którą dopiszę nam to wartość do zmienionego pola "price".

Dodajemy więc kolejną regułę "Dodaj PLN" (powinna być umiejscowiona po regule dwóch powyżej opisanych regułach).

IF
All elements
THEN
TAKE "price" and "Append value" " PLN"

Przykład:

Po wykonaniu trzech powyższych reguł, spełniliśmy poprawnie nasze założenie. Wynik jaki otrzymamy dla tego przykładowego produktu to: "62.96 PLN" i taki wynik zostanie przekazany do pliku produktowego nad którym pracujemy.

Jak widać dość prosta operacja wymagała od nas zarówno zajomości naszych danych, zrozumienia warunków i operatorów liczbowych oraz wykonywania reguł w ustalonej sekwecji.