Poniższe funkcje dostępne są od wersjki 2.3.3
Dokumentacja: Nadpisywanie cen i widoczności informacji o najniższej cenie
1. Nadpisywanie ceny produktu
Moduł umożliwia nadpisanie ceny produktu na dwa sposoby:
- Całkowite nadpisanie ceny – pozwala pominąć wewnętrzny mechanizm wyliczania ceny.
- Modyfikacja wyliczonej ceny – umożliwia dostosowanie ceny po jej obliczeniu przez moduł.
Każda z metod musi zwrócić false, aby dezaktywować nadpisywanie i pozwolić modułowi obliczać cenę jak zwykle. Każda inna wartość (w tym 0 i null) zostanie przekonwertowana na float i zastosowana jako cena.
1.1. Całkowite nadpisanie ceny (sphPriceCalculationOverride)
Jeśli ta funkcja zostanie zdefiniowana, moduł użyje zwróconej wartości jako ostatecznej ceny i pominie własne wyliczenia.
Przykład implementacji:
function sphPriceCalculationOverride($params) {
if ($params['id_product'] == 123) {
return 99.99; // Ustal cenę na stałą wartość
}
return false; // Pozwól modułowi obliczać cenę normalnie
}
Parametry $params:
-
id_product– ID produktu -
id_product_attribute– ID atrybutu produktu -
use_reduction– Czy uwzględniać zniżki -
id_currency– ID waluty -
id_shop– ID sklepu -
useTax– Czy cena powinna zawierać podatek - Dodatkowe zmienne pomocnicze przekazywane przez moduł
1.2. Modyfikacja wyliczonej ceny (sphPriceCalculationModify)
Ta funkcja umożliwia dostosowanie ceny po jej obliczeniu przez moduł.
Przykład implementacji:
function sphPriceCalculationModify($params) {
if ($params['id_product'] == 123) {
return $params['calculatedPrice'] * 0.9; // Obniż cenę o 10%
}
return false; // Użyj standardowej ceny
}
Dodatkowy parametr:
-
calculatedPrice– cena wyliczona przez moduł, którą można zmodyfikować
2. Kontrola widoczności informacji o najniższej cenie (sphIsLowestPriceDisplayAllowed)
Ta funkcja pozwala programistycznie decydować, czy informacja o najniższej cenie powinna być wyświetlana dla danego produktu.
Przykład implementacji:
function sphIsLowestPriceDisplayAllowed($product) {
if ($product->id == 123) {
return false; // Ukryj informację o najniższej cenie dla produktu 123
}
return null; // Pozwól modułowi zastosować domyślne zachowanie
}
Parametry:
-
$product– obiekt produktu zawierający informacje o nim
Uwaga:
- Jeśli funkcja zwróci
false, informacja o najniższej cenie zostanie ukryta. - Jeśli funkcja zwróci
true, informacja zostanie wyświetlona. - Jeśli funkcja zwróci
null, moduł zastosuje domyślne zachowanie.
3. Podsumowanie
-
Użyj
sphPriceCalculationOverride, jeśli chcesz całkowicie zastąpić wewnętrzne obliczenia ceny. -
Użyj
sphPriceCalculationModify, jeśli chcesz zmodyfikować cenę po jej obliczeniu przez moduł. -
Użyj
sphIsLowestPriceDisplayAllowed, jeśli chcesz sterować widocznością informacji o najniższej cenie.