Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Obsługa promocji produktów
Forum PHP.pl > Forum > PHP
thomson89
Witam!

Potrzebuję dodać do skryptu obsługę promocji. Jest tylko jedno ale. Promocja ma różne typy i musi być wdrażana na różnych etapach. A dodatkowo wyświetlana przy każdym produkcie.

Promocji będą 4 typy: kwota, powyżej wartości; zwykły odejmowany procent; inna niższa cena; ilość, powyżej wartości. Każdy typ, może być przyporządkowany do iluś set produktów, a w koszyku może być np. 10 produktów z promocji i 2 bez. A w tych 10 ileś różnych typów.

Jak więc policzyć ostateczną wartość zamówienia, nie stwarzając sobie zbyt wielu komplikacji?
Spawnm
może dopisać że promocje nie mogą się łączyć snitch.gif
thomson89
Na pewno jest to jakiś pomysł, z plusem dla oszczędności. biggrin.gif

Spawnm
Zobacz że np. helion tak robi smile.gif
Albo promocja dnia albo kod albo koszyk.
Crozin
Jeżeli piszesz kod w miarę przyszłościowo to powinieneś uwzględnić:
1) Promocje mogą się łączyć - nie widzę problemu z połączeniem następujących promocji: przy zakupie 5 produktów -10%, a jeżeli mieszkasz np. w Warszawie (bo tam jest magazyn sklepu) to nie płacisz nic za przesyłkę
2) Często na produkt może być nałożona wielokrotnie ta sama (ten sam typ) promocja: np.: przy zakupie 5 sztuk -10%, 10 -15%, 20 -20%
3) Niektóre promocje są przyporządkowane pojedynczemu produktowi, niektóre grupie produktów, a niektóre wszystkim (chodzi o zawartość koszyka)
4) Niektóre promocje wymagają reakcji użytkownika (np. wprowadzenie kodu promocyjnego)

Jeżeli zależy Ci na tym by działało i olać to to możesz w sumie zignorować część tego postu.

Od strony kodu (to tylko takie przemyślenia na szybko - temat wcale nie jest prosty, więc zastanów się nad nim porządnie, sprawdź czy się sprawdzi we wszystkich przewidywanych sytuacjach przed napisaniem pierwszej linii kodu):
1) Promocje mogłyby nasłuchiwać różnych "akcji" w systemie, takich jak: dodanie produktu do koszyka czy wyświetlanie koszyka i na tej podstawie odpowiednio modyfikować sam koszyk.
2) Koszyk sam w sobie na pewno nie może ograniczyć się tylko do jakiejś tablicy produktów, ilości i ceny pojedynczej sztuki.
3) Promocje to głównie kod PHP, w bazie danych mógłbyś się ograniczyć co najwyżej do przechowywania informacji o tym jakie promocje są przydzielone do danego produktu (osobna tabela z kluczem obcym na products.id) + jakaś konfiguracja takiej promocji. Taka konfiguracja mogłaby być nawet w postaci zserializowanej tablicy czy czegoś takiego.

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.