Obowiązek wynika z ustawy o informowaniu o cenach towarów i usług, która wdraża unijną dyrektywę o wskazywaniu cen. Treść jest prosta: przy każdym ogłoszeniu obniżki ceny trzeba podać najniższą cenę tego towaru z trzydziestu dni poprzedzających obniżkę. Jeżeli towar jest w sprzedaży krócej niż trzydzieści dni — najniższą cenę od początku oferowania.

Wyliczenie takiej kwoty to kilka linii kodu. Problem leży gdzie indziej.

Rejestr, nie pole w produkcie

Najprostsze wdrożenie zapisuje wyliczoną kwotę w metadanych produktu i pokazuje ją na karcie. Działa do pierwszej kontroli — bo pytanie brzmi wtedy nie „co pokazujecie”, tylko „na jakiej podstawie”.

Kwota bez historii, z której powstała, jest deklaracją. Dopiero historia jest dowodem.

Dlatego historię cen prowadzimy jako ciąg wyłącznie dopisywany, w osobnej tabeli, a nie w metadanych produktu. Trzy skutki tej decyzji:

Czego rejestr świadomie nie robi

Zakres obowiązku jest węższy, niż podpowiada intuicja, a nadgorliwość w tym miejscu kosztuje wiarygodność komunikatu przy każdym produkcie.

Cena wprowadzająca nie jest obniżką. Kiedy nowy produkt startuje z niższą ceną, która po czasie ma wzrosnąć, komunikat brzmi „teraz taniej, potem drożej”, a nie „było drożej, jest taniej”. Linia o najniższej cenie z trzydziestu dni nie ma tu czego opisywać, więc się nie pokazuje.

Rabaty koszykowe i kody rabatowe nie zmieniają ceny towaru, więc nie trafiają do rejestru. Zastrzeżenie jest jednak istotne: jeżeli kod jest ogłaszany jako obniżka ceny konkretnego towaru, obowiązek dotyczy tego ogłoszenia — i trzeba go obsłużyć tam, gdzie ono stoi, a nie udawać, że problem nie istnieje, bo mechanizm rabatu leży gdzie indziej.

Warianty produktów są zapisywane, ale nie wyświetlane w sklepie, który wariantów nie sprzedaje. Dane do audytu są kompletne, bo kompletne muszą być zawsze — ale kod rysujący linię na karcie produktu wariantowego byłby kodem nigdy nieuruchomionym. Taki kod nie jest gotowością na przyszłość, tylko nieprzetestowaną powierzchnią, która zepsuje się dokładnie w dniu, w którym pierwszy raz się wykona.

Wniosek szerszy niż jeden przepis

Wymagania prawne w sklepie mają wspólną cechę: rzadko chodzi w nich o to, co widzi klient, a prawie zawsze o to, co da się odtworzyć po fakcie. Warto to rozstrzygnąć na początku, bo różnica między „pokazujemy właściwą kwotę” a „potrafimy uzasadnić każdą pokazaną kwotę” to różnica w projekcie bazy danych, a nie w szablonie.

Wszystkie wpisy