CoreShop Currency Context
For CoreShop to determine the current currency it uses a concept called context and context resolver.
Context
Name | Priority | Tag | Description |
---|---|---|---|
FixedCurrencyContext | default | coreshop.context.currency |
Used for testing purposes |
StorageBasedCurrencyContext | default | coreshop.context.currency |
check if a currency has been changed during a frontend request |
CountryAwareCurrencyContext | default | coreshop.context.currency |
Mostly this context will apply since it will get the currency based on the current country context |
These Contexts take care about finding the correct currency for the current request.
Create a Custom Resolver
A Currency Context needs to implement the interface CoreShop\Component\Currency\Context\CurrencyContextInterface
.
This interface consists of one method called getCurrency
which returns a CoreShop\Component\Currency\Model\CurrencyInterface
or throws an CoreShop\Component\Currency\Context\CurrencyNotFoundException
To register your context, you need to use the tag: coreshop.context.currency
with an optional priority
attribute.