Налаштування мультимовності та мультивалютності Magento 2

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Пропоновані послуги
Показано 1 з 1 послугУсі 2065 послуг
Налаштування мультимовності та мультивалютності Magento 2
Середня
~3-5 робочих днів
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Налаштування мультиязичності та мультивалютності Magento 2

Magento 2 забезпечує повнофункціональну архітектуру для управління кількома мовами та валютами в рамках однієї інсталяції. Правильне налаштування вимагає розуміння ієрархії Global → Website → Store → Store View та того, як кожний рівень впливає на каталог, ціни та транзакції.

Ієрархія Store View та локалізація

Кожна Store View в Magento 2 відповідає одній локалі. Базова структура для мультимовного магазину:

  • Website — домен або група доменів (example.com)
  • Store — корінна категорія каталогу
  • Store View — мова: en_US, de_DE, ru_RU

Створення Store View через CLI:

bin/magento store:website:create --code=eu --name="Europe" --sort-order=10
bin/magento store:group:create --website-id=2 --name="EU Store" --root-category-id=2
bin/magento store:store:create --name="German" --code=de --website-id=2 --group-id=2 --locale=de_DE --sort-order=10

Після створення Store View необхідно встановити мовні пакети. Magento використовує i18n CSV-файли, Composer-пакети для основних мов публікуються в репозиторії magento/language-*:

composer require magento/language-de_de
composer require magento/language-ru_ru
bin/magento setup:upgrade
bin/magento setup:static-content:deploy de_DE ru_RU en_US -f

Конфігурація мультивалютності

Magento 2 працює з базовою валютою (Base Currency) та відображаємими валютами (Display Currencies). Курси оновлюються через провайдерів: вбудований Webservicex застарів, рекомендуються fixer.io або currencyconverterapi.com.

Налаштування через app/etc/config.php або Admin Panel:

<!-- app/etc/env.php — не зберігайте API ключі в VCS -->
'currency' => [
    'options' => [
        'base' => 'EUR',
        'default' => 'EUR',
        'allow' => 'EUR,USD,GBP,PLN,RUB'
    ]
]

Налаштування провайдера курсів через core_config_data:

INSERT INTO core_config_data (scope, scope_id, path, value) VALUES
('default', 0, 'currency/import/service', 'Magento_CurrencySymbol/service/fixerio'),
('default', 0, 'currency/import/api_key', 'YOUR_FIXER_KEY'),
('default', 0, 'currency/import/time', '00:00:00');

Автоматичне оновлення курсів через cron:

<!-- etc/crontab.xml -->
<group id="default">
    <job name="currency_rates_update" instance="Magento\CurrencySymbol\Model\System\Currencysymbol" method="scheduledUpdateCurrencyRates">
        <schedule>0 */6 * * *</schedule>
    </job>
</group>

Переводи контенту: товари та категорії

Атрибути товарів переводяться на рівні Store View. Для масового перекладу використовується механізм імпорту з указанням store_view_code:

sku,store_view_code,name,description,short_description
product-001,de,Produkt Eins,"Vollständige Beschreibung","Kurze Beschreibung"
product-001,ru,Продукт Один,"Полное описание","Краткое описание"

Імпорт через CLI:

bin/magento import:run --entity=catalog_product --behavior=update \
  --validation-strategy=validation-stop-on-errors \
  --allowed-error-count=0 \
  --input-file=var/import/products_de.csv \
  --import-dir=var/import

URL-структура та hreflang

Для SEO критично правильно налаштувати URL-структуру. Magento 2 підтримує два підходи:

Підхід Приклад Конфігурація
Поддомен de.example.com Окремий Website
Підпапка example.com/de/ Store View з Base URL
GET-параметр example.com?___store=de Не рекомендується

Налаштування hreflang через XML layout:

<!-- view/frontend/layout/default_head_blocks.xml -->
<page>
    <head>
        <block class="Vendor\Module\Block\Hreflang" name="hreflang" template="Vendor_Module::hreflang.phtml"/>
    </head>
</page>

Ценообразование за Store View та Website

Ціни в Magento 2 задаються на рівні Website. Для різних цін за регіонами використовуються catalog_product_entity_decimal записи з привязкою до website_id. Специфічне ценообразование реалізується через Tier Prices та Customer Group Prices:

// Програмне встановлення ціни для website
$product->setPrice(99.99);
$product->setWebsiteIds([1, 2]);
$product->setData('price', 89.99); // перезапис для scope

// Через repository з урахуванням scope
$this->productRepository->save($product, true); // saveOptions = true

Податки та відображення цін: налаштуйте Tax Zones за країнами та привяжіть до Customer Groups. Для ЄС обов'язкова підтримка інклюзивних/екскльюзивних цін з ПДВ — конфігурація в Stores → Configuration → Tax → Price Display Settings.

Типові терміни впровадження

  • Базова конфігурація 2 мов + 2 валют: 2–3 дні
  • Переклад каталогу (1000–5000 SKU): 3–5 днів (включаючи валідацію імпорту)
  • SEO-конфігурація з hreflang та canonical: 1–2 дні
  • Налаштування автоматичного оновлення курсів + моніторинг: 1 день