Recently we had the opportunity to deeply research a WooCommerce multi country setup. This blog post goes into some details of what it takes to create such a website, what are the pitfalls and approaches.
We were looking at 200K-500K USD sale on the website. The requirement were quite extensive, but the most important of all was multilingual nature of the website. Client wanted their website to be in many languages. Each country or region should see the website in their own respective language. On closer inspection this requirement goes way beyond a simple translation of pages and descriptions. I will discuss this in detail providing solutions later in the post.
Other requirement included shipping integration, discount codes and bogo sales, promotional emails, and other usual pieces of a ecommerce website.
First of all, the client wanted to have different prices for different countries. This was not a simple conversion of the currency, but a need to provide different price based on business criteria and priorities like supply and demand.
After that came the page customizations for language. Beside the usual cosmetic enhancement, which are needed based on language, in this case we needed to also adjust functional pieces as well. For example, shipping in US are handled by UPS, while in Europe the shipment partner preferred to be DHL.
Payment option was another thing that needed to be different based on the country. We would like to use Stripe as payment partner, but some of the countries didn’t have support from Stripe, so we needed to look for other options. Finding the options was not a problem in WooCommerce ecosystem, but making the page aware of the language and switching the payment provider was something that had to be done.
Communication in different languages is more than the translation of the pages and description. Receipts, promotional email, and all other user communications should happen in the customers respective language.
We found two different approach to solve this problem, each one with its own challenges.
The first approach is what immediately comes to mind, use a multilingual plugin to translate the products and respective information.
WeGlot is one of those plugins which looks very mature and promising. This plugin translates your products to almost any language that you want. Not only that but, it can also do that automatically if you wish so. This is very useful if you are on a low budget, and need to setup a website fast.
Another useful plugin to customize your products price and discounts is Discount Rules. This plugin lets you define rules for the discounts on different products, and can be easily applied to multiple language and countries to define separate discount schemes.
For the shipping we found Conditional Shipment and Payments plugin. With this plugin you can define rules to include and exclude shipment and payment from different pages. You can define all the shipment and payment methods, and based on the country and language of the user, exclude undesirable methods from page.
In general this approach is doable, but needs many plugins to work hand in hand to deliver the website you want. All the plugins should be compatible with each other to deliver a good user experience and solid website to the end user. This is usually easier said than done, and you need a professional team to make this work.
The other approach is to go to completely different direction. Treat different languages as different websites altogether. We simply setup as many website as we have languages.
With this approach, we are free to setup each website with different plugins as necessary. Each website will have it’s own respective plugins, payment methods, and the rest. We don’t have to install nearly as many plugins as we needed for the previous approach, and if we did, the situation is not complicated because of multilinguality.
Of course, the down side of this is that, well, we have to maintain multiple websites. There are going to be aspects of the websites that we wish we could change together. Over all design element of the website has to be synchronized, to start with. It is easy to start with a website and copy it to create others, but it might not be as simple to change them all together afterward.
Multi-site Wordpress is the perfect solution for this. Using multisite we can easily create many website, and even copy one to another. On top of that Multisite, you can use Multipress plugin. This is a fantastic plugin that can easily create and link different languages together.
Beside the appearance, stock management is another point of contention. Each website will have its own inventory, and they won’t reflect the actual inventory of you. That is if you use the same warehouse to fulfill all the orders. You can use something like Stock sync to automatically sync the inventory between all the websites, but again we are at the plugin patching realm.
This is as far as we go in this post. Other aspects you might want to explore before deciding for a solution is accounting and customer relationship. Accounting might have the same problem as stock management, but to be honest, selling goods in different currencies and different countries, you will need to think about accounting carefully. CRM is also another area that you need to decide if you want one pool of customers, or do you prefer to keep the customers of one language/site separate from other sites.