Мультимовність та мультивалютність PrestaShop: необхідність та вигоди
Налаштування мультимовного та мультивалютного PrestaShop — переклад каталогу, автооновлення курсів валют, коректні hreflang — критичне для виходу на закордонні ринки. Наприклад, клієнт з каталогом 5000 товарів додав польську мову та злотий — конверсія зросла на 25%. Але неправильне налаштування hreflang і дублі контенту могли б зруйнувати SEO. Ми вирішили обидва завдання комплексно. Мультимовність — це не лише переклад інтерфейсу, але й коректні URL для пошукових систем, правильне форматування цін та автоматичне оновлення курсів. Помилка на будь-якому етапі веде до втрати клієнтів і падіння позицій у видачі. Розберемо технічні деталі налаштування, типові помилки та готові рішення для інтернет-магазинів на PrestaShop.
Проблеми, які вирішуємо
- Неповні переклади: товари, категорії, CMS-сторінки — все має бути локалізовано. Інакше — змішування мов в адмінці та на вітрині.
- Некоректне відображення цін: форматування чисел та знаків валюти залежить від локалі. Приклад: $12–17 для ru-RU, $1,299.99 для en-US.
- Ручне оновлення курсів: волатильність валют вимагає автоматизації.
- SEO-штрафи через дублювання контенту: без коректних hreflang та мовних URL Google може вважати сторінки різними мовами дублікатами.
Додавання мов
Мови в PrestaShop відповідають локалям PHP і постачаються з мовними пакетами. Встановлення через CLI:
php bin/console prestashop:language:install ru-RU Або програмно через об'єкт Language:
$language = new Language(); $language->name = 'Русский'; $language->iso_code = 'ru'; $language->locale = 'ru-RU'; $language->language_code = 'ru-RU'; $language->date_format_lite = 'd.m.Y'; $language->date_format_full = 'd.m.Y H:i:s'; $language->is_rtl = false; $language->active = true; $language->add(); Після активації мови необхідно перекласти:
- інтерфейс (back-office, front-office) — через мовні пакети;
- контент каталогу — через імпорт CSV або програмно.
URL-структура для SEO
PrestaShop підтримує кілька стратегій:
| Стратегія | URL | Рекомендація |
|---|---|---|
| GET-параметр | /product?id_lang=2 |
Не використовувати — погано для SEO |
| Мовний префікс | /ru/product |
Найкращий варіант |
| Піддомен | ru.example.com |
Вимагає Multishop |
| Окремий домен | example.ru |
Найскладніший, але максимальний E-A-T |
Префіксна стратегія в 3 рази ефективніша за GET-параметри для ранжування — підтверджено дослідженнями Google Search Central. Налаштування в адмінці: International → Localization → додавання мовного префіксу. Для Nginx додатково пропишіть правила rewrite (приклад: rewrite ^/ru/(.*)$ /$1?id_lang=2 last;).
Додавання hreflang через hook displayHeader:
public function hookDisplayHeader(): string { $languages = Language::getLanguages(true); $currentController = $this->context->controller; $hreflangs = []; foreach ($languages as $lang) { $url = $this->context->link->getLanguageLink($lang['id_lang']); $hreflangs[] = sprintf( '<link rel="alternate" hreflang="%s" href="%s">', $lang['language_code'], $url ); } $hreflangs[] = '<link rel="alternate" hreflang="x-default" href="' . $this->context->link->getLanguageLink(Configuration::get('PS_LANG_DEFAULT')) . '">'; return implode("\n", $hreflangs); } Налаштування валют
PrestaShop зберігає всі ціни в базовій валюті. Додавання валюти програмно:
$currency = new Currency(); $currency->name = 'Польський злотий'; $currency->iso_code = 'PLN'; $currency->iso_code_num = '985'; $currency->sign = 'zł'; $currency->conversion_rate = 0.21; // відносно базової (EUR) $currency->decimals = 2; $currency->active = true; $currency->add(); Автоматичне оновлення курсів: використовуйте вбудований провайдер або напишіть кастомний (приклад з ЦБ РФ в оригінальній статті). Налаштуйте cron на виконання php bin/console prestashop:currencies:update-exchange-rates кожні 6 годин.
Форматування цін за локаллю
Кожна валюта форматується через CurrencyFormatter:
use PrestaShop\PrestaShop\Core\Localization\Locale\Repository as LocaleRepository; $locale = $localeRepository->getLocale('ru-RU'); $formattedPrice = $locale->formatPrice(1299.99, 'USD'); // → "$12–17" $formattedPrice = $locale->formatPrice(99.99, 'EUR'); // → "99,99 €" Чому варто автоматизувати оновлення курсів?
Ручне оновлення курсів — ризик помилок і втрата прибутку. Вбудований провайдер PrestaShop використовує European Central Bank, але ви можете підключити будь-який API. Порівняння популярних провайдерів:
| Провайдер | Частота оновлення | Безкоштовний ліміт | Підтримка валют |
|---|---|---|---|
| European Central Bank | Щодня | Безлімітно | 32 валюти |
| ЦБ РФ | Щодня | Безлімітно | 40+ валют |
| ExchangeRate-API | Щодня | 1 500 запитів/міс | 170+ валют |
Обирайте провайдера виходячи з географії — для Росії оптимальний ЦБ РФ. Налаштування cron гарантує актуальність курсів без втручання.
Які інструменти використовувати для масового перекладу?
Переклад каталогу з 10 000 товарів вручну — тижні роботи. Використовуйте:
- CSV імпорт/експорт з колонками для кожної мови.
- Модулі автоматичного перекладу (Google Translate API, DeepL).
- Кастомні скрипти на Symfony Console для пакетної обробки.
Ми надаємо перевагу CSV — дає повний контроль. Приклад структури:
| id | name_ru | name_en | description_ru | description_en |
|---|---|---|---|---|
| 1 | Футболка | T-shirt | Хлопок 100% | 100% cotton |
Типові помилки при налаштуванні
- Ігнорування hreflang: Google може не зрозуміти, яка версія для якого регіону.
- Неправильна базова валюта: якщо змінити базову валюту після старту, всі ціни перерахуються з помилками.
- Відсутність перекладу SEO-полів: meta-title, meta-description, URL rewritten — мають бути перекладені для кожної мови.
- Використання deprecated-методів: в PrestaShop 8+ застаріли деякі методи роботи з мовами (наприклад,
Language::getIdByIso()замінили на репозиторій).
Обсяг робіт при налаштуванні під ключ
- Аналіз поточної структури та вибір стратегії URL.
- Встановлення та активація мов, переклад back-office та front-office.
- Налаштування валют, автооновлення курсів, форматування цін.
- SEO-оптимізація: hreflang, sitemap, коректні canonical.
- Масовий переклад каталогу через імпорт/експорт CSV.
- Тестування та перевірка на реальних замовленнях.
- Навчання команди роботі з мультимовним контентом.
Після завершення робіт передаємо документацію та надаємо підтримку. Замовте налаштування мультимовності PrestaShop під ключ — ми виконаємо роботу якісно та вчасно.
Орієнтовні терміни:
- Додавання 1–2 мов + переклади back-office: 1 день.
- Налаштування 3–5 валют + автооновлення курсів: 1 день.
- SEO-конфігурація hreflang + URL-структура: 1–2 дні.
- Переклад каталогу 1000–10 000 товарів: 3–7 днів.
Вартість розраховується індивідуально після аудиту. Зв'яжіться з нами для консультації — оцінимо ваш проект безкоштовно. Гарантуємо якість робіт та підтримку після запуску. Зв'яжіться з нами, щоб обговорити деталі вашого проекту.







