In this article · 14 sections
- What a multilingual online store is in CloudCart
- Translating a website: browser translator or a language version
- Which stores need a second language, and when
- How to add a second language: step by step
- How products are translated
- Currency and prices in each market
- How to run several stores from one admin
- Domain, hreflang and SEO of language versions
- How much a multilingual store costs in CloudCart
- Best practices for a multilingual online store
- Mistakes to avoid
- How to advertise and measure the new language version
- How an AI agent maintains language versions
- Frequently asked questions
In short: a multilingual website for an online store in CloudCart is built with the Multilang app. Each language gets its own language store with its own currency, prices, couriers and domain, while the catalog comes from your main store. Multilang copies products, machine-translates up to 9 fields per product, adds hreflang tags automatically, and Stores Sync keeps stock equal across stores.
This guide is for companies selling in or from Bulgaria that need more than one language: a Bulgarian store adding English for expats and foreign buyers, an English-first store run by foreign founders that needs a Bulgarian version, or a seller expanding to Romania and Greece. CloudCart, the Bulgarian ecommerce platform, handles this with apps in the admin: Multilang for languages, Stores Sync for shared stock, and XML Feed Generator with XML Sync for moving a catalog between stores. How the same setup scales for a large business is covered in the guide to the enterprise ecommerce platform.
What a multilingual online store is in CloudCart
A multilingual online store in CloudCart is a network of stores: one main (master) store and one language (sister) store for each additional language. A language store is a complete store with its own catalog, customers, orders, theme, SSL certificate and plan, and Multilang sends it the translated products from the main store.
Language has three separate layers, each set in a different place.
| Layer | What it translates | Where you set it | Cost |
|---|---|---|---|
| Admin language | The menus and buttons your team sees | Each staff member's profile or the store's general settings | Included in the plan |
| Storefront system texts | Buttons, headings, error messages, email subjects ("Add to cart" and similar) | Settings → Translations | Included in the plan |
| Store content | Product names and descriptions, categories, blog posts, pages, meta titles, alt texts | Apps → Multilang | By plan: copying and AI translation run on a quota |
Switching the admin to English does not translate the storefront, and installing Multilang does not change the system buttons. A fully translated website needs the second and third layers together.
Translating a website: browser translator or a language version
A browser translator helps a visitor read a page, but it brings no sales from search in the other language. Google Translate and Chrome extensions translate only on the visitor's screen: the address stays the same, Google indexes the original text, and a customer searching in English never finds the store. Google recommends a separate URL for each language version instead of switching the language by cookie or browser settings (Google Search Central).
A language version with Multilang is a whole store in the customer's language, with its own addresses, translated meta fields, hreflang, its own currency and local payments. Manual translation of texts inside one store gives a mix of translated texts next to untranslated buttons and products.
Which stores need a second language, and when
A second language pays off when you sell to customers who do not read your store's current language. In a CSA Research survey of 8,709 online shoppers in 29 countries, 76% prefer to buy products with information in their native language, and 40% never buy from websites in other languages (CSA Research, 2020).
- A Bulgarian store with foreign customers in Bulgaria: expats, students and tourists hesitate on a Bulgarian-only site. An English language store with the same euro prices, couriers and cash on delivery removes that doubt.
- An English-first store run by foreign founders: most buyers in Bulgaria search in Bulgarian. A Bulgarian language store ranks for those searches while the English store stays your main catalog.
- A store shipping to Romania or Greece: a separate store in the customer's language, with their currency and couriers, removes hesitation at checkout, and it can send Google Shopping its own feed in that language. The model is described on the multistore and languages page.
- When to wait: if your main catalog still has thin descriptions, no attributes and no alt texts, complete it first. Machine translation carries the gaps over too.
How to add a second language: step by step
A second language is added from Apps → Multilang → Stores with the "+ Add language site" button, which opens a 5-step wizard. The store you start from becomes the main store and stays the catalog source for all language stores.
- Install Multilang. Apps → Multilang. The app has no on/off switch: once installed, it works. Its tabs are Stores, Products, Settings and Progress.
- Choose a new or an existing store. Click "+ Add language site". The new option creates a store for the language, and exist connects a CloudCart store you already have on the same account.
- Fill in four fields. domain is a subdomain with letters, digits and hyphens, for example mystore-en (the platform adds .cloudcart.net); language is the code (en, bg, ro, el); currency is the store's currency; unit_system is the measurement system. The new store starts with the main store's theme.
- Choose content and plan. Steps two and three set which content is copied and translated (products, categories, blog, pages); steps four and five set the plan and payment.
- Follow the copying in Progress. The sync runs in the background and you can close the browser. Once the sync starts, the wizard steps cannot be changed.
- Add a domain. In the language store's admin (Settings → Domains), add your own domain, for example en.mystore.bg or mystore.ro. SSL is issued automatically once DNS points to CloudCart.
Important: until DNS points to CloudCart, the language store shows the status Pending. The statuses are Active (running and receiving translations), Inactive (paused), Pending (being created) and Failed (an error during creation or sync).
Domains and certificates in general are explained in the guide to domain, SSL and store security.
How products are translated
Products are machine-translated with Google Cloud Translation, field by field, by rules you set per language store in Apps → Multilang → Stores → Configuration.
| Field in Configuration | What it does |
|---|---|
| Copy newly added products | The master switch: new products from the main store are copied to the language store. |
| AI translation | Turns on machine translation. Turned off, products are copied in the main store's language. |
| 9 translatable fields | Title, description, category, variants, meta title and description, tags, characteristics, product tabs, image alt texts, each switched on separately. |
| Copy price, Multiply the original price by, Round price up to | The price is multiplied by your multiplier (0 to 99, in steps of 0.01) and rounded up to an ending such as .95. |
| Approval method | manual (default): you approve each new product in Products. automatic: it goes through on its own. |
For older products, open Apps → Multilang → Products, select them and run copying or translation in bulk; the platform sends them in batches of 300. There are two quotas in the Settings tab: Copy (copied products) and Translate (translated characters). When a quota runs out, new translations stop until you use "Buy an additional package".
The translation has no separate review step and goes straight to the storefront. Have someone who speaks the language check your best sellers before you run ads.
Currency and prices in each market
Every CloudCart store has one base currency, so a second currency means a second store. The storefront has no currency switcher: a customer in Romania sees lei in the Romanian store, and a customer in Bulgaria sees euro in the Bulgarian one.
For many sellers in Bulgaria the currency question is simpler than it looks. Bulgaria joined the euro area on 1 January 2026 at the fixed rate of 1 EUR = 1.95583 BGN (European Central Bank), and Greece also uses the euro. A Bulgarian and an English store, or a Greek store next to a Bulgarian one, can all sell in euro; a store for Romania needs the Romanian leu.
The price in a language store is calculated once, at copying, with the multiplier; no daily exchange rate is used. The multiplier carries both the rate and your margin. If €1 equals 5 lei for you and you want 2% more for the higher delivery cost, you set 5.10. After copying, each store manages its own prices.
| What | Shared between stores | Separate in each store |
|---|---|---|
| Catalog and content | Comes from the main store through Multilang | Translations and manual corrections |
| Stock | Kept equal by Stores Sync, by SKU or barcode | Nothing: one quantity for all |
| Price and currency | Only at copying, by the multiplier | Prices, promotions and currency after that |
| Shipping and payment | Nothing | Couriers, payment methods and the market's VAT rate |
| Orders and customers | Nothing | Own orders, customers and invoices |
The BGN to EUR app shows prices in leva and euro at the fixed rate. Dual display and rounding are in the guide to euro prices in an online store.
How to run several stores from one admin
Several CloudCart stores run from one account: each market has its own admin, and you switch from the main store to a language store in one click, without a new password, from its row in Apps → Multilang → Stores.
Multilang copies and translates the catalog one way, from the main store to language stores. Stores Sync keeps the quantity of the same item equal in all stores, by SKU, barcode or both, and does not touch prices, names or orders. XML Feed Generator and XML Sync export a catalog from one store and update it in another on a schedule, without translating.
Stores Sync is set in Apps → Stores Sync → Settings: choose the matching key in "Compare by" and the stores to synchronize. An order, a manual adjustment or a return in one store changes the quantity in the others, usually within seconds.
Important: Stores Sync counts only items with an SKU or barcode and with stock tracking on in both stores. A product without a code keeps separate stock and can be sold twice.
If your catalog comes from a supplier or an ERP, sort out the main store first. Filling it from a file is covered in the guide to importing products from CSV and XML.
Domain, hreflang and SEO of language versions
Multilang adds hreflang tags automatically: every page points to its versions in other languages, and the main store gets x-default. Google then shows an English-speaking searcher the English page, by the rules in Google Search Central on localized versions.
- Addresses in the market's language. Each language store has its own slugs, and the switcher leads to the same product even when addresses differ.
- Translated meta fields when "Translate meta title and description" is on. Without it, the English page appears in Google with a Bulgarian title.
- No automatic redirect by browser language. CloudCart shows a switcher instead, which is also what Google advises.
- A domain or subdomain per language. The store starts on cloudcart.net, then gets en.mystore.bg, mystore.ro or another domain you own.
Sitemap, meta descriptions and redirects are set in each store's own admin.
How much a multilingual store costs in CloudCart
Each language store is a separate store with its own plan, so two languages cost two plans. On the CloudCart pricing page, "Copy products to a language version" and "AI product translation" are included in CC Master (€249/month billed annually, excluding VAT). System texts and the admin language are in every plan. You pay separately for your own domain, couriers and payment provider.
Best practices for a multilingual online store
- Fix content in the main store. The sync is one-way, and a new translation erases changes made in a language store.
- Translate once, correct last. Wait for Progress to finish, then make manual corrections.
- Translate meta fields and alt texts. Without them the language page loses search positions.
- Give every item an SKU or barcode, so Stores Sync and XML Sync can match products.
- Check Settings → Translations in each language store: buttons, checkout and email subjects in the customer's language.
- Use local wording. Expats in Bulgaria search in English for local terms such as cash on delivery or delivery to an Econt or Speedy office (Bulgaria's two largest couriers); use the same words in titles and descriptions.
Mistakes to avoid
- Polishing a language store before re-translating. Re-translation overwrites all enabled fields at once; there is no single-field re-translation.
- Changing the currency instead of creating a store. Prices are not recalculated: €19.99 becomes 19.99 in the new currency.
- A payment method that does not support the currency. The admin does not check this; test each method with an order.
- Uninstalling Multilang in the main store. It disconnects all language stores and the sync stops.
How to advertise and measure the new language version
A language store is a separate store, so its marketing and reports are separate too: its own Search Console property, feed, ads and customer list.
- Google Search Console per domain, set in the language store under Apps → Google Search Console.
- Ads in the market's language and currency. Each store sends its own product feed, so Google Ads and Meta campaigns lead to pages with the same language and prices as the ad.
- Mobile in every language. Translated titles are often longer; check on a phone that buttons and names fit, as described in the guide to the mobile version of an online store.
How an AI agent maintains language versions
An AI agent connected with a PAT token compares the catalogs of the main and the language store and shows the differences in one table. An AI agent is a program such as Claude Code, ChatGPT Codex, Gemini CLI or Cursor working through the store's API. A PAT token (Personal Access Token) is a key the owner creates in Settings → PAT tokens, with read-only, full or selected permissions; each language store creates its own.
| Sentence to the agent | What you get |
|---|---|
| "Compare active products in both stores by SKU and show which are missing in the English store." | A list for bulk copying in Multilang → Products |
| "Which products in the English store still have Cyrillic text in the title or meta description?" | Fields copied without translation |
| "Compare orders, revenue and average order value of the Bulgarian and English stores for the last 30 days." | A report by market, without exports from two admins |
Start with a read-only token, and make lasting corrections in the main store, since the next Multilang translation overwrites changes in a language store. Building a store with an AI assistant from day one is explained in the guide to the AI online store.
Frequently asked questions
In CloudCart, add a language with Multilang: Apps → Multilang → Stores → "+ Add language site". The wizard creates a language store with a subdomain, language, currency and measurement system, copies the content you choose and translates it. The store then gets its own domain.
Create an English language version with Multilang: it has its own addresses, translated products and meta fields, and hreflang to the Bulgarian version. A browser translator works only on the visitor's screen and Google does not index it. Check the English buttons in Settings → Translations.
A CloudCart store has one currency and no currency switcher. For a second currency, such as Romanian lei, you create a language store where prices are set with your multiplier at copying. The BGN to EUR app is the exception: it shows leva and euro at the fixed rate.
No. Bulgaria uses the euro, so an English store for customers in Bulgaria keeps the same euro prices with a multiplier of 1. Another currency is needed only outside the euro area, for example in Romania.
Each language store has its own plan, and copying and AI translation are in CC Master (€249/month billed annually, excluding VAT). Translation uses a character quota topped up with packages. New stores pay €1/month for the first 3 months, one offer per company, through Dec 31, 2026.
For a second language, build the catalog with SKUs and complete meta fields from the start. Create a store for €1. Stores for several countries with a large catalog are described on the CloudCart Enterprise page, and for questions about language versions, write to support@cloudcart.com.
Sources
- Google Search Centraldevelopers.google.com
- CSA Research, 2020csa-research.com
- European Central Bankwww.ecb.europa.eu
- Google Search Central on localized versionsdevelopers.google.com
