
Deposit Return Fee for OpenCart — container deposit (kaucja, SGR, Pfand) as a separate order line
Deposit for bottles and cans as a separate line in the cart, checkout, order, e-mail and invoice of OpenCart 4, 3 and 2.3: Polish kaucja, Romanian SGR, German and Austrian Pfand. Container types with ready rates for PL / RO / DE / AT, VAT by the country rule, deposit per product in a product form tab, bulk assignment by filter, a "+ 0.50 zł deposit" note under the price. Pro — several lines per product, deposit by option (single / 6-pack / crate), one line per type, customer groups without deposit, CSV and a report. Lifetime licence.
- Compatibility
- OpenCart 4.0.2 – 4.1.x, 3.0.x and 2.3.0.2 (tested on 4.1.0.3, 4.0.2.3 with the pdo driver, 3.0.5.0 and 2.3.0.2 on PHP 7.0) · default checkout and One Page Checkout (CatCode) · Order Total extension without core edits
- Version
-
v1.0.0 (OpenCart 4)
v1.0.0 (OpenCart 3.x)
v1.0.0 (OpenCart 2.3) - Licence
- one site, lifetime
- Trial
- 7 days, no card, one per site
- Updated
- October 2026
What Free has,
and what Pro adds
The free version works with no time limit. Pro adds the rest of the features in the table.

The trial starts when you ask
A fresh install is the free version, nothing switches on by itself. The “Try Pro for 7 days” button → e-mail → the key right in the window and by e-mail.

One key — one site
Moving the store? Unbind the licence on the old domain and activate it on the new one yourself. For studios — keys for 5 or 25 sites, or unlimited.
Technical requirements
OpenCart 4.0.2 – 4.1.x (tested on 4.1.0.3 and 4.0.2.3 with the pdo driver), 3.0.x (tested on 3.0.5.0) or 2.3.0.2 (tested on PHP 7.0).
PHP — as your OpenCart version requires, from 7.0; no third-party libraries.
OpenCart taxes: for “VAT of the product” types the products need a tax class — the module takes the rate from it by the customer address.
Checkout: the default one (OpenCart 4 — one page, 3.x and 2.3 — step by step) and One Page Checkout (CatCode). Third-party checkouts that build totals themselves have not been tested.
Module languages: English, Polish, Romanian, German.
Version history
For OpenCart 4.x, 3.x and 2.3: container deposit as a separate order line; container types with presets for Poland, Romania, Germany and Austria and VAT by the country rule; “Deposit” tab…
Frequently bought with Deposit Return Fee for OpenCart
4 modules in one order — 40% cheaper than separately


Nova Poshta Premium — a Nova Poshta module for OpenCart 2.3, 3.x and 4.x

LiqPay — Card Payments for OpenCart 2.3, 3.x and 4.x

Telegram notifications and Viber/SMS for customers for OpenCart
Full module description
Deposit Return Fee for OpenCart adds the drink container deposit as a separate order line: the Polish kaucja (system kaucyjny), the Romanian SGR (garanție 0.50 lei), the German and Austrian Pfand. The “Deposit (N pcs)” line shows in the cart, at checkout, in the order, e-mail, invoice and customer account, and its VAT follows the country rule. One module for OpenCart 4, 3 and 2.3, no core edits.
Honestly about testing. The module went through full runs in clean stores on OpenCart 4.1.0.3, 4.0.2.3 (pdo driver), 3.0.5.0 and 2.3.0.2 on PHP 7.0: installation with the standard installer, real storefront checkouts with the order lines checked in the database — with a coupon, in a second currency, with options, with delivery to another country, with an order by a registered customer and a group without deposit, the order e-mail through a test mail server. The amount to pay equalled the sum of the lines every time. Third-party themes (Journal and others) and multi-store have not been checked yet — try it on your store with the 7-day Pro trial. Rates and VAT in the presets are starting values that the shop checks itself; this is not tax advice.
Running WooCommerce? There is a separate Deposit Return Fee for WooCommerce plugin: the deposit as separate lines in the classic and block cart, order, e-mails and invoices, with the same sets for Poland, Romania, Germany and Austria.
What the customer sees
- A note under the price: “+ 0.50 zł deposit” on the product page, with a link to your container return page. With Pro — also on cards in categories, search and the Featured, Latest and Bestsellers modules.
- A separate deposit line in the cart and at checkout: “Deposit (10 pcs)” or your own title in every store language (by default “Deposit”, “Kaucja”, “Garanție”, “Pfand” depending on the language). The number of containers follows the product quantity, so a quantity change in the cart changes the deposit too.
- The same amount in the order: in the new-order e-mail, the customer account and the invoice. With Pro the e-mail also has a paragraph on how many containers and where to return them.
- Nothing extra: no deposit when delivery goes to a country where this container type does not apply, and (with Pro) none for customer groups without deposit.
What the admin gets
- Container types: name in every language, amount in the store currency, VAT (no VAT / VAT of the product / tax class), “amount includes VAT”, countries, status. The PL, RO, DE, AT presets are added with one button without duplicates; if the store does not run in zł, lei or €, the amounts are converted at the OpenCart rate.
- Deposit per product — in the “Deposit” tab of the standard product form: the type and how many containers one unit holds (a can — 1, a pack of 6 cans — 6).
- Bulk assignment on the “Products” page: filter by name, model, SKU, EAN, MPN, category, manufacturer and type; assign to selected or to all found, remove the same way.
- A line in the order and invoice — a standard OpenCart totals line (code
cc_deposit), so it is on the order page, the printable invoice and in e-mails with no extra setup. - A per-type breakdown in every order: how much plastic, cans and glass, for what amount and with what VAT — for the report to the deposit system operator.
- Settings: line title in every language, show the number of containers, line sort order, which address sets the country (shipping or payment), the page with the return rules.
Countries and VAT: what the presets contain
- Poland: 0.50 zł — plastic bottle up to 3 l, 0.50 zł — metal can up to 1 l, 1.00 zł — reusable glass bottle up to 1.5 l (regulation of the Minister of Climate and Environment of 8.07.2024, Dz.U. 2024 poz. 1046). No VAT: the deposit is outside the taxable base.
- Romania: 0.50 lei per bottle or can from 0.1 to 3 l — plastic, glass, metal (SGR / RetuRO). No VAT.
- Germany: Einwegpfand 0.25 € — the amount already includes VAT, and the VAT rate is that of the drink (§ 31 VerpackG). At 19 % that is 0.2101 net + 0.0399 VAT in the order tax line.
- Austria: Einwegpfand 0.25 € since 1 January 2025 on plastic and metal from 0.1 to 3 l. No VAT.
Rates and VAT here are presets, not tax advice. They are starting values from sources as of October 2026. The shop checks them itself (together with its accountant and the deposit system operator) and changes the rate, VAT and countries of each type when needed. The module shows the same reminder in the admin next to the presets.
Pro: containers by option, a line per type, groups without deposit, CSV and a report
- Several lines per product: 20 bottles + the crate itself, a bottle + a box.
- Deposit by option value: one product “Woda 0,5 l” with the option “single / 6-pack / crate” — each value has its own number of containers that replaces the product lines.
- A line per type: “Kaucja – butelka plastikowa (6 szt.)”, “Kaucja – puszka (6 szt.)” instead of one shared line.
- Notes on cards in categories, search, specials and modules.
- A paragraph in the new-order e-mail: how many containers and where to return them, in the order language.
- Customer groups without deposit — for wholesale and HoReCa customers who settle containers separately.
- CSV: export and import of assignments by SKU, EAN, MPN, model or product ID; unknown codes and types are listed, nothing is guessed.
- Report: containers and deposit by type for a period and order statuses, with CSV export.
How it works — step by step
- Add your country’s preset on the container types tab (or create your own types) and check the VAT.
- Assign the deposit to products: in bulk by category or manufacturer, or in the “Deposit” tab of the product form.
- The customer sees “+ 0.50 zł deposit” under the price and a separate deposit line in the cart.
- They check out: the deposit line and its VAT are written to the order next to the products and shipping, and the amount to pay includes them.
- The e-mail, the invoice and the order page in the account show the same line; the module stores the breakdown by container type.
- With Pro — at the end of the month a report on how many containers of each type were sold, for settling with the deposit system operator.
Under the hood
- Order Total extension: the OpenCart cart, checkout and order call the module themselves, like shipping or a coupon, so the deposit line appears wherever OpenCart shows totals.
- VAT in the tax lines: for a “VAT of the product” type the tax is calculated at the rates of the product tax class and added to the same “VAT 19 %” / “VAT 7 %” lines as the products; the deposit amount in the order is net, like the other OpenCart lines.
- OpenCart events and own tables (
cc_deposit_type,cc_deposit_product,cc_deposit_option,cc_deposit_order) — no core file edits and no OCMOD. - The breakdown follows the order: if the order has no deposit line (group without deposit, another country), the breakdown and the report do not count it either.
- Uninstalling removes the events and keeps types and assignments; “Delete data on uninstall” removes the module tables too.
Installation
- OpenCart 4: Extensions → Installer → upload
cc_deposit.ocmod.zip(do not rename the archive) and click “Install”. OpenCart 3: Extensions → Installer →cc_deposit-oc3.ocmod.zip. OpenCart 2.3: copy the contents of theupload/folder fromcc_deposit-oc2.ocmod.zipto the store root (FTP or the hosting file manager). - Extensions → Extensions → type “Order Total” → CatCode Deposit Return → “Install”, then “Edit”.
- Container types tab: your country’s preset, check the amounts and VAT.
- Assign the deposit to products and place a test order.
- For Pro: the “Licence” tab — the key from the e-mail after payment or the 7-day trial.
Questions
about the module
Didn't find the answer? Message us on Telegram and we'll reply within a business day.
Does a coupon reduce the deposit?
No. The deposit is a separate order line, and the OpenCart coupon takes its discount from the products only. We checked this with a real order and a 10 % coupon: the discount came from the products only, the deposit in the order was in full, and the amount to pay equalled the sum of the lines.
How does the module calculate VAT on the deposit?
The way you set the container type. Poland, Romania and Austria — no VAT (that is what the presets use). Germany — 0.25 € already including VAT at the rate of the drink: at 19 % the order gets 0.2101 net and 0.0399 VAT in the tax line. You can also choose a fixed tax class. The presets are starting values from sources as of October 2026 that the shop checks itself, not tax advice: your accountant has the final word.
The store runs in złoty but the customer sees prices in euro — what happens to the deposit?
Type amounts are stored in the default store currency, and the customer sees the deposit in the selected currency, just like prices. The order stores the deposit in the store currency, while the e-mail and the admin show it in the order currency. Checked with an order: store in PLN, customer in EUR.
I sell the same drink as a single, a 6-pack and a crate — what do I do?
In Pro the deposit can be set on an option value: "6-pack" — 6 cans, "crate" — 20 bottles + the crate itself. For the selected value the deposit replaces the product lines, other values use the product deposit. Checked in a real order with two different options of the same product.
I also sell abroad. Will the deposit be charged to customers it does not apply to?
Every container type has a list of countries. The Polish deposit is charged only for delivery to Poland (or by the payment address — your choice). An order shipped to Germany did not get the Polish deposit — we checked it.
Wholesale customers settle containers separately. Can I skip the deposit for them?
Yes, Pro has "Customer groups without deposit". A customer in such a group sees no deposit in the cart or under the price, and their order has no deposit line. Regular customers keep paying the deposit at the same time.
What happens when the Pro trial ends?
The deposit keeps being charged exactly as set up, including the lines and options saved during the trial: it is a legal charge, and the shop must not suddenly stop collecting it. Only editing the Pro settings pauses. The OpenCart licence is bought once and is valid forever.
Does the module change OpenCart files?
No. It is a standard Order Total extension plus OpenCart events, without core patches or OCMOD modifications. Uninstalling keeps your types and assignments (in case you reinstall); with the "Delete data on uninstall" option the module tables are removed too.
No reviews yet. Be the first.
No questions yet. Ask one — we answer within 24 hours.
Not quite what you are looking for?
We build custom modules for WordPress, WooCommerce, OpenCart and Shopify. Tell us about the task and we'll prepare an estimate.
Order a custom module
Buying the module
—



