Currencies

Currencies in Dynamicweb allow you to create and manage currencies related to the countries or economic zones in which you do business. You can then select the currency as the default currency on the Ecommerce settings of a website.

To create a new currency:

  • Go to Settings > Ecommerce > Internationalization > Currency
  • Click New Currency in the toolbar to open the Edit currency view (Figure 1.1)
Figure 1.1 Adding a currency to your solution

From edit currency view, you can:

  • Name the currency (the name can be localized to fit each of your languages)
  • Select a region in the regional info dropdown – if a region is selected here, the Settings section will be auto-filled by the system and will not be editable.
  • Set an exchange rate for the currency (in relation to your default currency)
  • Check the Default checkbox if you want this currency to be your default, or base, currency.
  • Select a rounding method for prices in the selected currency – if none are available, you must create them. Read more below.

If you selected a region from the regional settings dropdown, you have access to the regional settings. With these you can customize how positive and negative amounts are rendered – or use the default pattern. You can also choose to show the currency code instead of the symbol.

If you don’t use the region dropdown you have access to the Settings fields, where you can select a currency code, currency symbol, currency format and a payment code manually.

Exchange Rates

Exchange rates are defined in relation to the default currency and the base rate set on it – for example:

  • Your default currency is DKK – Danish Kroner
  • The base rate of DKK is set to 100

 Each additional currency rate is then defined by entering the amount of base currency units it takes to buy the base rate in the new currency.

  • US dollars – you need to spend 654 base currency units (DKK) to buy the base rate (100) in dollars
  • Turkish Lira – you need to spend 48 base currency units (DKK) to buy the base rate (100) in Turkish lira
  • Euros – you need to spend 744 base currency units (DKK) to buy the base rate (100) in Euros

Dynamicweb does not support decimal numbers for exchange rates – but if you need more precision you can always set the base rate to 1000 (=1 decimal) or 10000 (=2 decimals).

Yes, it’s ass backwards – but it is what it is :)

Prices in Dynamicweb are subject to changes – from changing exchange rates, taxes, VAT rates and so forth.

To combat weird prices, and to conform to currency-specific pricing practices (such as .99-prices), you can set up rounding methods and apply them to a currency.

To create a rounding method:

  • Go to Settings > Ecommerce > Advanced configuration > Rounding
  • Click New rounding in the toolbar to open the rounding method definitions (Figure 2.1)
Figure 2.1 Creating a rounding method

From here, you must:

  • Name the rounding method – it’s a good idea to make the name descriptive of the method, since you will be selecting it based on the name only
  • Select a methodup, down or nearest

For whole numbers (integers), you must:

  • Select a factor to round by and optionally an addition to add or subtract from the rounded price
    • Example: with the method Nearest and the factor 10, the rounding will be:
      134 → 130, 135 → 140, and 159 → 160
    • If you also set the addition to -1, the rounding will be:
      134 → 129, 135 → 139, and 159 → 159

For decimals, the number of decimal places is essential as it determines the size of the factor in relation to the total price. You must:

  • Specify how many decimal places you want to include
  • After that, select a factor to round by and optionally an addition to add or subtract from the rounded price
    • Example: with the factor 10 and decimal places set to 1 (e.g. 1.0), you will always get whole numbers (1.0, 2.0, 3.0)
    • With the factor 10 and decimal places set to 2 (e.g. 1.00), you can get 0.1, 0.2, 0.3 and so on

Once a method has been saved for the first time, you will have access to the test-area. This is very useful!

To use the test area (and remove some confusion about the rounding rules):

  • Enter an amount in the Amount-field
  • Click the play-button to see how the rounding method behaves

Once created, you can apply the rounding method to a currency by going to Settings > Ecommerce > Internationalization > Currency, editing the currency, and selecting the rounding method (Figure 2.2).

Figure 2.2 Applying a rounding method to a currency

You cannot apply two rounding methods to a single currency - if this happens for any reason, e.g. through custom code, neither rule will be applied.

database

These are the database tables related to internationaliation in Dynamicweb:

EcomCurrencies

Contains the currencies defined -> Settings -> Ecom -> Internationalization -> Currencies.

Field name Data type Length
CurrencyCode nvarchar 3
CurrencyLanguageId nvarchar 50
CurrencySymbol nvarchar 5
CurrencyName nvarchar 50
CurrencyRate float 8
CurrencyIsDefault bit 1
CurrencyCultureInfo nvarchar 50
CurrencyPayGatewayCode smallint 2
CurrencyRoundingId nvarchar 50
CurrencySymbolPlace int 4
CurrencyAutoId int 4
CurrencyPositivePattern int 4
CurrencyNegativePattern int 4
CurrencyUseCurrencyCodeForFormat bit 1

EcomGlobalIso

System lookup table for internationalization ISO data.

Field name Data type Length
IsoId int 4
IsoCode2 nchar 2
IsoCode3 nvarchar 3
IsoCountryNameDK nvarchar 255
IsoCountryNameUK nvarchar 255
IsoCurrencyCode int 4
IsoCurrencySymbol nvarchar 255
IsoVat float 8
IsoCultureInfo nvarchar 50
IsoDisabled bit 1

EcomRoundings

Contains setup data for rounding methods as defined in Settings -> Ecom -> Advanced configuration -> Rounding.

Field name Data type Length
RoundingId nvarchar 50
RoundingName nvarchar 255
RoundingModIntegerPart int 4
RoundingModDecimalPart int 4
RoundingModIntegerCorrection int 4
RoundingModDecimalCorrection int 4
RoundingMethod int 4
RoundingDecimals int 4
RoundingAutoId int 4

EcomCustomersSettings

Links a user (AccessUserId) with preferred currency, payment method and shipping method (CurrencyCode, PaymentMethodId, ShippingMethodId).

Field name Data type Length
SettingId int 4
AccessUserId int 4
PaymentMethodId nvarchar 50
ShippingMethodId nvarchar 50
CurrencyCode nvarchar 3