Mechanizm aplikacji jest następujący, każdy użytkownik rejestrując się trafia w ostatnie miejsce (od lewej góry) do struktury matrycy (na początku brązowej). Każdy następny użytkownik trafia również do tej struktury, ale "niżej" w hierarchii (na prawo w dół).
I teraz, zakupy każdego użytkownika w sklepie internetowym, odkładają pewną pulę tzw. punktów lojalnościowych (zależną od wartości koszyka, historii zakupów, miejsca w hierarchii matrycy, i tzw. progu sklepu - wskaźnik kumulacji punktowej).
Po tym wszystkim dzieje się rzecz najważniejsza. Pewien procent z ilości tych punktów jest przekazywana użytkownikom "wyżej" w strukturze (nad kupującym). Dzięki temu automatycznie użytkownik wyżej w hierarchii może trafić do matrycy srebrnej, złotej i platynowej.
A jakie są korzyści posiadania konta w matrycy o wyższym "prestiżu"? Posiadanie konta w matrycach daje użytkownikowi dodatkowe rabaty, szybszą obsługę, szybsze dostawy...kolor matrycy definiuje skalę tych parametrów.
Technicznie - potężna aplikacja po stronie serwera
To co dzieję się po stronie serwera, przykładowo po złożeniu zamówienia to istna magia:
System sprawdza historię i status użytkownika składającego zamówienie, a także analizuje próg/wskaźnik danego sklepu i przyznaje odpowiednią ilość punktów.
Sprawdza hierarchię matrycy i przyznaje dodatkowe punkty użytkownikom na "korzystniejszych" polach.
Sprawdza, czy użytkownik któremu przyznał punkty nie powinien trafić do matryc o wyższej randze.
Przyznaje zdefiniowane profity za osiągnięcie odpowiedniej ilości punktów każdemu użytkownikowi.
Te wszystkie algorytmy dziają się dla całej bazy użytkowników - w jednyj chwili może zostać edytowanych tysiące rekordów.
Dlatego testowanie/debugowanie aplikacji przed uruchomieniem było ogromnym wyzwaniem. Jak już "machina" ruszyła, to błądy nie były możliwe do odtworzenia i rekonstrukcji. Restore bazy danych również nie wchodził w grę, ponieważ aplikacja żyła, użtkownicy w matrycach cały czas zmieniali statusy.
To co pisałem jedno zamówienie wywoływało lawinę zmian w bazie danych.
Testowanie niedostępne
Z uwagi na dedykowany i indywidualny charakter aplikacji, jej testowanie nie jest możliwe.