A guide to international expansion with Magento Commerce
One of Magento’s major advantages to international retailers is its multi-store functionality. This allows retailers to run several stores or channels from a single Magento installation or a single admin interface. Here we explore how to use Magento Commerce as a platform for international growth.
Magento’s multi-store functionality means that localised sites per market can be managed from a single admin interface while sharing the same backend and codebase. Localised sites can share customer data or be kept separate.
There are four levels in the Magento Store setup that are applicable here. These are:
- Store View
Each level affords some flexibility be it custom pricing, language, tax, or shipping.The admin interface allows you to create as many Websites, Stores, and Store Views as required from a single Magento installation.
Each provides varying flexibility and most international retailers on Magento will use a combination in order to deliver a localised, yet easily manageable, experience for their customers.
The three levels give you great flexibility when setting up your store, but it’s important to know the possibilities as well the limitations and then plan accordingly before you set up your Magento instance.
Note: Your inventory will be global across all Websites and Stores. If you require different inventories, third-party modules or customisations will be required.
Let’s take a closer look at the four levels:
This is your entire Magento installation and where you’ll set global / default configurations common for all stores. Below we’ve described typical settings that can be overridden on other levels. There are one or two settings that can only be done globally, as well as global elements depending on configuration:
- Inventory – with native Magento you can only have one inventory
- Price – if the scope for price has been set to global, a product can only have a global price
- Customers – if the customer sharing has been set to global, all websites will share the same customers
Websites sit at the top of the Magento set-up and refer to the domain you use. One website can have one or more stores (see below) and many websites can be used on a single installation. Separate websites should only be used when at least one of the following applies:
- Different prices across stores
- Different tax classes
- Different base currencies
- Different payment options
- Different shipping options
- Different customer accounts per country
For example, if you have many brands with different sets of customer data you may wish to set up a separate website for each brand. For example, womensclothing.com and mensclothing.com. In doing so, users will have to create an account for each website.
Stores / store groups
Stores refer to your product catalogue. One website can therefore have multiple stores. The root category is configured at this level which allows multiple stores under the same website to have different catalogue structures.
For example, you may wish to have a separate category for each type of clothing on your fashion website. A subdomain such as shoes.womensclothing.com could then be used.
Apart from root category, no other options can be defined at this level.
Each store can share the same look, or, if required, can have a completely unique design. All stores are accessible from the main admin interface and you can choose which elements remain the same and which are store-specific. With each store you can tailor user permissions so that the relevant staff can only access specific store data.
Store Views offer a primary advantage for international retailers as they enable localised content. At this level, you can localise content for different markets and adjust product titles and descriptions. The majority of international retailers use this level for language settings. For instance, you may have two separate Store Views under shoes.womensclothing.com – one in French and another in Spanish.
Using the four levels effectively will ensure that, regardless of their markets, your customers will find your site far easier to explore, and more applicable to their needs.
Configured correctly, your setup should also ensure your entire online operations are much easier to manage and localise while maintaining global control of all sites. You’ll also be able to provide different payment and shipping methods between markets and easily add or remove categories or products as required.
Multiple inventories / warehouses
A common merchant requirement, across both national and international commerce, is the ability to have multiple warehouses since a product will exist in multiple locations – each with different stock levels, naturally.
As with Magento 1, Magento Commerce does not currently provide multi-warehouse capabilities, but this is on the roadmap and is expected to launch within the next few product updates.
For now, you can achieve this through third-party modules via the Magento Marketplace, or you can develop your own multi-warehouse module as we did here at Inviqa for the Byredo Magento Commerce site.
Common Magento multi-store issues
Multi-store setup issues are usually connected with incorrect advice and poorly-executed features. Merchants often come to us with an existing Magento store riddled with performance and operational problems as a result of issues such as:
- Not using native Magento base price and display price functionality
- Poor implementation of multi-warehouse functionality
- Incorrect GeoIP setup; customers not ending up on the correct store
- International stores that don’t take the local market into consideration
- Incorrect set-up of tax calculations
- Cookie issues leading to customers seeing other customers’ baskets
The ability to change the theme of your site depending on the territory you’re selling in is important for our clients and other international retailers.
Magento gives you the ability of setting a theme down to a Storeview level native, and with Magento Commerce you have the benefit of the Parent/Child theme fallback.
This means you can build your overarching site/brand theme and use this as the parent theme, and then make local customisations in a child theme which you can apply to your local territory, whether that’s on a Website level or Storeview level.
Promotions are an important part of any ecommerce store. For stores looking at international expansion, Magento Commerce allows you to set promotion per website. When creating a promotional rule, you can choose whether this applies to either one or several websites.
In theory, however, you can also narrow this down to a Storeview level if you’ve used multiple stores. By being able to set different category root trees on a store level, and with a promotional rule that can target categories, you can have a promotional rule that only applies to one particular Storeview.
Where you’re managing multiple brands, markets, or both from one instance of Magento, you’ll need to consider the customer experience when switching between your sites.
Magento gives you the option of managing customers either at a global level, or at a website level. Managing your customers at a global level will mean that your customers are able to login to any of your websites with one username and password.
While this might be desirable for a site with multiple currencies, a company with multiple brands may instead choose to manage customers at a website level. For example, if you run an online fashion business that has both a dedicated t-shirt and handbag site, your customer will not expect to be able to log into both.
A customer who is registered at a global level will have a basket that reacts on a global level. However, the basket will still take into account those products within it which may be specifically assigned to a website and will remove these accordingly when switching between websites. Customers managed at a website level will not carry the contents of their basket from one website to the other.
When logged in, a user’s basket will remain persistent when they next log into the site (even from another device). Guest users have their basket saved against the session, and when they close the browser window, this session will be disconnected. (Head here to learn more about personalising customer experience with Magento Commerce).
Structuring product catalogue
Pricing and currency requirements can affect how you configure your Magento store setup, as we’ve explored above. But your product catalogue will also have a bearing on this.
Some merchants will have one product catalogue that serves multiple websites, while others will have more than one brand on the same Magento instance where some, or all, of the SKUs in the product catalog are different depending on the website.
Magento allows you to control product (SKU) visibility at a Website level so it will give you the ability to feed websites with different product sets whilst still maintaining all your products, settings, and orders in one Magento instance.
Product attribute management in Magento allows you to create custom attributes for your products in addition to the default set of attributes. When you create new attributes you can choose the scope of the attribute – Global, Website, or Store View – which gives you the flexibility to prepare your store for internationalisation.
You can also change the scope of existing (non-system) attributes if required to get your site(s) configured according to your requirements.
We’ve added two examples below which show the flexibility Magento gives you when it comes to localising your website with the use of Product attributes.
If you’re selling shoes on your website, you’re likely to have an attribute called Shoe Size.
Sizing for shoes is different in UK, EU and US, so if you’re selling to all these markets within the same Magento instance, you need to be able to present the consumer in your target market with the shoe size they’re used to seeing.
Using the scope of the attribute mentioned above, you can create a product attribute called Shoe Size which has the UK shoe sizes by default (5, 6, 7, and so on), for example, and you can then add corresponding sizes for US and EU against each size as per screenshot below.
If you don’t specify a particular size for a Storeview, the Storeview will pick up the default value in the Admin column (see screenshot below).
Above we showed you how you can display the value of a product attribute differently in various territories. In this example we’ll show you how you can set a product image specific to a territory.
By default in Magento, the three image attributes (Small Image, Base Image and Thumbnail) have all got the scope set to Storeview. This allow you to change the scope of a product to the UK storeview, for example, and to upload another image to the product and opt to use that.
You can also choose to exclude the default image, so that it doesn’t appear in your gallery.
Similarly, you can localise your product with product title, product description, and all other attributes you need to provide a localised experience to consumers in specific territory.
If we’re looking at currencies in the first instance, it’s important to note the difference between ‘taking payment in multiple currencies’ and ‘displaying your product prices in multiple currencies’.
These can be combined to provide your customers worldwide with prices displayed in their local currency while, at the same time, you (the merchant) receive the payment in your chosen ‘home’ currency.
Taking payment in multiple currencies
On a website level, Magento enables you to select the ‘Base Currency’ which will be the currency used when payments are taken.
For example, if you set the ‘Base Currency’ to British Sterling you’ll always receive the amount in British Sterling, regardless of the displayed currency your customer sees on your website.
This will be very important for merchants who have local warehouses and legal entities in more than one country so that the payment can be taken in the currency you deal with in that particular country.
This means that, if you’ve got a US, UK, and EU website, and would like to receive payments on these three websites in the respective currencies (US Dollars, GBP and Euro), you can use the ‘Base Currency’ setting for each of the three websites.
Displaying product prices in multiple currencies
In addition to this you can display your site in multiple currencies using the in-built currency rates functionality which allows you to set an exchange rate of your choice for each additional currency against your base currency.
You can either set your own Exchange rate or pull in exchange rates from an external service with the click of a button. Prices can also be managed manually on a product-by-product basis (per website).
Different prices across different territories
When you set up the website and store structure in Magento it’s also important to consider how you will be pricing your products at launch as well as in the future.
With Magento you can set the prices for products to either be set at a Global level or at a Website level, and this can be used effectively where you have a multi-national setup with different base currencies that require products to be priced differently.
Even if you only sell in one currency / one country you may have a requirement for separate websites with a pricing structure different to your main site – a ‘Private Sales’ site or a ‘B2B’ site, for example.
Another important factor for merchants trading globally is the ability to offer their website in several languages to make it more appealing to its customer base in their own country.
Magento gives you the ability to configure languages down to a storeview level, and gives you several possibilities as to how you offer the multilingual site(s) to the customers.
By default you can have a ‘language chooser’ bar displaying at the top of your website where a customer can select the French language, for example, and then be redirected to the French storeview. To set this up in Magento you set a specific locale for each one of your storeviews in the configuration of your instance.
In Magento Configuration you can also set a different URL for a store on a storeview level which means your various websites and storeviews can have unique URLs.
Multi-language admin for teams
Magento enables you to change the language of the admin interface to allow international employees to use the backend. This can be very useful if your store is being used across regions where employees speak different languages, and you can download language packs to provide the translated versions.
Once the user has logged out, it will then default back to the primary language.
When using a regional variation of your site, your Magento search will look for the attributes’ local value. The platform also allows you to go a step further to set up synonyms for the same item across different territories.
For example, should you have word such as ‘handbag’ in the UK, you can set up a synonym for ‘purse’ that can be used in America.
Providing the right payment options is a key part of internationalisation because different countries have different preferences.
Retailers in some European countries, for example, still have a lot of people wanting to pay by cheque or pay on delivery, which isn’t a trend we see here in the UK. Magento allows for things like this because it’s a global platform, used by retailers from all over the world.
As an example, we helped online fashion retailer Missguided to deploy Klarna in Germany since the payment gateway was increasingly popular in the country and provided features tailored to the German market.
Offering the right shipping option at the right time, and at the right cost, is becoming increasingly important in international ecommerce. For many years Magento relied on third-party modules to help provide merchants with the necessary flexibility and enhanced functionality.
To meet the demands of more flexible shipping management, Magento partnered with Temando in 2017 to create Magento Shipping. This provides Magento with much needed functionality including courier integrations for rates, tracking, and complex shipping rules.
Magento offers an enterprise-grade API that can connect with couriers globally, as well as connecting with third-party WMS, OMS, and ERP systems. This comes native to Magento 2.2 and has been available to use as a module from Magento 2.1.6.
An important aspect of all merchants’ day-to-day activity is to analyse the data gathered by their ecommerce platforms and analytics engines to find out what works well, what can be improved, and potential issues that need to be addressed immediately.
With Magento BI you get five pre-built dashboards comprising of 75 reports that will help you understand the performance across metrics such as revenue, AOV, and top customers.
You can combine the data from Magento and Google Analytics and use their SQL report builder and visual report builder to create new reports that provide merchants with the exact data they need.
Analysing data and understanding your customers’ behaviour is important when you’re selling in different territories since customers have different expectations that they’ll be used to in their home territories.
You can spot trends in behaviour in the data that you can use to adjust your marketing, functionality, shipping options, and payments options in order to increase AOV, revenue, and returning customers in specific markets.
Navigating international tax regulations can be one of the most daunting aspects of expanding overseas. While the legalities of adhering to the correct tax requirements can be tricky, Magento does simplify the process for you.
Natively to Magento you can set up tax rates for all your selling locations using Magento’s tax zone and tax rates functionality. The Magento platform also provides you with a flexible solution in terms of how you want your tax calculations performed and displayed to the customer.
This functionality is often enough for merchants that are starting to sell internationally, however if you’re a large merchant that has a large customer base outside your home territory, we recommend looking at specialist tax solutions such as Avalara’s AvaTax which provides a Magento integration.
Solutions such as AvaTax will provide you with more comprehensive tax solutions that provide accurate tax rates to your customers, and you can also offer customers landed cost / DDP (Delivered Duty Paid) which means neither you or the customer have to worry about the customs charges. This will all be baked into the product price and AvaTax (Avalara) will calculate how much you need to pay.
Using AvaTax or similar services will remove a lot of the taxation headache that comes with internationalisation and which we explore in our pocket guide to tax.
Magento Commerce provides better performance and scalability natively compared to Magento 1. There are several reasons for that; native support for Varnish is one of them, but the improvements go much deeper than that, as discussed in our tutorial about Magento Commerce performance.
Magento Commerce is more mature as an ecommerce platform and more complex, allowing you to scale your ecommerce store more easily. There’s the ability to split out Order Management, Product Management, and Checkout into separate sub-systems (databases) which increases the amount of transactions you can process. You also have native support for RabbitMQ message queue which you can use to improve the efficiency of your application – in particular where you have it integrated to multiple third-parties such as ERP, WMS, OMS, and PIM.
Common pitfalls can be avoided with good planning and a great technical team.
- Map out your architecture with all interactions and dependencies
- Ensure the architecture is suitable for the market you’re expanding into
- Ensure you map out the local requirements for each market you’re planning to expand into
- Understand your market. How do they commonly pay for goods? How fast do they expect items to arrive? Do they use the same terms as in your home market?
- Understand the legal picture. Does your target market have particular legal requirements in terms of what information needs to be provided to the customer? Stay within the laws!
Go ‘All Out’
- Don’t invest a ton of money in an untested market. Start small; your MVP could potentially be to offer your site in local language, with the ability to buy (shipped from your home market).
Tax, fees & returns
- Understand the tax implications of sending goods abroad
- Research how to deal with customer returns and offer your customer a good option to return if required – without breaking your margins
- Does your payment gateway support the local currency / transaction in this country?
CDN / site performance
- What’s your target market’s Internet maturity? Do they have good broadband connection? Do they have 3G or lower speed? How will your site perform for a typical user in the target market? Test it!
- Do CDNs such as Fastly or Cloudflare offer their services in the local market?
These are only a few of the many pitfalls we’ve seen merchants falling foul of, and we encourage good research ahead of an international expansion.
In this guide we’ve tried to present you with an overview of areas you need to consider if looking to grow internationally using Magento. There are many potential pitfalls along the way, and so we recommend you to sit down with your team and technical partner to clarify:
- The roadmap, including your target market & timeframe
- The local markets
- A backlog of user stories of what needs to happen to launch next market
- A Minimum Viable Product (MVP)
Ensure you include all parties that may have an interest or involvement with your international expansion – the likes of finance, legal, warehousing, marketing, and delivery teams. Ensure everyone is on the same page and has contributed their input to prime your online expansion for success.
Don’t be daunted by the list of possible pitfalls. Do your research and start small.