Container Deposits
Version 1.1.0
September 25, 2026
Added
- Other plugins can now say what's packed inside a cart line, so the cans and bottles in a bundle or gift box are charged their deposit. Listen for
DepositCartService::EVENT_DEFINE_LINE_ITEM_CONTENTS. - The Container Deposit Type field can go on the product layout to cover every variant of a product. A deposit type field on the variant layout still wins.
- The Container Deposit Type field can be queried with GraphQL.
- Variants have a
containerDepositfield in GraphQL with the deposit type, containers, unit deposit and the text to show beside the price. formatAmount()writes sterling amounts under 1 as pence, andminorUnitSuffix()returns the suffix it uses.
Changed
- A discount's minimum purchase total and quantity are now checked without the deposit lines.
- Deposits no longer count as shippable, so they're left out of shipping rules' category checks.
- A deposit type that's still assigned to a product or variant can't be deleted.
- Deposits are left alone on an order saved with recalculation switched off.
- The example receipt's TOTAL is now the order total, with shipping, discount and tax rows above it when the order has them.
- Uninstalling the plugin now removes the deposit purchasables and the "Container Deposits (No VAT)" tax category.
- The installed package no longer includes the documentation site or the test suite, so it's about a third of the size.
Fixed
- A product posted to the cart with a
_depositoption is no longer mistaken for a deposit line and dropped from the cart. - Deposits are recalculated when Commerce drops a cart line or cuts its quantity to the stock left.
- Carts and orders with a custom line item no longer fail to save, and their receipts no longer error.
- Deposits keep their full amount in every store when a promotional catalog pricing rule is running.
- Deposit type validation errors now show on the edit screen.
- A blank or non-numeric amount is now rejected instead of saving as 0.
- Deposit amounts in the field's dropdown are shown in the store's currency.
formatAmount()no longer writes amounts in currencies like Swiss francs in cents.- A warning is logged when the no-VAT tax category is missing and deposits fall back to the default one.
- Reinstalling over tables left behind no longer adds their indexes and foreign keys twice.
- Deleting a deposit type on the deposit types screen now moves keyboard focus to a sensible row or button instead of dropping it on the page.
- The amount shown beside a deposit type in a preview now meets contrast requirements.
Security
- A customer can no longer lower their deposit by posting a cheaper deposit type's line or changing a deposit line's options.
- Deposit purchasables can no longer be added to a cart directly.
Version 1.0.1
July 5, 2026
Fixed
- Deposit types with a €0.00 amount (e.g. a promotional "free return" tier) no longer vanish from the cart.
- Changing a product's quantity in the cart now reliably updates the matching deposit line item's quantity.
- Creating a deposit type with a handle that's already taken now shows a clear validation error instead of a server error.
- A deposit type that fails to save properly no longer gets stuck in a broken state where it can't be assigned to products.
- Managing deposit types no longer needs the "Allow admin changes" setting turned on, so you can add, edit, and delete deposit tiers on a locked-down production site the same as anywhere else.
Changed
- Adding a new site to a multi-site install no longer waits around for deposit products to sync across every site; that now runs in the background via the queue.
- Removed the unused "reorder" action for deposit types; it wasn't exposed anywhere in the control panel anyway.
- The example invoice and receipt templates are now fully translatable: every label used to be hardcoded in English.
- Improved accessibility of the deposit types list and the example invoice/receipt/notice templates: a proper accessible label on the delete button, correct table headers for screen readers, and a semantic marker on the mandatory deposit notice.
Version 1.0.0
June 4, 2026
Added
- Initial release