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.