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:

  1. Całkowite nadpisanie ceny – pozwala pominąć wewnętrzny mechanizm wyliczania ceny.
  2. 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.