The technical implementation of internationalization in e-commerce: What is the best way to go about it? What possibilities do the various shop and content management systems have to offer when it comes to organizing content and products in multiple languages? And what are the potential pitfalls?
In the first part of this series we are focusing on Magento. This shop system is aimed primarily at medium to large-sized companies and enjoys widespread distribution thanks to its free software and highly dedicated community. Magento expert Rico Neitzel from Büro 71a kindly agreed to discuss the shop system with us. Having worked as a developer and adviser in the Magento scene since 2006, he has a wealth of experience and background knowledge to share. In this article we discuss both the benefits and the drawbacks of Magento-based shop solutions.
Magento’s Layer Structure
Magento shops are structured in clearly defined layers. While this can be a challenge for inexperienced users, it provides the perfect conditions for retailers who want to offer different country or language versions of their shop. In principal there are 3 layers, or so-called scopes: global, website and store view. These are hierarchically structured, with lower levels inheriting the properties of the levels above.
The Global scope acts as the basis for all Magento installations and is where the default config is made. Where the shop is to be operated is specified here i.e. the legal basis of the shop. The admin area language can also be set globally. And this of course is where all of the products are created and managed.
The next scope, the website, is where the structure of the shop is created and various things concerning taxes and prices. A classic application is to create separate B2B and B2C websites at this level. The default settings for the prices (net/gross) can then be set separately for the two websites. In international shops, websites can be used to define base currencies. You can, for example, set up one website for the European market which calculates in Euros, and one for the American market which calculates in US Dollars. The shipping and payment options and taxes can then also be set at the website scope.
One layer that does not belong to the configuration levels (scopes) is the store. This is primarily used to assign categories to the different websites. It is therefore possible to set up different stores with different product ranges or structures.
The final layer is the so-called store view, which is responsible for managing the presentation of the shop. This is where it gets interesting for internationalization, because the presentation of the shop includes the output language, currency, the theme and a number of other features through which the various country and language versions of the shop differ.
By the way, it’s no mistake that currency can be configured at both the website and the store view scope. If you create an online shop that calculates in Euros at the website scope, that doesn’t necessarily mean that all store views should display Euros only. You may want to set up a store view for the Swiss market within the Euro website. The store view would then automatically convert the Euro prices into Swiss Francs. This way, customers see the relevant currency for their country, but in the background the calculations are being made in the base currency of the website – making life a whole lot easier for the retailer.
It’s when we get to pricing that Magento shows just how flexible it is in terms of catering to multiple countries. You can simply set the same net price for all countries and Magento will convert into the local currencies. The resulting gross price will depend on the value added tax rate in the respective country. Since Magento 1.9, you can also work in the opposite direction. You can set a fixed retail price and the software will calculate the net price required to achieve this gross value according to the value added tax. If neither of these options works for you, you can simply set the prices for each website manually and adjust them to the purchasing power of the various markets.
Our interview partner Rico Neitzel implements websites and PHP projects at Büro 71a. He provides Magento training in the field of e-commerce, advises companies and agencies on e-commerce projects and works as an author.
Calculating Shipping Costs Is (Not) an Art Form
Magento is similarly versatile when it comes to calculating shipping costs. The shop system offers a large range of options as standard: free shipping if the value of the goods exceeds a certain value, free shipping if the quantity of goods exceeds a certain value or free shipping in general. Alternatively, a fixed price can be set for all shipments or the shipping costs can be calculated according to the value of the goods, weight, quantity or target country. This allows you to take into account the fact that shipping to Switzerland is considerably more expensive than shipping to the Netherlands, for example. Simply create tables with individual values and Magento makes the calculations.But Magento wouldn’t be Magento if it stopped there. Modules like ShipperHQ from WebShopApps allow you to customize shipping cost calculations even further. You can, for example, specify that certain items are to be transported by forwarding agents only, that certain items are to be delivered to certain countries only or that goods must surpass a certain value-to-weight ratio in order to qualify for free shipping. E.g. a shopping cart with 5 kg worth of goods must have a value of at least EUR 50 to qualify for free shipping, whereas 10 kg worth of goods must have a value of at least EUR 100. All of this can be configured completely freely.
Translations with a Safety Net
The advantages of the hierarchical structure become very apparent when translating a Magento online shop. This is because when displaying content such as products or categories, the system goes through all levels of content one by one. The first level is the store view. If Magento finds a language file stored here, it displays it. But what if there is no entry for a particular text in the language file due to an incomplete translation or a technical error? Many shop or content management systems would display an error message or simply display nothing at all.
Magento, however, goes to the next level and searches for the corresponding entry. It finds what it is looking for by the global scope at the latest, because all texts are usually stored here in English. It is obviously not ideal if German customers stumble across English text in the German shop, but at least they can continue shopping. An error message or no output at all poses a much larger problem.
Translating user interface texts is even simpler. Simple CSV files – spreadsheet-like files that contain the original texts and their corresponding translations and can be edited with spreadsheet calculation software such as Excel or OpenCalc – are used for this purpose. These files can be found both in the theme and Magento’s core code. This means that you can customize the user interface texts however you like.
Fallback Solution for Images and Control Elements
The same principle applies to images and other graphic elements such as buttons and forms. If there is no element stored in the selected language version, Magento uses the next one up in the hierarchy. This not only serves as a fallback solution for missing data, it also simplifies processing and saves resources. You only need to translate and manage those elements that are actually used.
Part 2 – Problems and Conclusion
In the second part of this article, we outline the problems that can occur when using Magento and how to avoid some of the pitfalls. We also answer the question of how suitable Magento is for multilingual e-commerce projects.
We would like to thank Rico Neitzel from Büro 71a for taking the time to talk to us and for providing us with some interesting insights.
Last edited: 2018-01-08, Magento-Version 2.1.5
Author: Eurotext Editorial Team
We explain how internationalization works, provide tips for your translation projects and outline some of the technology and processes used. We also report on current e-commerce developments and cover a range of language-related topics.