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.