W module zaimplementowaliśmy system zaawansowanych zasad cenowych. Zasady mają prostą składnię i dość duże możliwości.

Jeśli integracja przelicza kursy, to przeliczenie kursów odbywa się przed wyliczeniem ceny i naliczeniem narzutów. Jeśli hurtownia dostarcza ceny w EUR (np. 1 EUR) i integracja przelicza na zł (4zł po przeliczeniu). To do testu zakresu cenowego wybierana jest cena 4zł, a nie 1 EUR

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 dla MANUFACTURER
    • PRODUCENT - Alias dla MANUFACTURER

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}}
  • {{margin}} - (wycofana, zostanie usunięta) - To samo co {{markup}}
  • n - literka n 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