Skip to content

VAT Treatment

Irish Revenue treats deposits collected under the Deposit Return Scheme as outside the scope of VAT. This plugin enforces that by routing every deposit line item through a dedicated, no-rate tax category.

What gets created

On install, the migration creates a Commerce tax category:

Tax Category

FieldValue
NameContainer Deposits (No VAT)
HandlecontainerDeposit
DescriptionIrish DRS deposits - treated as outside the scope of VAT by Revenue.
Defaultfalse
Tax rates(none)

How it's applied

DepositPurchasable::getTaxCategoryId() returns the ID of the containerDeposit category. When Commerce calculates tax on the order, no rate matches the deposit line item, so no VAT is added.

If you delete the category

The override falls back to the store's default tax category - which probably is VAT-applicable. Re-running the install migration (or reinstalling the plugin) recreates the category.

International stores

The category and treatment are written specifically for Irish Re-turn but apply equally to any jurisdiction that treats container deposits as non-taxable (most do). If your jurisdiction treats deposits as VAT-applicable, edit the containerDeposit tax category and attach the appropriate rate - the plugin will pick it up automatically.

Reporting

Deposit line items show up in standard Commerce reports under their own SKU (deposit-<handle>), so you can reconcile what you've collected against what you owe to the DRS operator. The deposit purchasable description includes the deposit type name, making CSV exports human-readable.