W module zaimplementowaliśmy system zaawansowanych zasad cenowych. Zasady mają prostą składnię i dość duże możliwości.
W obecnej chwili obsługiwane są 2 rodzaje zasad.
-
RANGE
- Zasada cenowa wywoływana przez zakres cenowy -
MANUFACTURER
- Zasada stosowana dla konkretnego producenta-
MAN
- Alias dlaMANUFACTURER
-
PRODUCENT
- Alias dlaMANUFACTURER
-
W przypadku, gdy produkt nie spełni żadnej z zasad cenowych, stosowane są domyślne ustawienia modułu i marże.
Marze stosowane są według zasady “od góry” czy też “pierwsza spełniona”, tzn. jedynie pierwsza spełniona zasada jest stosowna.
Podstawowy zastosowania systemu:
MANUFACTURER::nazwa producenta => n*2*{{markup}}
0 - 9.99 => n*1.1628
10 - 39.9999 => n+1.1111
40 - 99.9999 => n-1.526
100 - 199.9999 => n/1.2
100 - 199.9999 => ((n+15)*{{markup_cat}})*{{markup}}
Obsługiwane zmienne
- {{markup}} - Globalny narzut zdefiniowany w ustawieniach modułu
- {{markup_cat}} - Narzut kategorii, jeśli narzut kategorii jest = 0, to przyjmuje wartość
{{markup}}
-
- (wycofana, zostanie usunięta) - To samo co{{margin}}
{{markup}}
-
n
- literkan
jest zawsze zamieniana na cenę produktu użytą do wyliczeń.
Jak to działa
Załóżmy, że cena produktu to 50.32 i mamy zasadę: 40 - 99.9999 => n-1.526
.
Na samym początku mamy kwalifikator. Czyli 40 - 99.9999
jest zasadą, którą cena musi spełnić.
Następnie wzór n-1.526
jest zamieniany na 50.32-1.526
.
Wzór jakiego uzywamy w przypadku tworzenia zasad
{TYP ZASADY}::{WARUNEK DO SPEŁNIENIA}=>{WZÓR DO ZASTOSOWANIA}
Kalkulacja na podstawie zakresu
Pierwszym rodzajem kalkulacji jest kalkulacja na podstawie zakresu cenowego, czyli RANGE
Moduł zawsze zakłada, żę wybran zasada cenowa to zasada zakresu, tak więc RANGE
Zasada 0 - 9.99 => n*1.1628
jest tożsame z RANGE::0 - 9.99 => n*1.1628
Kalkulacja na podstawie producenta
Drugą zasadą, jaką wprowadziliśmy (od wersji 3.1.25) to zasda na podstawie nazwy producenta.
MANUFACTURER::nazwa producenta => n*2*{{markup}}
Dla przykładu:
Zasada MANUFACTURER:: ACME => n*2*{{markup}}
sprawi, że wszystkie ceny produktów
producenta ACME (wielkość liter nie ma znaczenia ACME, Acme i acme też będą pasowały) będą liczone
ze wzoru n*2*{{markup}}
Wielo-warunki
Wymyślanie nazw nie jest proste, tak więc stworzyłem nazwę “wielo-warunkw”.
Wielo-warunek to stosowanie wielu warunków do jednej zasady.
Dzięki temu możecie dla 1 np. konkretnego producenta zastosować różne zakresy
MANUFACTURER::Acme|RANGE::1-100 => n*2
MANUFACTURER::Acme|RANGE::100-200 => n*1.5
Kolejność nie ma znaczenia, jest to samo co
RANGE::1-100|MANUFACTURER::Acme => n*2
RANGE::100-200|MANUFACTURER::Acme => n*1.5
I oczywiście skrócny RANGE
też działa
1-100|MANUFACTURER::Acme => n*2
MANUFACTURER::Acme|100-200 => n*1.5