After months of work, we’re finally ready with the first testing version of Shopp Multilingual. The plugin that allows running multilingual Shopp sites with WPML.
The plugin page includes usage instructions and the download link. In this post, I want to explain how it actually works.
Running a multilingual e-commerce site is a bit of a challenge (as our colleagues who use other content management systems have long discovered). There are two contradicting requirements:
- Allow translation of everything, and keep different languages in different URLs
- Give customers a fully localized experience, from the public store pages until the private account pages
- Maintain a single DB of products and inventory
To address these requirements, we use two different mechanisms in Shopp Multilingual.
The WordPress pages are translated as individual pages, per language. This is how WPML normally works to allow maximum flexibility between different languages.
The Shopp products and categories are translated with WPML’s String Translation mechanism. This means that a single product can be viewed in different languages. No matter in which language users order, it’s still the exact same product. There’s one inventory management and one tracking for products in any language.
But, WPML’s String Translation is difficult to manage. It’s going to be painful to check which fields, for which products, are translated, missing or need update.
The Shopp Multilingual plugin bridges this gap. It lists the products in WPML’s Translation Dashboard. You can choose which products to translate, to what languages and who will translate. This way, users don’t need to care what goes on behind the scenes.
Localized Client Account Pages
For a fully multilingual e-commerce site, you need several building blocks:
- WordPress pages that include the special Shopp pages (shop, cart, checkout and account)
- The Shopp products themselves
- The Shopp template files
The template files display user’s accounts. WPML will set the client’s language according to the checkout language. However, in order to display in the right language, the PHP in the templates needs to be localization-ready.
You need to wrap the texts in Shopp’s template files in GetText calls. First, copy the template files from Shopp to your theme (Shopp can do it for you). Then, tell Shopp that you’re using your local version of these templates. And finally, edit these templates and add GetText wrappings around all the texts.
Now that these templates are part of your theme, use WPML’s String Translation mechanism to translate them.
Want to Get Started?
You’ll need to have the recent version of WPML, including the Translation Management and String Translation modules.
Support for Shopp Multilingual went into the development version of Shopp. We recommend that you contact Shopp authors directly to obtain the most up-to-date version of Shopp.
Once you have these, hop over to the Shopp Multilingual page, grab the recent version, review any known issues and you can get started.
Let us know how it’s going!
My absolute favorite plugin ever.
Are there any examples of this in use?
As far as I know, not yet.