Skip to content

Currency Mixin


The CurrencyExchangeMixin class enabled plugins to provide custom backends for updating currency exchange rate information.

Any implementing classes must provide the update_exchange_rates method. A simple example is shown below (with fake data).

from plugin import InvenTreePlugin
from plugin.mixins import CurrencyExchangeMixin

class MyFirstCurrencyExchangePlugin(CurrencyExchangeMixin, InvenTreePlugin):
    """Sample currency exchange plugin"""


    def update_exchange_rates(self, base_currency: str, symbols: list[str]) -> dict:
        """Update currency exchange rates.

        This method *must* be implemented by the plugin class.

            base_currency: The base currency to use for exchange rates
            symbols: A list of currency symbols to retrieve exchange rates for

            A dictionary of exchange rates, or None if the update failed

            Can raise any exception if the update fails

        rates = {
            'base_currency': 1.00

        for sym in symbols:
            rates[sym] = random.randrange(5, 15) * 0.1

        return rates