Product Deposit: charge deposits automatically, show them clearly
Description
Highlights
- The deposit shows on the product page, not just in the cart
- Maintain deposit rates centrally through a few refund types
- Set up a category once, every product below picks it up
- Show returnable deposits without VAT when you need to
- On or off per sales channel, your data stays where it is
Features
- Create refund types under Catalogues, Refund System: name, description, image, active switch
- Set refund type and deposit price per product in the "Refund" custom field tab
- The deposit amount is multiplied by the ordered quantity automatically
- Mirror the deposit settings of a category to every product below it in one click
- Mirroring includes the products of all subcategories
- Deposit shown below the price on product pages, in listings and CMS elements
- Indented deposit line per product in the cart, switchable in the settings
- Combined deposit item shown with the tax rate or as a tax-free amount
- Deposits appear in order, customer account, confirmation email and documents
- "Tax-free reusable deposit" switch per refund type, off by default
- Link a refund type to a real product of your shop, optional
- Decide in the settings whether vouchers apply to deposit items
- Voucher discounts can never push the basket total below zero
- Deposit items carry no delivery time and no shipping cost calculation
- Names and descriptions of refund types can be maintained per language
About the Extension
A customer puts six crates of mineral water in the basket. The shop shows one price, the doorstep delivery costs another. The difference is the deposit, and nobody saw it coming. You pay for that with support tickets, cancelled orders and a rocky conversation about price transparency.
The problem
A deposit does not belong inside the product price. It is part of what the customer pays, but it is not the value of the goods, and people want to know which part is which. Without a tool you end up writing the deposit into the product description, hiding it inside the price or keeping a spreadsheet next to the shop. Change one deposit rate and you edit hundreds of products by hand. Then somebody asks whether returnable deposits carry VAT, and the fun really stops.
The solution
You define once which refund types exist in your shop: "Reusable Bottle 0.5l", "Beverage crate", "Transport container". On each product you pick the matching refund type and enter the amount. The plugin does the rest. It shows the deposit on the product page, adds it to the cart as a separate item and includes it in the order total. No theme work, no code.
What's in it for you
Customers see the deposit before they buy. The name of the refund type and the amount sit right below the price, for example "excl. £0.15 Refund". In the cart it becomes its own line. No surprise on the doorstep, no ticket in your inbox.
You maintain deposit rates in one place. A handful of refund types covers your whole range. The amount belongs to the product, the wording and the tax treatment belong to the refund type. Edit the refund type and the change applies everywhere.
Whole categories are set up in one go. Enter refund type and deposit price on the category, then click "Mirror settings to articles". Every product underneath picks up the values, subcategories included. An afternoon of clicking turns into two clicks.
Returnable deposits can be shown tax-free. Switch on "Tax-free reusable deposit" per refund type. The deposit then enters the total without VAT while the product itself is taxed as usual. The default is off, so it stays your decision.
Vouchers do not eat your deposits. You decide whether discounts may reduce deposit amounts. Switch that off and voucher discounts are capped at the basket value excluding deposits. The total can never drop below zero.
The deposit can be a real product. Link a refund type to a product from your shop and the deposit lines become real product line items. Vouchers, promotions and your reporting then treat the deposit properly, and your figures show how much deposit you moved. It stays optional, and the cart looks the same either way.
How the plugin works
You manage refund types in the administration under "Catalogues → Refund System": name, description, display image, active switch, tax treatment and the optional linked product. On products and categories the plugin adds a "Refund" tab to the custom fields, holding the refund type, the deposit price and a "CashBack" switch that suppresses the deposit for a single product.
In the shop the deposit shows up in three places: below the price on product pages and in listings, in the cart as an indented line per product plus one combined deposit item, and in the finished order. From there it travels into the order confirmation email, the customer account and the documents Shopware generates. Shopware charges no shipping on the deposit, and the deposit carries no delivery time.
Typical use cases
Drinks retailer: crates, bottles and kegs carry different deposit rates. Three refund types are enough, the amounts live on the products.
Brewery or farm shop shipping direct: a swing-top bottle plus the crate quickly adds up to a two-figure deposit. Customers see the split before checkout instead of on the invoice.
Catering supplier running B2B and B2C: the consumer channel shows the deposit, the trade channel has the plugin switched off. Same products, two behaviours.
Dairy or anything shipped in reusable containers: reusable packaging gets its own refund type with tax-free treatment, agreed with your accountant.
Technical facts for your IT team
Shopware 6.7, PHP 8.2 or newer. The plugin creates its own database tables for refund types and their translations. Existing Shopware tables stay untouched; the assignment on products and categories runs through a dedicated custom field set.
The plugin sends no data to external servers. It processes no personal data and sets no cookies of its own. Refund types, amounts and settings stay in your Shopware database.
Price resolution in listings and CMS elements loads the required deposit data in batches and keeps it for the duration of the request instead of querying per product. User roles get a "Refund System" privilege area covering view, edit, create and delete. On uninstall Shopware asks whether the plugin data should be kept: say yes and refund types and custom fields are ready again after a reinstall, otherwise tables, custom fields and configuration are removed.
To be honest
The plugin charges deposits, it does not run a return scheme. Credit notes for returned bottles, deposit vouchers or a returns workflow in the customer account are not part of it. Whether returnable deposits may be treated as tax-free in your case is a tax question no plugin can answer for you. The switch implements what your accountant decides. And if you sell exactly one product with a deposit, a surcharge in the price will probably do. From the second type of packaging onwards the setup pays for itself. Try it in your staging shop and see.
Legal notice
We accept no liability for legal requirements. Please check the use of this plugin with a qualified legal advisor.
A customer puts six crates of mineral water in the basket. The shop shows one price, the doorstep delivery costs another. The difference is the deposit, and nobody saw it coming. You pay for that with support tickets, cancelled orders and a rocky conversation about price transparency.
The problem
A deposit does not belong inside the product price. It is part of what the customer pays, but it is not the value of the goods, and people want to know which part is which. Without a tool you end up writing the deposit into the product description, hiding it inside the price or keeping a spreadsheet next to the shop. Change one deposit rate and you edit hundreds of products by hand. Then somebody asks whether returnable deposits carry VAT, and the fun really stops.
The solution
You define once which refund types exist in your shop: "Reusable Bottle 0.5l", "Beverage crate", "Transport container". On each product you pick the matching refund type and enter the amount. The plugin does the rest. It shows the deposit on the product page, adds it to the cart as a separate item and includes it in the order total. No theme work, no code.
What's in it for you
Customers see the deposit before they buy. The name of the refund type and the amount sit right below the price, for example "excl. £0.15 Refund". In the cart it becomes its own line. No surprise on the doorstep, no ticket in your inbox.
You maintain deposit rates in one place. A handful of refund types covers your whole range. The amount belongs to the product, the wording and the tax treatment belong to the refund type. Edit the refund type and the change applies everywhere.
Whole categories are set up in one go. Enter refund type and deposit price on the category, then click "Mirror settings to articles". Every product underneath picks up the values, subcategories included. An afternoon of clicking turns into two clicks.
Returnable deposits can be shown tax-free. Switch on "Tax-free reusable deposit" per refund type. The deposit then enters the total without VAT while the product itself is taxed as usual. The default is off, so it stays your decision.
Vouchers do not eat your deposits. You decide whether discounts may reduce deposit amounts. Switch that off and voucher discounts are capped at the basket value excluding deposits. The total can never drop below zero.
The deposit can be a real product. Link a refund type to a product from your shop and the deposit lines become real product line items. Vouchers, promotions and your reporting then treat the deposit properly, and your figures show how much deposit you moved. It stays optional, and the cart looks the same either way.
How the plugin works
You manage refund types in the administration under "Catalogues → Refund System": name, description, display image, active switch, tax treatment and the optional linked product. On products and categories the plugin adds a "Refund" tab to the custom fields, holding the refund type, the deposit price and a "CashBack" switch that suppresses the deposit for a single product.
In the shop the deposit shows up in three places: below the price on product pages and in listings, in the cart as an indented line per product plus one combined deposit item, and in the finished order. From there it travels into the order confirmation email, the customer account and the documents Shopware generates. Shopware charges no shipping on the deposit, and the deposit carries no delivery time.
Typical use cases
Drinks retailer: crates, bottles and kegs carry different deposit rates. Three refund types are enough, the amounts live on the products.
Brewery or farm shop shipping direct: a swing-top bottle plus the crate quickly adds up to a two-figure deposit. Customers see the split before checkout instead of on the invoice.
Catering supplier running B2B and B2C: the consumer channel shows the deposit, the trade channel has the plugin switched off. Same products, two behaviours.
Dairy or anything shipped in reusable containers: reusable packaging gets its own refund type with tax-free treatment, agreed with your accountant.
Technical facts for your IT team
Shopware 6.7, PHP 8.2 or newer. The plugin creates its own database tables for refund types and their translations. Existing Shopware tables stay untouched; the assignment on products and categories runs through a dedicated custom field set.
The plugin sends no data to external servers. It processes no personal data and sets no cookies of its own. Refund types, amounts and settings stay in your Shopware database.
Price resolution in listings and CMS elements loads the required deposit data in batches and keeps it for the duration of the request instead of querying per product. User roles get a "Refund System" privilege area covering view, edit, create and delete. On uninstall Shopware asks whether the plugin data should be kept: say yes and refund types and custom fields are ready again after a reinstall, otherwise tables, custom fields and configuration are removed.
To be honest
The plugin charges deposits, it does not run a return scheme. Credit notes for returned bottles, deposit vouchers or a returns workflow in the customer account are not part of it. Whether returnable deposits may be treated as tax-free in your case is a tax question no plugin can answer for you. The switch implements what your accountant decides. And if you sell exactly one product with a deposit, a surcharge in the price will probably do. From the second type of packaging onwards the setup pays for itself. Try it in your staging shop and see.
Legal notice
We accept no liability for legal requirements. Please check the use of this plugin with a qualified legal advisor.
Details
- Available: English, German
- Latest update: 11 August 2026
- Publication date: 23 December 2020
- Version: 6.7.1
- Category: Checkout / Cart process
Resources
Reviews (2)
Average rating of 4.75 out of 5 stars
Sehr hilfreich!
Average rating of 4.5 out of 5 stars
Super Lösung für alle die mit Pfand zu tun haben
Average rating of 5 out of 5 stars
Support ist schnell und hilfsbereit wenn mal was klemmen sollte.
About the Extension Partner
BuI Hinsche GmbH
Partner Status
-
Shopware
Bronze Partner -
Shopware
Premium Extension Partner
Details
-
Ø-Rating:
4.3
Average rating of 4.3 out of 5 stars
- Partner since: 2014
- Extensions: 89
- Certifications: 2
Support
- Based in: Germany
- Speaks: German, English
- Response time: Quickly
- Frontend:
- Go to demo
- Name:
- standard@bui-hinsche.com
- Password:
- standard@bui-hinsche.com
- Frontend:
- Go to demo
- Name:
- standard@bui-hinsche.com
- Password:
- standard@bui-hinsche.com
Documentation / Installation / Configuration
If you have any questions or anything is unclear, write to support@bui-hinsche.com. We will help you quickly and without any fuss. You can also contact us directly through your Shopware account.
6.7.1 6.7.12.0 - 6.7.13.0
A deposit can be created as an item
6.07.00 6.7.0.0 - 6.7.13.0
adjustment to Shopware 6.7.0.0
6.06.01 6.6.9.0 - 6.6.10.22
bugfix:
- The customFields is fetched and it could be it is "Null" but it is used as array in the line 269.
- Add products on order edit.
6.06.00 6.6.0.0 - 6.6.10.22
adjustment to Shopware 6.6.0.2
6.05.06 6.5.8.10 - 6.5.8.19
Adjustment if NULL is not stored in DB
6.05.05 6.5.8.2 - 6.5.8.19
adaptation to elasticsearch
6.05.04 6.5.6.0 - 6.5.8.19
The deposit information is displayed in the listing of the search result.
Fixed an error related to notepad (combination).
Deposit return corrected
6.05.03 6.5.6.0 - 6.5.8.19
"+" is stored as a text module when the refund is specified. It can therefore be named individually.
6.05.02 6.5.4.0 - 6.5.8.19
Inheritance within the cateogy adapted for 6.5.4.x
6.05.01 6.5.2.0 - 6.5.8.19
various small bug fixes
6.05.00 6.5.0.0 - 6.5.8.19
adjustment to Shopware-Version 6.5.0.0
6.04.08 6.4.19.0 - 6.4.20.2
6.04.07 6.4.18.0 - 6.4.19.0
6.04.06 6.4.16.0 - 6.4.17.2
- feature: refund price becomes item price on return
- bugfix: button for prozessing available again
6.04.05 6.4.8.0 - 6.4.15.2
Improvement:
Processing adapted for complete category processing
6.04.04 6.4.7.0
adjustment to php 8.0
6.04.03 6.4.6.1
Bugfix: Cart-processor unter PHP 8
6.04.02 6.4.6.0
feature: ´refund can be assigned to a complete category
6.04.01 6.4.0.0 - 6.4.5.1
fixed error when uninstalling via CLI
6.04.00 6.4.0.0
- adjustment to Shopware 6.4.0.0
- refund is possible
6.00.01 6.3.4.1 - 6.3.5.4
The store operator has the option of deciding whether to display the deposit per item or as a total amount. In the case of individual listing, it is not possible to display the article image in the shopping cart. If the deposit is spent as a total amount, the article image will be displayed in the shopping cart.
6.00.00 6.3.0.0 - 6.3.5.4
first release for Shopware 6