chcę stworzyć system kodów rabatowych dla sklepu. Robię projekt dla zabawy i nauki, więc proszę nie odsyłajcie mnie do gotowych projektów

Interesuje mnie dyskusja o możliwych sposobach implementacji systemu rabatowego. Chciałbym, by system pozwalał na jak najbardziej elastyczne tworzenie rabatów na podstawie różnych kryteriów, na przykład:
Cytat
Wpisując przy zamówieniu kod ABC123, otrzymasz rabat 30% na wszystkie produkty z kategorii Gry, ale maksymalnie do 5-ciu sztuk. Rabat naliczany do 5-ciu najdroższych zamówionych gier.
Moje pomysły to:
- Do każdego kodu podpięty kod PHP z obliczaniem rabatu. Nie podoba mi się zbytnio ten pomysł, bo dodawanie pliku jest czasochłonne.
- Textarea z kodem PHP do wyliczenia wartości rabatu w eval().
- Własny metajęzyk z dostępem do zawartości koszyka w postaci specjalnych tagów. Bardzo pracochłonne w implementacji i nie tak elastyczne jak dwa poprzednie.
Jak Wy byście to rozwiązali? Zależy mi na możliwości podawania złożonych kryteriów dla kodów.