Sales in many countries
Expanding from one regional market to another or to multiple markets requires additional functionality in your solution. While many client setups in Norce Commerce use different applications to provide specific business logic and configurations for each new market, it's also possible to add more rules and configurations to the same application. This approach enables you to start with a simpler setup and reuse much of the business logic for new markets.
Culture, currency, sales area and price list
In this context, the important entities are Cultures, Currencies, Sales areas, and Price lists.
The content and descriptions of each product are tagged with a CultureCode
, enabling it to handle multiple languages for the same products in Norce Commerce.
Price lists manage assortments and prices in a specific currency. Norce calculates and stores prices on the price list, as well as implements rounding rules if configured.
One or more currencies are set on the application and only one currency can be defined for a price list.
A product has a certain VAT rate for a specific sales area. All allowed sales areas are set up in the application settings.
Displaying products
In Norce Commerce, calling methods such as GetProduct
or ListProducts
return product information based on the settings of the application. For example, the Price lists set up determine the price and assortment. By passing in parameters to the method calls, Norce allows you to display data for other markets (if set it up in the application).
Examples of parameters include:
- CultureCode Overrides the primary (default) culture for the application and displays product texts in a different language, if available. You can also set a default language on the client, which will be returned if a translation isn't provided for a specific field.
- CurrencyId Overrides the currency on the price list. This currency conversion is done on-the-fly and is not rounded by the Norce Commerce Services, so you must handle it on your side. To convert one currency to another, the application must have all currencies added to its settings in the Admin UI.
- PriceListSeed A comma-separated list of price lists will be added to the (best) price calculation. If the application has no public price lists (or if the client setting “ When PriceListSeed is used in Storm API, disregard public price lists ” is set), only the price lists provided will be used for assortment and price calculation. If the price lists use another currency, they are automatically converted.
- CompanyId , CurrencyId A known customer can get their own prices and assortments by passing in their id´s. Just as above ( PriceListSeed ), price lists attached to the customer or company will override other settings.
VAT rate on product
The VAT rate displayed on a product in is determined by both the VAT codes that are set up and the available sales areas. The sales area is first determined and then the correct VAT code is selected:
-
Resolves Sales area,
- checks the price list for the sales area, if null then
- checks for the primary sales area from the application.
-
Resolves VAT code (VAT rate) from the sales area,
- checks the product for a VAT code, otherwise
- checks the primary category for a VAT code, otherwise
- uses the primary VAT code for the specific sales area.
Set up Sales areas and VAT rates in Admin
The Admin panel in Norce Commerce allows you to set up sales areas and their corresponding VAT rates for each application. By default, products in each sales area will have the default VAT rate set by Norce Commerce. However, you can modify these rates on a category level, which will affect all products that have that category set as their primary category. Additionally, you can also override the sales area settings for individual products.
Add sales areas to the application
- Add sales areas.
Until the customer selects their country, a rate (typically 0%) can be displayed on all products using the "Europe" sales area.
- Add VAT codes (rates) to each sales area.
Each sales area can have multiple VAT codes with specific rates. Additionally, it is possible to modify the name of the VAT code and add a new code to the sales area.
Set VAT rates to Category
In the case of products that do not fall under the Standard VAT rate (the primary rate set under application settings), it is possible to change the default rate for an entire category.
- Go to Categories and choose a category.
Upon opening the application, the default Sales Area is displayed first, along with the inherited default VAT rate from the settings. To modify the rate, click on the arrow to unlock the value (turning it white) and choose a new value from the drop-down list.
- Unclick the inheritance and change the rate.
- You also have the option to expand the choices and view all active sales areas for the client, allowing you to modify any rates as needed.
Set VAT rated to a product
It is also possible to assign VAT rates directly to individual products. This can be done through the Admin UI, using the same process as with categories. However, the most frequently used method of assigning rates to products is through data imports or integrations. With Norce Commerce Connect, VAT rates can be imported for each sales area using ImportProducts
.
Note
In the Admin UI, the VAT rates are shown on the price list tab. However, it is important to note that these rates are not directly attributed to any specific price list, in reality, they remain the same across all price lists. This presentation is purely for user convenience.
Baskets for different sales areas (VAT regions)
When you create a basket (or update it) you can set the sales area to any other sales area that has been set up in the Application Setting (default is the primary sales area for the application). This function allows for the use of different VAT rates for different customers in the same application. Here is how the VAT rate is determined:
-
Resolve Sales area
- Checks if the basket overrides the sales area, otherwise
- Checks for the primary sales area from the application
-
Resolve Vat code (rate) from the sales area
- Checks product for vat code, otherwise
- Checks the primary category for a vat code, otherwise
- Uses the primary vat code for the specific sales area
Purchasing from another country
Note
Different PSP's handle payments differently, and Norce Commerce tries to hide these differences by (for example) streamline payment parameters, to reduce the risk of proprietary implementations for each PSP integration. However, it's important to note that some PSP's may have unique features that are supported by the adapter. Make sure to consult the PSP adapter documentation for more information.
Most Payment Service providers need to know from which country the purchaser is. If it's not the same as the default country of the Application you can pass in the CountryCode as a payment parameter. Doing so will enable the PSP to adjust the purchase country accordingly
Note
Note that some PSP's (usually form-based payment providers) may not permit changes to the purchase country once the payment process has begun. As a result, it may be necessary to determine and confirm the correct country of the purchaser before initiating the payment process.
Adding sales tax from external service
Some markets don't work with VAT rates on products. Instead, they have a sales tax calculation for each specific purchase. Unfortunately, Norce Commerce does not have a built-in feature to perform such sales tax calculations. However, there are third-party services available that can provide this calculation for different markets, such as the US.
To incorporate sales tax calculation into your Norce Commerce setup, you can use the built-in product type called Sales Tax. This is how you set it up:
-
Create a product in your Norce product catalog and set its type to
SalesTax
. - In the checkout process, call the third-party service that performs the sales tax calculation, and provide them with all the information they need (buyer/seller addresses, basket etc.).
- Add the tax to the basket by inserting the sales tax product as a BasketItem and set the manual price to the sales tax amount.
- Proceed with the payment process as usual.
Selling without VAT
Norce Commerce provides the option to display and sell products without VAT by using a sales area that has a 0% VAT rate. Essentially, this means that Norce processes all sales as if they include VAT, but in this case, the VAT rate is set to zero.
Some common use cases
Selling to another country from a “home” market
When selling to another country from a "home" market, you can follow these steps to ensure correct VAT calculation:
- Provide customers with the option to choose their country during the checkout process (or already when adding the first item to a basket).
- Based on the selected country, create or update the basket to the correct sales area that corresponds to that country's VAT rules.
-
Pass in
CountryCode
as a payment parameter to the payment process.
Selling to customers without VAT
When selling to customers or companies who are eligible for VAT-free purchases:
- Create or update the basket to a sales area with a 0% VAT code in the checkout (at the latest). This will ensure that the payment and purchase are processed using a 0% VAT rate.
You can indicate whether a customer or company is eligible for VAT-free purchases through a customer flag or a similar system.
Selling to the world adding correct VAT in the checkout
- Allow visitors to choose their currency and language or optionally, display prices without VAT on listings and product pages.
- Create (or update) baskets to the correct sales area in the checkout (at the latest). The payment and purchase are then processed using the chosen VAT and currency.
-
Pass in
CountryCode
as a payment parameter to the payment process.
Note
Note that before implementing these steps, it's important to confirm that your Payment service provider supports the currencies and markets you plan to sell to. Additionally, check the adapter documentation provided by Norce Commerce to ensure compatibility.
Selling with sales tax added in the checkout
- Determine whether the customer should use the sales tax calculation. You can either have an application set up for this business (with a sales area using a 0% VAT rate), or you can choose a sales area with a 0% VAT rate in the checkout.
- Read the previous section on sales tax products for further information.