[PHP] Kody rabatowe - pomysły |
[PHP] Kody rabatowe - pomysły |
7.12.2017, 11:22:47
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Cześć,
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:
Jak Wy byście to rozwiązali? Zależy mi na możliwości podawania złożonych kryteriów dla kodów. Ten post edytował SmokAnalog 7.12.2017, 11:24:47 |
|
|
7.12.2017, 11:28:33
Post
#2
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Wszystkie 3 są okropne a eval() to już masakra.
Ja bym poszedł jednak w predefiniowane rabaty a potem zrobił z tego zestaw klas. Potem każdemu kodowi przypisujesz listę obiektów które zaaplikują wybrane mechanizmy na koszyku np: TotalAmmountDiscount::class GamesDiscount::class Przekazujesz koszyk do takiego obiektu i on zwraca Ci kwotę rabatu. To jest jeden ze sposobów. |
|
|
7.12.2017, 11:32:46
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Ten Twój pomysł to jest to samo, co ten okropny pomysł nr 1, bo jaka jest niby elastyczność w dodawaniu klas typu GamesDiscount? To też jest okropne Poza tym dodawać klasę tylko po to, żeby zastosować ją do pojedynczego kodu?
Ten post edytował SmokAnalog 7.12.2017, 11:33:36 |
|
|
7.12.2017, 12:09:44
Post
#4
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Stosując wzorzec Dekorator możesz zastosować dowolnie przypadki rabatowe.
|
|
|
7.12.2017, 12:13:08
Post
#5
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Też o tym myślałem, ale to jednak też w wielu przypadkach będzie ograniczać elastyczność rabatów, a poza tym musiałbym używać ich z parametrami. Jest to jednak chyba blisko złotego środka między bezpieczeństwem a użytecznością, bo mógłbym zapisywać w bazie łańcuch dekoratorów razem z wartościami parametrów.
|
|
|
7.12.2017, 12:19:59
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) |
Z doświadczenia wiem że im więcej pozwolisz na swobodę tym gorzej bo łatwiej jest coś rozjebać i trudniej zdebugować.
|
|
|
7.12.2017, 12:22:13
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
No owszem, ale czy w tym przypadku ta złota myśl też znajduje uzasadnienie? Kod rabatowy to część planu biznesowego i nikogo nie obchodzi, że coś byłoby niebezpieczne w implementacji. Nie nazwałbym tego "swobodą".
|
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 22:50 |