Przejdź do głównej zawartości

Cena jednostkowa

Polskie prawo wymaga, by sklep internetowy pokazywał cenę jednostkową produktu - np. cenę za kilogram, litr lub metr. Wtyczka Polski for WooCommerce dodaje tę informację automatycznie na stronie produktu, w listingu i w koszyku.

Cenę jednostkową podajesz dla produktów sprzedawanych na wagę, objętość lub długość. Dotyczy to m.in.:

  • produkty spożywcze (cena za kg lub litr)
  • kosmetyki i środki czystości (cena za 100 ml lub litr)
  • materiały budowlane (cena za metr bieżący lub metr kwadratowy)
  • produkty sypkie (cena za kg)

Cena jednostkowa musi być widoczna wszędzie, gdzie pokazujesz cenę produktu - na stronie produktu, w wynikach wyszukiwania, w porównywarkach i w koszyku.

Przejdź do WooCommerce > Ustawienia > Polski > Ceny i włącz moduł ceny jednostkowej. Po włączeniu w edytorze produktu pojawi się nowa sekcja w zakładce “Ogólne”.

PoleOpisPrzykład
Ilość bazowaIlość produktu w opakowaniu500
Jednostka bazowaJednostka miary produktug
Ilość referencyjnaIlość referencyjna dla ceny jednostkowej1
Jednostka referencyjnaJednostka, za którą podawana jest cenakg

Dla produktu o wadze 500 g i cenie 12,99 zł plugin automatycznie obliczy cenę jednostkową jako 25,98 zł/kg.

Wtyczka obsługuje te jednostki miary:

  • Waga: g, kg, mg
  • Objętość: ml, l, cl
  • Długość: mm, cm, m
  • Sztuki: szt (piece)

Wtyczka przelicza jednostki automatycznie. Jeśli produkt ma wagę w gramach, a jednostka referencyjna to kilogram - wartość zostanie przeliczona.

Dla produktów zmiennych cenę jednostkową ustawiasz na dwóch poziomach:

  1. Na poziomie produktu głównego - wartość dziedziczona przez wszystkie warianty
  2. Na poziomie wariantu - nadpisuje ustawienia produktu głównego

Jeśli warianty mają różną wagę (np. 250 g i 500 g), ustaw cenę jednostkową osobno dla każdego wariantu. Wtyczka automatycznie zaktualizuje cenę, gdy klient zmieni wariant (AJAX).

Użyj shortcode [polski_unit_price], aby wyświetlić cenę jednostkową w dowolnym miejscu.

ParametrTypDomyślnyOpis
product_idintbieżącyID produktu
beforestring""Tekst przed ceną
afterstring""Tekst po cenie
wrapperstringspanElement HTML opakowujący

Podstawowe użycie na stronie produktu:

[polski_unit_price]

Z niestandardowym ID produktu i tekstem:

[polski_unit_price product_id="123" before="Cena za kg: " after=" brutto"]

W szablonie PHP:

echo do_shortcode('[polski_unit_price product_id="' . $product->get_id() . '"]');

Filtr pozwala zmienić HTML ceny jednostkowej przed wyświetleniem.

apply_filters('polski/price/unit_price_html', string $html, float $unit_price, WC_Product $product, array $args): string
ParametrTypOpis
$htmlstringWygenerowany HTML ceny jednostkowej
$unit_pricefloatObliczona cena jednostkowa
$productWC_ProductObiekt produktu WooCommerce
$argsarrayTablica z kluczami: base_qty, base_unit, ref_qty, ref_unit
add_filter('polski/price/unit_price_html', function (string $html, float $unit_price, WC_Product $product, array $args): string {
$category_class = '';
if (has_term('napoje', 'product_cat', $product->get_id())) {
$category_class = ' polski-unit-price--beverage';
}
return sprintf(
'<span class="polski-unit-price%s">%s/%s</span>',
esc_attr($category_class),
wc_price($unit_price),
esc_html($args['ref_unit'])
);
}, 10, 4);

Przykład: ukrycie ceny jednostkowej dla wybranych kategorii

Dział zatytułowany „Przykład: ukrycie ceny jednostkowej dla wybranych kategorii”
add_filter('polski/price/unit_price_html', function (string $html, float $unit_price, WC_Product $product): string {
if (has_term('uslugi', 'product_cat', $product->get_id())) {
return '';
}
return $html;
}, 10, 3);

Cenę jednostkową importujesz przez standardowy importer WooCommerce. Dodaj te kolumny do pliku CSV:

Kolumna CSVOpis
polski_unit_base_qtyIlość bazowa
polski_unit_base_unitJednostka bazowa
polski_unit_ref_qtyIlość referencyjna
polski_unit_ref_unitJednostka referencyjna

Przykładowy wiersz CSV:

"Kawa mielona 500g",29.99,500,g,1,kg

Sprawdź, czy:

  1. Moduł ceny jednostkowej jest włączony w ustawieniach
  2. Produkt ma wypełnione pola ilości bazowej i jednostki
  3. Motyw obsługuje hook woocommerce_after_shop_loop_item_title (listing) oraz woocommerce_single_product_summary (strona produktu)

Sprawdź, czy jednostka bazowa i referencyjna są z tej samej kategorii (np. obie wagowe lub obie objętościowe). Wtyczka nie przelicza gramów na litry.

Ta strona ma wyłącznie charakter informacyjny i nie stanowi porady prawnej. Przed wdrożeniem skonsultuj się z prawnikiem. Polski for WooCommerce jest oprogramowaniem open source (GPLv2) dostarczanym bez gwarancji.