---
title: "Multi-Site & Multi-Store"
date: 2026-06-13T16:10:00+01:00
author: John Henry Donovan
canonical_url: "https://johnhenry.ie/plugins/container-deposits/docs/guide/multi-site-multi-store"
section: Plugins
---
esc

↑↓ to navigate↵ to selectesc to close

Menu On this page 

- [Return to top](#)

Documentation

Documentation

# Multi-Site &amp; Multi-Store

The plugin supports Craft's multi-site setup and Commerce 5's multi-store setup out of the box.

## How it works

### Deposit types are installation-wide

The list of deposit types (Small Container €0.15, Large Container €0.25, …) is shared across every site and every store in the installation. That matches how Re-turn actually operates: one scheme, one set of tiers, applied to whichever products the merchant flags.

If you need different deposit schemes per region (e.g. Re-turn for Ireland alongside DRS for another country), set up separate deposit types in the shared list and assign each product to whichever tier fits the market.

### Deposit purchasables propagate to every site

When you save a deposit type, the plugin creates (or updates) a hidden `DepositPurchasable` element. It propagates to **every enabled site** automatically via `getSupportedSites()`, so the cart sync can resolve the deposit purchasable no matter which store/site the shopper is on.

If you add a new site **after** creating deposit types, the plugin re-propagates all existing deposit purchasables to that site automatically via a queue job. No manual intervention needed, but propagation only completes once your queue is actually running - make sure a queue runner (cron, `queue/listen`, or your host's job runner) is set up, or the new site won't see deposit purchasables until the queue gets processed.

### Tax category is shared

Commerce 5 stores tax categories at the installation level (not per store), so the `Container Deposits (No VAT)` category created on install is automatically available to every store.

### Order site resolution

When a shopper adds a product to their cart, the order gets tied to the current site. The cart sync looks up the deposit purchasable in **that site's context**, so:

- Cart sync resolves the correct purchasable for the order's store
- Tax category lookup returns the same VAT-exempt category regardless of store
- Currency formatting respects the active store's currency

## What about per-store deposit values?

Deposit amounts are stored as a single decimal value (e.g. `0.15`). For multi-currency deployments, that's a limitation worth knowing about:

- **Ireland-only stores** (the typical Re-turn use case) - no issue. EUR is the store currency.
- **Multi-currency stores using Commerce's payment currency conversion** - the deposit shows at face value in the store's currency. €0.15 will read as "$0.15" in a USD store. Use payment currency conversion in Commerce to convert at checkout if you need that.
- **Truly per-currency deposit amounts** - not supported. Set up separate deposit types per region/currency if this matters to you.

## What happens if I delete a site?

Craft cleans up the `elements_sites` rows for the deleted site. The plugin's deposit purchasable elements stay on the remaining sites and keep working. Nothing to clean up on your end.

On this page
