System kaucyjny w WooCommerce: kaucja za butelki i puszki
Autor: Mariusz Szatkowski · Zaktualizowano: 2026-11-06
System kaucyjny zobowiązuje sklep sprzedający napoje w objętych nim opakowaniach do pobrania stałej kaucji za każdą butelkę lub puszkę. Kupujący odzyskuje kaucję po oddaniu pustego opakowania. W sklepie WooCommerce kaucja powinna być osobną pozycją: opłatą w koszyku liczoną z rodzaju opakowania, liczby opakowań w produkcie i stawki danego kraju, a nie kilkoma groszami po cichu doliczonymi do ceny. W Polsce to kaucja, w Niemczech Pfand, w Rumunii SGR, na Słowacji zaloha, a każdy system ma własne stawki, zakres opakowań i zasady VAT. Ten poradnik wyjaśnia, jak działa kaucja w sklepie internetowym, czego wymaga od narzędzia w WooCommerce i jak darmowa wtyczka Botelix dolicza kaucję w 16 europejskich systemach.
Czym jest system kaucyjny
System kaucyjny to ustawowy mechanizm, w którym sprzedawca pobiera kaucję za każde objęte opakowanie po napoju przy sprzedaży, a kaucja wraca do kupującego po oddaniu opakowania. Kaucja nie jest zwykłym składnikiem ceny. To pieniądze, które klient odzyska, więc pokazuje się ją i pobiera osobno od napoju.
Każdy system określają trzy rzeczy i w każdym kraju wyglądają inaczej:
- Jakie opakowania obejmuje. Większość systemów obejmuje jednorazowe butelki z tworzywa i puszki metalowe. Część dodaje jednorazowe szkło, część szkło wielokrotnego użytku, a część w ogóle pomija szkło. Polska obejmuje butelki z tworzywa, puszki i szklane butelki wielokrotnego użytku, ale nie jednorazowe szkło. Austria, Słowacja, Szwecja, Holandia, Irlandia i Portugalia pomijają szkło.
- Ile wynosi kaucja. Stawkę ustala przepis albo operator systemu, w walucie danego kraju. Rozporządzenie Dz.U. 2024 poz. 1046, § 1 podaje w Polsce 0,50 zł za butelkę z tworzywa do 3 l, 0,50 zł za puszkę do 1 l i 1,00 zł za szklaną butelkę wielokrotnego użytku do 1,5 l. W Niemczech to 0,25 EUR, w Rumunii 0,50 RON, na Węgrzech 50 HUF.
- Czy obejmuje ją VAT. W Polsce art. 29a ust. 11a ustawy o VAT wyłącza kaucję z podstawy opodatkowania. W Niemczech § 46 Abs. 1 VerpackDG ustala kaucję na co najmniej 0,25 EUR razem z VAT. Ta sama kwota bywa więc w jednym kraju kwotą brutto, a w innym kwotą bez podatku.
Liczy się też pojemność. Kilka systemów obejmuje opakowania od 0,1 l do 3,0 l, a niektóre pobierają więcej za większe: Irlandia 0,15 EUR do 0,5 l i 0,25 EUR powyżej, Holandia 0,15 EUR za butelkę z tworzywa poniżej 1 l i 0,25 EUR od 1 l do 3 l.
Dlaczego kaucja potrzebuje osobnej pozycji
Kaucja schowana w cenie produktu psuje cztery rzeczy ważne i dla klienta, i dla księgowości.
Po pierwsze, klient nie widzi, ile kosztuje sam napój. Zgrzewka wody z wliczoną kaucją wygląda na droższą niż u konkurenta, który pokazuje kaucję osobno, a zwrotna część kwoty znika z widoku. W Niemczech § 7 PAngV wymaga podania kwoty kaucji obok ceny całkowitej, więc musi być widoczna jako osobna liczba.
Po drugie, zgrzewka to kilka kaucji, nie jedna. Na sześciopak puszek przypada sześć kaucji, a na skrzynkę 24 butelek 24 kaucje. Stała dopłata do produktu daje złą kwotę, gdy tylko sprzedajesz coś więcej niż pojedyncze butelki.
Po trzecie, kaucja nie musi podlegać VAT tak jak napój. Tam, gdzie kaucja leży poza podstawą opodatkowania, opodatkowanie jej razem z produktem zawyża VAT. Tam, gdzie jest w podstawie, klient ma zapłacić dokładnie ustawową kwotę brutto, a nie kwotę z podatkiem doliczonym na wierzch.
Po czwarte, sklep wysyłający za granicę sprzedaje do różnych systemów. Klient z Niemiec i klient z Austrii, kupujący tę samą puszkę, podlegają innym zasadom: austriacki Einwegpfand obejmuje tylko butelki z tworzywa i puszki, a niemiecki Pfand także jednorazowe szkło.
Osobna opłata rozwiązuje wszystkie cztery problemy. Klient widzi kaucję, kwota rośnie z liczbą opakowań, VAT zależy od systemu, a system może zależeć od kraju dostawy.
Czego potrzebuje narzędzie do kaucji w WooCommerce
Przy porównywaniu wtyczek albo planowaniu własnej konfiguracji sprawdź:
- Rodzaj opakowania na produkcie. Sprzedawca oznacza produkt jako butelkę z tworzywa, puszkę, jednorazowe szkło albo szkło wielokrotnego użytku, a system ustala stawkę dla każdego rodzaju.
- Liczba opakowań. Pole z liczbą objętych opakowań w jednej sztuce, żeby zgrzewki mnożyły kaucję.
- Osobna opłata w koszyku. Kaucja jako oddzielna pozycja w koszyku, na kasie, w zamówieniu i w e-mailach.
- VAT według systemu. Kwoty brutto tam, gdzie kaucja wchodzi do podstawy opodatkowania, opłata bez VAT tam, gdzie nie wchodzi.
- Widoczna informacja. Kaucja obok ceny na karcie produktu i na listach produktów.
- Dobór według kraju. System kraju dostawy i reguła dla krajów bez systemu.
- Edytowalne stawki. Stawki się zmieniają, a niektóre zależą od pojemności, więc każda wartość domyślna musi dać się zmienić.
Jednej rzeczy narzędzie w koszyku nie zrobi: odbioru opakowań. Zbieranie pustych butelek i wypłata kaucji dzieją się w fizycznym systemie zwrotu i w Twoim procesie zwrotów, nie w koszyku.
Jak robi to Botelix
Botelix dla WooCommerce to darmowa wtyczka open source, która dolicza kaucję za opakowania po napojach jako osobną opłatę w koszyku i na kasie WooCommerce, a pod ceną produktu pokazuje informację o kaucji. Ma 16 krajowych systemów: Polskę, Rumunię, Austrię, Niemcy, Słowację, Węgry, Danię, Szwecję, Finlandię, Estonię, Łotwę, Holandię, Irlandię, Chorwację, Maltę i Portugalię, oraz system własny ze stawką za opakowanie w walucie sklepu.
Działa od razu po włączeniu. Kaucja jest aktywna, domyślnym systemem jest Polska, a dobór według kraju dostawy i zwolnienie eksportu są włączone, więc niczego nie trzeba najpierw zapisywać.
Zgrzewka 6 butelek plastikowych: pod ceną informacja o kaucji 3,00 zł.
Jeden rodzaj opakowania, każdy system
Każdy produkt z napojem ma jeden z czterech rodzajów opakowania: jednorazowa butelka z tworzywa, puszka metalowa, jednorazowa butelka szklana albo szklana butelka wielokrotnego użytku. Oznaczasz produkt raz, a każdy system ustala własną stawkę dla tego rodzaju albo go nie obejmuje i nic nie pobiera. Edytor produktu oznacza rodzaje, których nie obejmuje system produktu, więc lukę widzisz już przy edycji.
Na zakładce Ogólne produktu ustawiasz:
- System kaucyjny produktu: domyślny system sklepu albo jeden stały system dla tego produktu.
- Rodzaj opakowania: brak albo jeden z czterech rodzajów.
- Liczba opakowań: ile objętych opakowań zawiera jedna sztuka, co najmniej 1.
- Kaucja za opakowanie: opcjonalna kwota, która zastępuje stawkę systemu w systemie produktu, na przykład różne stawki dla różnych butelek zwrotnych.
- Kaucja za skrzynkę / opakowanie zbiorcze: opcjonalna kaucja doliczana dodatkowo do kaucji za opakowania, dla skrzynek i kartonów, jak niemiecki Kastenpfand.
Warianty dziedziczą system kaucyjny produktu nadrzędnego, a wariant bez własnego rodzaju opakowania przejmuje rodzaj i liczbę opakowań od rodzica.
Jak liczona jest kaucja
Botelix liczy kaucję w sześciu krokach:
- System klienta. Przy włączonym doborze według kraju czyta kraj dostawy klienta, a gdy go brak, kraj rozliczeniowy, i stosuje system tego kraju.
- System produktu. System kaucyjny ustawiony na produkcie zastępuje system zamówienia dla tego produktu.
- Waluta. System jest naliczany tylko wtedy, gdy jego waluta zgadza się z walutą sklepu. System własny nie ma waluty i jest naliczany zawsze.
- Opakowanie. Obowiązuje stawka systemu dla rodzaju opakowania albo własna kaucja produktu w jego systemie.
- Kwota. Stawka razy liczba opakowań razy liczba sztuk w koszyku.
- Opłata. Kaucje sumują się w jedną opłatę na system i klasę podatkową, przez API opłat WooCommerce, w klasycznym koszyku i kasie oraz w blokach koszyka i kasy.
Koszyk z jedną butelką z tworzywa, zgrzewką sześciu puszek i jedną szklaną butelką zwrotną w polskim systemie to 0,50 + 3,00 + 1,00, czyli jedna pozycja kaucji na 4,50 zł.
Kaucja jako osobna pozycja w podsumowaniu koszyka.
Gdzie klient widzi kaucję
Botelix pokazuje kaucję na każdym etapie zakupu:
- Karta produktu. Informacja pod ceną, w szablonach klasycznych i blokowych, czyli zdanie o kaucji z jej kwotą i informacją, że wraca po oddaniu opakowania. Zdanie ustawiasz osobno dla każdego systemu, z
{amount}albo%sw miejscu kwoty. - Listy produktów. Sklep, kategorie, wyniki wyszukiwania i produkty powiązane, w wersji klasycznej i blokowej, pokazują kaucję obok ceny.
- Koszyk i kasa. Każda pozycja pokazuje swoją kaucję, a suma kaucji jest osobną opłatą.
- Zamówienie. Zamówienie zapisuje kaucję przy każdej pozycji i pokazuje ją na stronie zamówienia, w panelu i w e-mailach.
W niemieckim systemie cena dostaje też napis EINWEG dla opakowań jednorazowych i MEHRWEG dla wielokrotnego użytku, wewnątrz znacznika ceny, więc ma ten sam krój i rozmiar, czego przy sprzedaży online wymaga § 47 VerpackDG. § 47 przewiduje wyjątki, a Botelix kieruje się rodzajem opakowania, który ustawisz. W niestandardowych układach i kreatorach stron shortcode’y [botelix_deposit] i [botelix_packaging_type] wstawią informację o kaucji i napis EINWEG lub MEHRWEG w dowolnym miejscu.
VAT według systemu
Botelix traktuje kaucję zgodnie z zasadą podatkową każdego systemu:
- Niemcy, Dania, Szwecja i Finlandia wliczają kaucję do podstawy opodatkowania. Botelix traktuje stawkę jako kwotę brutto i dodaje część netto jako opłatę opodatkowaną w klasie podatkowej produktu, więc klient płaci dokładnie kaucję. Przy wyłączonych podatkach, produkcie nieopodatkowanym albo kliencie zwolnionym z VAT cała kwota trafia bez VAT.
- Polska, Rumunia, Słowacja, Estonia, Irlandia, Malta i Portugalia wyłączają kaucję z podstawy opodatkowania w ustawie, a Botelix dolicza ją bez VAT.
- Austria, Węgry, Holandia, Chorwacja i Łotwa też są doliczane bez VAT. W Holandii, Chorwacji i przy jednorazowych opakowaniach na Łotwie opiera się to na zgodzie lub wytycznych administracji podatkowej, a nie na ustawie.
Filtr botelix_scheme_taxable zmienia traktowanie danego systemu, jeśli Twój doradca podatkowy czyta przepisy inaczej.
Sprzedaż za granicę i waluta
Dobór według kraju dostawy stosuje system kraju klienta dla PL, RO, AT, DE, SK, HU, DK, SE, FI, EE, LV, NL, IE, HR, MT i PT. Botelix nie przelicza walut: sklep w euro pobiera stawkę każdego systemu euro, a Dania liczy w DKK, Szwecja w SEK, Rumunia w RON, Węgry w HUF i Polska w PLN. Sklep w złotówkach nie pobierze więc kaucji przy wysyłce do Niemiec, a ekran ustawień wymienia każdy system, którego Twój sklep nie może naliczyć.
Przy włączonym zwolnieniu eksportu zamówienie do kraju spoza 16 systemów nie dostaje kaucji wcale. Zanim klient wpisze adres, kraj pochodzi z ustawienia WooCommerce “Domyślna lokalizacja klienta”. Botelix nie geolokalizuje sam.
Konfiguracja
- Zainstaluj i włącz Botelix na WordPressie 6.5 lub nowszym, PHP 8.1 i WooCommerce 8.0 lub nowszym.
- Otwórz WooCommerce > Deposit Return (DRS) i wybierz domyślny system.
- Sprawdź stawki na karcie systemu, ustaw nazwę opłaty i, jeśli chcesz, zdanie pod ceną.
- Edytuj każdy produkt z napojem: wybierz rodzaj opakowania i ustaw liczbę opakowań.
- Dodaj kaucję za opakowanie albo za skrzynkę tam, gdzie produkt odbiega od stawki systemu.
Pełny opis ustawień, tabela stawek i podstawa prawna każdego systemu są w dokumentacji Botelix.
Domyślne stawki w 16 systemach
Botelix ma te wartości domyślne dla dwóch najczęstszych opakowań. Każdą stawkę zmienisz, a wartości domyślne to punkt wyjścia, który przed sprzedażą warto sprawdzić z aktualnymi przepisami.
| System | Butelka z tworzywa | Puszka | VAT w Botelix |
|---|---|---|---|
| Polska | 0,50 zł | 0,50 zł | bez VAT |
| Rumunia | 0,50 RON | 0,50 RON | bez VAT |
| Austria | 0,25 EUR | 0,25 EUR | bez VAT |
| Niemcy | 0,25 EUR | 0,25 EUR | część netto plus VAT |
| Słowacja | 0,12 EUR (minimum) | 0,10 EUR (minimum) | bez VAT |
| Węgry | 50 HUF | 50 HUF | bez VAT |
| Dania | 1,50 DKK | 1,00 DKK | część netto plus VAT |
| Szwecja | 2,00 SEK | 2,00 SEK | część netto plus VAT |
| Finlandia | 0,20 EUR | 0,15 EUR | część netto plus VAT |
| Estonia | 0,10 EUR | 0,10 EUR | bez VAT |
| Łotwa | 0,10 EUR | 0,10 EUR | bez VAT |
| Holandia | 0,15 EUR | 0,15 EUR | bez VAT |
| Irlandia | 0,15 EUR | 0,15 EUR | bez VAT |
| Chorwacja | 0,10 EUR | 0,10 EUR | bez VAT |
| Malta | 0,10 EUR | 0,10 EUR | bez VAT |
| Portugalia | 0,10 EUR | 0,10 EUR | bez VAT |
Tam, gdzie kwota zależy od pojemności (Dania, Szwecja, Finlandia, Holandia, Irlandia), ustawienia podają najczęstszy rozmiar, a opis stawki wymienia pozostałe kwoty, które wpisujesz w kaucji za opakowanie na produkcie. Na Słowacji faktyczną stawkę powyżej ustawowego minimum ustala administrator systemu, a w Szwecji wartości domyślne to stawki operatora, bo rozporządzenie nie podaje kwoty.
Praktyczne wskazówki
- Oznacz każdy produkt z napojem. Produkt bez rodzaju opakowania nie nalicza nic, więc nieoznaczona zgrzewka to kaucja, której sklep nie pobrał.
- Ustaw liczbę opakowań w zgrzewkach i skrzynkach. Liczba opakowań mnoży kaucję. Skrzynka 24 butelek potrzebuje 24, a sama skrzynka dostaje kaucję za skrzynkę.
- Wpisz na produkcie stawki zależne od pojemności. Butelka 1,5 l w Irlandii czy Holandii to 0,25 EUR, a nie domyślne 0,15 EUR.
- Dopasuj walutę sklepu do rynku. Dobór według kraju nalicza tylko systemy w walucie sklepu.
- Zwroty prowadź jak dotąd. Botelix pobiera kaucję, a jej wypłata za oddane opakowania idzie przez zwrot w WooCommerce.
Uwaga: Kaucja to kwota zwrotna, a nie opłata, którą sklep zatrzymuje. Gdy pokazujesz ją osobno od ceny na karcie produktu, na listach i w koszyku, klient wie dokładnie, co odzyska.
Botelix a standardowe WooCommerce
WooCommerce nie ma funkcji kaucji. Bez wtyczki zostaje wyższa cena produktu albo ręczna opłata, a żadna z nich nie mnoży się przez liczbę opakowań ani nie uwzględnia zasad VAT danego kraju.
| Funkcja | Standardowe WooCommerce | Botelix |
|---|---|---|
| Kaucja jako osobna opłata | Brak | Tak, natywna opłata WooCommerce |
| Krajowe systemy | Brak | 16 systemów i system własny |
| Rodzaje opakowań | Brak | Cztery, ze stawką w każdym systemie |
| Zgrzewki | Brak | Stawka razy liczba opakowań |
| Kaucja za skrzynkę | Brak | Opcjonalna, dodatkowo do kaucji za opakowania |
| VAT według systemu | Ręcznie | Część netto tam, gdzie kaucja jest opodatkowana, bez VAT gdzie indziej |
| Informacja i listy produktów | Brak | Pod ceną i obok cen na listach |
| EINWEG i MEHRWEG | Brak | W cenie w systemie niemieckim |
| Dobór według kraju dostawy | Brak | Opcjonalny, systemy w walucie sklepu |
| Bloki i HPOS | n/d | Zgodny z jednym i drugim |
| Koszt | Za darmo (bez kaucji) | Za darmo, bez płatnej wersji |
Czego Botelix nie robi
Botelix to darmowa wtyczka bez wersji PRO, a jej granice są celowe:
- Nie przelicza walut. System w innej walucie nie nalicza nic.
- Nie śledzi zwrotów ani nie wypłaca kaucji. Odbiór opakowań i zwrot kaucji zostają w Twoim procesie zwrotów i w zwrocie WooCommerce.
- Nie geolokalizuje. Kraj to ten, który WooCommerce zna dla klienta: najpierw dostawy, potem rozliczeniowy.
Usunięcie wtyczki kasuje jej ustawienia, na każdej witrynie sieci multisite. Dane produktów zostają.
W skrócie
System kaucyjny zobowiązuje sprzedawcę napojów do pobierania zwrotnej kaucji za każdą objętą butelkę lub puszkę, według stawki, zakresu opakowań i zasad VAT ustalonych przez dany kraj. W WooCommerce kaucja powinna być osobną pozycją, pomnożoną przez liczbę opakowań w produkcie i widoczną od karty produktu po e-mail z zamówieniem. Darmowa wtyczka Botelix dla WooCommerce robi to dla 16 europejskich systemów i systemu własnego: jeden rodzaj opakowania na produkt, liczba opakowań w zgrzewkach, kaucja za skrzynkę, informacja pod ceną i na listach, EINWEG i MEHRWEG w systemie niemieckim, VAT według systemu i dobór według kraju dostawy w walucie sklepu. Oznacz produkty z napojami, sprawdź stawki z aktualnymi przepisami, a kaucja pojawi się na kasie jako osobna opłata.