Настройка мультиязычности и мультивалютности 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 предоставляет полноценную архитектуру Store View для управления несколькими языками и валютами в рамках одной инсталляции. Правильная настройка требует понимания иерархии 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); // overwrite for 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 день