eCommerce

OpenCart 3 - Проблем с EUR и цени и как да зададем принудително EUR валута за всички поръчки

06 Февруари 2026
TEDBG Екип TEDBG Екип

С предстоящото влизане на България в Еврозоната, много собственици на онлайн магазини с OpenCart се сблъскват с един често срещан проблем – въпреки че са сменили основната валута на EUR, системата продължава да записва поръчки в лева (BGN).

Проблемът

OpenCart запазва валутата на потребителя в сесията и в бисквитка (cookie). Това означава, че:

  • Стари посетители, които вече имат записана бисквитка с BGN, продължават да пазаруват в лева
  • Новите настройки не се прилагат автоматично за съществуващи сесии
  • В базата данни се появява микс от поръчки в EUR и BGN

Решението

Най-чистият начин да форсираме винаги EUR е да модифицираме файла catalog/controller/startup/startup.php.

Намерете секцията // Currency (около ред 120-140) и заменете целия блок за обработка на валута:

ОРИГИНАЛЕН КОД (ЗА ЗАМЯНА):
$code = ''; $this->load->model('localisation/currency'); $currencies = $this->model_localisation_currency->getCurrencies(); if (isset($this->session->data['currency'])) { $code = $this->session->data['currency']; } if (isset($this->request->cookie['currency']) && !array_key_exists($code, $currencies)) { $code = $this->request->cookie['currency']; } if (!array_key_exists($code, $currencies)) { $code = $this->config->get('config_currency'); } if (!isset($this->session->data['currency']) || $this->session->data['currency'] != $code) { $this->session->data['currency'] = $code; } if (!isset($this->request->cookie['currency']) || $this->request->cookie['currency'] != $code) { setcookie('currency', $code, time() + 60 * 60 * 24 * 30, '/', $this->request->server['HTTP_HOST']); }

Нов код:

НОВ КОД (FORCE EUR):
// Force EUR always - TEDBG.com $code = 'EUR'; $this->load->model('localisation/currency'); $this->session->data['currency'] = $code; setcookie('currency', $code, time() + 60 * 60 * 24 * 30, '/', $this->request->server['HTTP_HOST']);

Какво прави този код?

  1. Задава твърдо EUR като валута
  2. Записва я в сесията на потребителя
  3. Обновява бисквитката с новата стойност
  4. Игнорира всички предишни настройки и предпочитания

Важни стъпки след промяната

  • Допълнения > Модификации - обновете модификациите (Refresh)
  • Изчистете кеша на OpenCart от таблото (Dashboard)
  • Изтрийте бисквитките в браузъра си за тест
  • Проверете нова поръчка – трябва да се запише с EUR

Допълнителни настройки

Уверете се, че в Система → Настройки → Магазин → Локални:

  • Основна валута е зададена на EUR
  • Валута BGN е изключена и не работи
  • Автоматично обновяване на валутите е изключено (ако не искате курсът да се променя)

При въпроси или нужда от съдействие, свържете се с нас.

Сподели тази статия:

Искате успешен онлайн бизнес?

Свържете се с нас за безплатна консултация.

TEDBG Заявете консултация

Съдържание