Articles and guides on launching and growing your online store
Integrations, SEO, marketing, dropshipping and online store automation

Language Law in E-commerce: How to Set Up Multilingual Online Store According to Ukrainian Rules

Language law in e-commerce: setting up multilingual online store according to Ukrainian rules

Language Law in E-commerce: How to Set Up Multilingual Online Store According to Ukrainian Rules

Complete guide on setting up a multilingual online store considering the requirements of the Ukrainian language law. We analyze legal requirements, learn to create SEO-friendly URLs for each language version, configure hreflang for SEO, automatically detect user language, and properly translate products, categories, and filters on the BooStore.pro platform.

Ukraine's Language Law: What Online Store Owners Need to Know

On January 16, 2021, Ukraine enacted provisions of the Law "On Ensuring the Functioning of the Ukrainian Language as the State Language" that directly regulate online stores and e-commerce. According to Article 30 of the Law, the language of interfaces and user web resources for goods and services, including online stores, is the state language — Ukrainian.

This means that online store owners are required to provide information in the Ukrainian language: product descriptions, specifications, prices, delivery and payment terms, contact information. At the same time, the law does not prohibit having other language versions — Russian, English, Polish. The main requirement: the Ukrainian version must be complete and not inferior in information volume to other language versions.

Key requirement: The Ukrainian version of the site must be primary and contain all information available in other languages. You cannot make the Ukrainian version "trimmed" while providing full information only in Russian.

Violating the law carries penalties: a fine of 200 to 400 tax-free minimum incomes (from 3,400 to 6,800 UAH) for officials, and repeated violation — up to 8,500 UAH. Therefore, proper multilingual configuration is not just a matter of convenience but a legal requirement for operating in the Ukrainian market.

For information on how to open an online store in Ukraine considering all legal requirements, read the article: How to Open an Online Store in Ukraine: Complete Guide 2026.

Comparing Language Requirements: Ukraine, Poland, EU

Language regulation of e-commerce varies significantly across countries. Understanding these differences is important if your store operates in multiple markets. Let's examine the requirements of three key regions for Ukrainian entrepreneurs.

ParameterUkrainePolandEuropean Union
Mandatory interface languageUkrainian (state language)Polish (consumer rights)Language of EU member state
Other languages allowedAllowed, but Ukrainian version cannot be trimmedAllowed, contracts in Polish mandatoryFreely, English recommended
Legal frameworkLaw No. 2704-VIII Art. 30Ustawa o prawach konsumentaDirective 2011/83/EU
Penalties for violationup to 8,500 UAHup to 100,000 PLNdepends on country
URL requirementsRecommended /ua/, /ru/, /en//pl/, /en/Recommended /en/, /de/, /fr/
hreflang mandatoryRecommended for SEORecommended for SEORecommended for SEO
Auto language detectionAllowed, with choice optionAllowedAllowed

The peculiarity of Ukrainian legislation is the strict requirement for the state language as the primary one. In Poland, it is sufficient to translate contracts and key consumer rights information into Polish. In the EU, requirements vary by country, but the general trend is mandatory use of the official language of the member state for legally significant information.

More about the Ukrainian e-commerce market specifics and choosing a platform: Ukrainian Shopify Alternatives: Comparing E-commerce Platforms.

hreflang and SEO: How Search Engines Understand Language Versions

When an online store has multiple language versions, search engines need to know which version to show to a user based on their language and region. This is achieved using the hreflang attribute — an HTML tag that tells Google and other search engines about the relationship between pages in different languages.

How it works: A user from France searches for a product — Google shows the French version. A user from Ukraine — the Ukrainian version. If the French version does not exist, Google shows "x-default" (the default site version).

Proper hreflang implementation includes:

  • Mutual links — each language version must link to all other versions of the same page
  • rel="alternate" attribute with language code (e.g., hreflang="uk", hreflang="ru", hreflang="en")
  • x-default — default version for languages not in the list
  • Unique URLs — different addresses for different languages (not fragments or parameters)

On the BooStore.pro platform, hreflang tags are generated automatically. Simply specify the same identifier (e.g., the ID of the first created product) in the "Page in other languages / Product in other languages" field of the product, page, or article card. The system will automatically add correct hreflang tags to all linked pages, including x-default for the site's main language.

Example of correct hreflang markup for three language versions:

<link rel="alternate" hreflang="uk" href="https://site.com.ua/ua/product/kedy" />
<link rel="alternate" hreflang="ru" href="https://site.com.ua/ru/product/kedy" />
<link rel="alternate" hreflang="en" href="https://site.com.ua/en/product/kedy" />
<link rel="alternate" hreflang="x-default" href="https://site.com.ua/ua/product/kedy" />
    

More about SEO optimization for online stores: How to Improve Online Store SEO: Complete Guide.

SEO-friendly URLs for Each Language Version: Proper URL Structure

For successful promotion of a multilingual online store, it is critical to use unique URLs for each language version. Google recommends three approaches, and the BooStore.pro platform supports the most correct one — language prefix in the URL.

Recommended URL structure:

  • /ua/category/tovar — Ukrainian version
  • /ru/category/tovar — Russian version
  • /en/category/tovar — English version
  • /pl/category/tovar — Polish version

✅ Language Prefix (Recommended)

/ua/product, /ru/product
Supported by BooStore.pro. Easy setup, clear structure, properly indexed by search engines.

❌ Subdomains

ua.site.com, ru.site.com
Requires separate domains/subdomains. Harder to set up, link equity distributed among subdomains.

❌ GET Parameters

/product?lang=ua
Not recommended by Google. Risk of duplicate content, indexing difficulties.

✅ Separate Domains

site.com.ua, site.ru
Maximum SEO isolation, but requires purchasing and configuring multiple domains.

On BooStore.pro, the language prefix is added automatically. For example, if you create a page or product in Ukrainian, the URL will be /ua/..., in Russian — /ru/.... For store categories, it is recommended to use language suffixes in the category name, e.g.: category_ua, category_ru, category_en. This allows the platform to correctly determine the category language and avoid errors when importing products.

Automatic Language Detection and Switching by Browser and Region

A modern multilingual online store should automatically detect the user's preferred language and offer the appropriate site version. This increases conversion and improves user experience.

Language detection mechanisms:

  • HTTP Accept-Language header — the user's browser sends information about preferred languages. The server can redirect to the appropriate version.
  • IP geolocation — determining country by IP address. For example, a user from Poland automatically sees the Polish version.
  • Cookie/session — after the first language selection, we remember the user's preference.
  • localStorage — language is stored in the browser and applied on subsequent visits.
Important rule: Auto-detection and automatic redirection are convenient, but the user must always have the ability to manually switch the language. Do not lock the user into the language version they were automatically directed to. The language switch button should be visible on all pages.

On BooStore.pro, automatic language detection and switching are implemented through a built-in language menu mechanism. You can place a language switcher code on the site that uses hotengine-script-language.js to substitute the correct URLs from link[rel="alternate"] tags. All major languages are supported: Ukrainian, Russian, English, Polish, German, French, and others.

Example language switcher code for BooStore.pro:

<nav class="hotengine-shop-select-language-box">
  <span class="hotengine-shop-select-language" data-lang="ua"></span>
  <span class="hotengine-shop-select-language-values">
    <li><a class="hotengine-shop-select-language-val" data-lang="ua" href="/ua/"></a></li>
    <li><a class="hotengine-shop-select-language-val" data-lang="ru" href="/ru/"></a></li>
    <li><a class="hotengine-shop-select-language-val" data-lang="en" href="/en/"></a></li>
    <li><a class="hotengine-shop-select-language-val" data-lang="pl" href="/pl/"></a></li>
  </span>
</nav>
    

CSS styles for displaying flags via pseudo-elements and the script for substituting paths are connected once and work for all languages automatically.

Translating Products, Categories, and Filters Between Languages

The most time-consuming stage of creating a multilingual store is content translation. The BooStore.pro platform provides several approaches to speed up this process.

Translating products via CSV/XLSX import/export

The fastest way for stores with a large assortment:

  • Export products in the "Store" — "Export products" section (export all fields, including categories).
  • Translate the file using Google Translate for documents (save as XLSX).
  • Add language suffixes to categories (e.g., dress_uadress_en).
  • Copy product IDs to the "Products in other languages" column, remove IDs from the ID column, change "Product code" (add _en suffix).
  • Import the file — new products will be created in the other language.

Translating categories

Categories can also be exported, translated, and imported back. Each category has a language specified. It is recommended to use unique category names with language suffixes: category_ua, category_ru, category_en. This eliminates errors during subsequent product imports.

Translating search filters

Filters (product attributes) can be translated in two ways:

  • Through the "Translate attribute values" tool — in the admin panel, in the attribute management section.
  • Through JavaScript — by placing a script on pages with the filter, you can replace value text with the desired language. This is convenient if you use one filter for all language versions.
Tip: Use one search filter for all languages, and perform translation via JavaScript — this simplifies product import/export and centralized attribute management.

Price and stock synchronization

An important feature of BooStore.pro: if products are linked via the "Product in other languages" field, when the price, availability, "new" or "bestseller" status changes in one product — all linked products in other languages update automatically. This eliminates data discrepancies between language versions.

Step-by-Step Multilingual Setup on BooStore.pro

This section provides a concrete step-by-step plan for setting up a multilingual online store on the BooStore.pro platform from start to finish.

1

Set the main site language

In the admin panel, go to "Settings" → "Languages and start page". Set the main language to Ukrainian (uk). This will ensure correct hreflang operation with the x-default attribute and determine the language for all elements by default. More in the documentation.

2

Create categories with language suffixes

In the "Store" — "Store categories" section, create categories for each language using suffixes: odezhda_ua, odezhda_ru, odezhda_en. Specify the appropriate language for each category. In the "Category in other languages" field, enter the IDs of related categories. This will automatically link categories across different languages.

3

Configure language blocks (header, menu, footer)

Create "Blocks/Menus" for each language. For example: "Header-UA", "Header-RU", "Header-EN". For each block, specify the language in which it should be displayed. If an element is the same for all languages (e.g., analytics code), specify the language "All".

4

Add a language switcher

Add the language dropdown code to the appropriate place on the site (header or footer). Connect hotengine-script-language.js for automatic URL substitution from hreflang tags. Configure CSS styles for displaying language names: UA, RU, EN, PL.

5

Create pages in different languages

Create a page in Ukrainian, then the same page in Russian and English. In the "Page in other languages" field, specify the same value (ID of the first page). The platform will automatically generate hreflang tags on all related pages. The main page will correspond to the site's primary language.

6

Import products in other languages

Export products, translate via Google Translate, copy IDs to "Products in other languages", replace product codes and import. Check that the "Product in other languages" field is filled for all products in the main language — this ensures correct cross-linking and hreflang.

7

Check hreflang and indexing

Open the page in each language and check the source code — link rel="alternate" tags with hreflang should be present for all versions. Use Google Search Console → "URL Inspection" for each language version. Make sure Google sees and indexes all versions.

8

Configure XML feeds for each language

If you use Google Merchant Center or Facebook Catalog, create separate feeds for each language version. BooStore.pro generates XML exports automatically; use the appropriate URLs with language prefix for each feed.

More about structured data and micro-markup for online stores: Schema.org Product Markup Guide for E-commerce.

BooStore.pro vs WordPress/OpenCart: Comparing Approaches to Multilingual Setup

There are several popular solutions for creating a multilingual online store on the market. Let's compare the BooStore.pro (SaaS platform) approach with classic CMS — WordPress + WooCommerce and OpenCart.

ParameterBooStore.proWordPress + WooCommerceOpenCart
Platform typeSaaS (all-inclusive)CMS + pluginsCMS + extensions
Multilingual out of the boxYesRequires plugin (WPML, Polylang)Requires extension
Setup complexityLow — visual editorHigh — plugins, conflictsMedium — language mods
hreflang automaticallyYesOnly in paid pluginsOnly in extensions
SEO-friendly URLs with language prefixYesVia pluginVia extension
Product translationVia CSV/XLSX importManually or by pluginVia CSV or module
Filter translationJS translation or toolDifficult, depends on pluginDifficult
Price synchronizationAutomaticManualManual
Updates and securityAutomatic (SaaS)Manual, compatibility riskManual
Cost of multilingual featuresIncluded in plan$100–300/year for WPMLFrom $30 per extension
Conclusion: BooStore.pro offers the simplest and most reliable solution for a multilingual online store without the need to install and configure third-party plugins. All features — hreflang, SEO-friendly URLs, language switcher, price synchronization — work immediately after setup. For WordPress and OpenCart, each of these elements requires a separate plugin or extension, increasing maintenance costs and the risk of conflicts.

❓ Frequently Asked Questions About Multilingual Online Stores

Answers to the most common questions when setting up a multilingual online store considering Ukraine's language law.

Can I add more than three languages on BooStore.pro?

Yes, the platform supports many languages: Ukrainian, Russian, English, Polish, German, French, Spanish, Italian, Kazakh, Belarusian, Romanian, Turkish, Slovak, Danish, Chinese, Hindi, Arabic, Portuguese, Bengali, and others. Separate pages, products, categories, and blocks are created for each language.

How to check if hreflang is set up correctly?

Use Google tools: "URL Inspection" in Google Search Console shows which hreflang tags are detected. You can also use the Chrome extension "Hreflang Tag Checker" or the Merkle Hreflang Tester service. Open the page, view the source code — tags <link rel="alternate" hreflang="..." href="..." /> should be present for each language version.

Do I need to pay extra for multilingual features on BooStore.pro?

No, the multilingual feature is included in all BooStore.pro plans. You can create an unlimited number of language versions at no extra cost. The only expense is time for content translation. Unlike WordPress where WPML costs from $100/year, on BooStore.pro multilingual functionality is available immediately.

What if there is no Ukrainian version of a product but a Russian one exists?

From the language law perspective, this is a violation — the Ukrainian version must be complete. It is recommended to first create Ukrainian versions of all products (at least with basic descriptions and attributes), then add other languages. If a product is temporarily unavailable in Ukrainian, it's better to hide it in other languages or use automatic translation as a temporary solution.

How to translate an existing BooStore.pro store into another language?

Use bulk export/import via CSV/XLSX. Export products and categories, translate via Google Translate for documents, replace product codes (adding a language suffix), copy product IDs to the "Products in other languages" field, and import. For pages, create new versions manually, specifying the original page ID in the "Page in other languages" field.

Does multilingual support affect site loading speed?

On BooStore.pro, multilingual support does not affect loading speed because only the current language's content is loaded. Search filters and blocks configured for all languages work without performance loss. This is an advantage over WPML plugins, which can slow down a site due to additional SQL queries. BooStore.pro uses caching for all language versions.



Online Store Automation: How to Set Up a Store That Works 24/7 Without Your Involvement
How to launch a booking website and an online appointment system: a complete guide to creation and configuration
I Created an Online Store. What's Next? 10 Steps to Grow Sales