Moduł od wersji 2.2.0 pozwala na ręcznie pisane zasady wyliczania cen.

Całkowite nadpisanie wyliczania

Poniższa funkcja pozwala całkowicie nadpisać wyliczanie cen przez moduł, co pozwala definiować własne zasady wyliczania cen dla bardziej indywidualnych sklepów.

    PriceHistoryCustomPriceCalculation(
            $context->shop->id,
            $id_product,
            $id_product_attribute,
            $id_country,
            $id_state,
            $zipcode,
            $id_currency,
            $id_group,
            $cart_quantity,
            $usetax,
            $decimals,
            $only_reduc,
            $usereduc,
            $with_ecotax,
            $specific_price_output,
            $use_group_reduction,
            $id_customer,
            $use_customer_price,
            $id_cart,
            $quantity
    );

Funkcja przyjmuje te same parametry jak natywan funkcja Prestashop Product::priceCalculation, powinna zwrócić adekwatnie taki sam rodzaj wartości jak ta funkcja.

Zwrócenie wartości false uruchomi wbudowaną kalkulację modułu, więc nadpisanie może być warunkowe w specjalnych przypakach.

Modyfikacja zwróconej wartości

Nie zawsze wymagane jest definiowanie specjalnych zasad wyliczania, dlatego dla takiego przypadku jest druga funkcja pozwalająca na modyfikacje zwróconej wartości.

Przykładowo można cenę zaokrąglić i odjąć 1 grosz, wtedy taka cena będzie zapisywana w bazie danych.

    PriceHistoryPriceAffect(
            $calculated_price, 
            $id_currency,
            $id_product,
            $usetax,
            $id_product_attribute,
            $use_reduc,
            $id_shop
    );

Funkcja dostaje wartość wyliczonej ceny, id waluty, produktu, flagę czy ma podatek, id kombinacji, flagę czy jest to cena ze zniżką oraz id sklepu.

Zwrócona wartość działa podobnie jak w powyższym przypadku, więc można aplikować te same zasady działania.

Dodawanie

Aby nadpisania działały, w sklepie muszą zostać zdefioniowane powyższe funkcję

Preferowanym miejscem na dodanie funkcji jest stworzenie pliku custom_functions.php w folderze modułu:

./modules/seigipricehistory/custom_functions.php

Po poprawnym zdefiniowaniu funkcji, powinny się one wykonywać przy każdym wyliczeniu cen.