Wpis z mikrobloga

#programowanie #laravel #php

Hej,

Mam pewną zagwozdkę i zastanawiam się jak do tego podejść. Mam platformę na której klienci mogą kupować różne produktu. Sprzedawcy chcą mieć możliwość wystawiania zniżek dla poszczególnych klientów względem produktów / kategorii etc. Zastanawiam się jak podejść do obliczeń rabatów i co by było najbardziej wydajne

1. W momencie kiedy jest pobierana cała lista produktów, dorzucić do niej rabat a następnie obliczyć to po stronie frontu?
2. W momencie kiedy jest pobierana cała lista produktów, controller przed zwróceniem cen robi obliczenia na każdy produkt i zwraca już obliczone wartości

Rozwiązanie numer 1 wydaj mi się bardziej optymalne, ale chciałbym się upewnić czy nie wrzuci mnie to na minę.
  • 4
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

Tylko opcja druga, nigdy nie zostawiamy takiej logiki na froncie w momencie kiedy mamy możliwość zrobić to na backendzie. Dodatkowo warto zwracać obie kwoty - oryginalną i tą po rabacie tak aby na froncie to spoko wyglądało :)
  • Odpowiedz
1. W momencie kiedy jest pobierana cała lista produktów, dorzucić do niej rabat a następnie obliczyć to po stronie frontu?


@GreeenOne: pomyśl. Przecież i tak gdzieś na etapie zamówienia na backendzie będziesz musiał to podliczyć, żeby Ci klient nie próbować zrobić wała z cenami.
  • Odpowiedz
@GreeenOne: Nie ma jedne właściwej odpowiedzi.

Jeśli chodzi o wydajność/skalowalność opcja pierwsza jest lepsza, należy tylko pamiętać aby na którymś etapie przeliczyć to bezpiecznie po stronie backendu. Minus taki ze cache może się rozjeżdżać i klienci mogą się oburzać że co innego jest w koszyku, a co innego na podsumowaniu/fakturze.

Opcja druga natomiast jest dużo bezpieczniejsza - generalnie nigdy nie ufamy frontendowi. No i zazwyczaj łatwiejsza w implementacji.
  • Odpowiedz