Chcemy dziś opisać enigmatyczny przypadek złego naliczania cen w koszyku.
Dotyczy to sklepu PrestaShop w wersji 1.7.8.2.
Jest to dość specyficzna sytuacja, wystąpiła w momencie gdy:
- dodanych produktów do koszyka jest stosunkowo dużo
- produkty mają „niepełne” ceny po przecinku (ceny z groszami),
- ponadto dla każdego produktu jest zastosowany rabat grupowy (ostatecznie wprowadziło to jedynie zamieszanie)
Po kolei.
Zawartość artykułu
Suma w koszyku.
Sumowanie w koszyku wygląda w ten sposób:
Czyli jak zsumujemy na kalkulatorze:
- produkt nr. 1: 140 * 11,11 = 1 555,40 zł
- produkt nr. 2: 280 * 12,43 = 3 480,40 zł
SUMA: 5 035,80 zł
Natomiast na w/w screenshocie mamy:
1 555,39 + 3 481,04 = 5 036,43 zł (źle!)
Czyli.. 63 grosze różnicy na niekorzyść klienta. Czyli sytuacja, która wymusza na sklepie wykonywanie korekt księgowych i co to dużo pisać – zła wizerunkowo.
Rabaty dla kategorii – ślepy trop.
W instalacji sklepu, który analizowaliśmy dodatkowo przykuły uwagę rabaty związane z kategoriami dla grup klientów.
Ustawiamy je w
Preferencje -> Klienci -> Grupy -> dana grupa -> przycisk „Dodaj rabat kategorii”:
Wpływa to na cenę produktu i dodatkowo ją modyfikuje w koszyku (wzlędem tej podanej w panelu sklepu). W ten sposób można przypisać dla klienta będącego w danej grupie (np. „Podwykonawcy” albo „Partnerzy”) rabat dla danej kategorii.
Jednak okazało się to ślepym tropem.. Mimo zdjęcia rabatu z grupy danego klienta sumowanie dalej było błędne.
Oczywiście przy dużej ilosci produktów + jeśli produkty miały ceny (netto) z resztami groszowymi.
Rozwiązanie.
Rozwiązanie okazało się stosunkowo proste i nie wymagało poprawy kodu sklepu albo aktualizacji wersji.
Wejdź w dział
Preferencje -> ogólne -> opcja: „Typ zaokrąglenia”
i jeśli tam ustawimy „Zaokrąglenie dla kazdego przedmiotu” zamiast (domyślnego) „Zaokrąglenie dla każdej liniii”:
Suma naszych produktów w koszyku będzie prawidłowa:
Są tam też dostępne inne typy zaokrąglania + tryby. Zatem można to dostosować wg swoich potrzeb.