My jsme řešili podobný problém - zákazníci určitého druhu (např.: kamarádi) mají slevu na celý sortiment.
Řešíme to tak, že první nákup zákazník provádí v plné výši - a pak se jeho zákaznická skupina mění ručně (až si ověříme, že je skutečně kamarád).
Na rozdíl ceny prvního nákupu dostane voucher (utratil-li 2000, dostává voucher na svou slevu - tedy např. 200).
Je to sice zdánlivě kostrbaté řešení, ale je v tom zároveň motivace k dalšímu nákupu (mám slevový kupón, přece ho nenechám propadnout)...
Druhá možnost je - předgenerovat si účty (v dané slevě) -> a nabízet tyto předpřipravené účty, u kterých už je nastavena sleva / zákaznická skupina )