Актуальні знижки на модулі оплати, вивантаження в Яндекс, модулі від Serbulenko та opencart-cms.ru, шаблон Юнішоп2 та фільтр GigantFilter.
Найбільш продавані у лютому 2026 року шаблони та доповнення: Komplekt-Expert, Telegram сповіщення, IMDBOptimizer (OC 3) - Оптимізація бази даних, #FX Sitemap - Надшвидка карта сайту, шаблон Lightshop.
Новинки за лютий 2026 року: Квіз для OpenCart, Redirect & Loop Monitor, Адмін-панель на сайті, Колекція брендів.
Якщо ви намагаєтеся зберегти емодзі в OpenCart (наприклад, в описі товару, огляді, категорії чи навіть у полях SEO), часто трапляється одне з наступного: символи перетворюються на ????, не зберігаються взагалі або викликають помилку запису в базу даних. Майже завжди причина та сама – база даних і/або підключення до MySQL використовує кодування utf8 (насправді utf8mb3), яке не підтримує 4-байтові символи.
Емодзі — це 4-байтові символи, тому, щоб вони правильно працювали в OpenCart, потрібно перейти на utf8mb4.
utf8mb3).? або відмовляє в записі.utf8mb4.На практиці емодзі найчастіше використовуються не тільки в текстах, але і в елементах маркетингу:
Тому важливо перекодувати саме ті таблиці, де насправді зберігаються такі дані.
utf8mb4.Перед будь-якими змінами обов’язково зробіть скид бази даних:
<код>mysqldump -u КОРИСТУВАЧ -p ІМ'Я_БД > backup.sql
Для великих баз даних рекомендується негайно стискати:
<код>mysqldump -u КОРИСТУВАЧ -p ІМ'Я_БД | gzip> backup.sql.gz
ALTER DATABASE `DB_NAME`
НАБІР СИМВОЛІВ utf8mb4
COLLATE utf8mb4_unicode_ci;
Цевстановлює стандартне кодування, але не завжди автоматично перекодує існуючі таблиці.
Основні таблиці OpenCart, де найчастіше потрібні емодзі:
oc_product, oc_product_descriptionoc_category, oc_category_descriptionoc_reviewoc_information, oc_information_descriptionПриклад команди:
ALTER TABLE oc_product_description
ПЕРЕТВОРЕННЯ НА НАБІР СИМВОЛІВutf8mb4
COLLATE utf8mb4_unicode_ci;
Повторіть для всіх необхідних таблиць.
ПОКАЗАТИ ПОВНІ СТОВПЦІ З oc_product_description;
Якщо окремі поля залишаються в utf8, їх можна змінювати пункт за пунктом:
ALTER TABLE oc_product_description
ЗМІНИТИ ДОВГИЙ ТЕКСТ `опису`
НАБІР СИМВОЛІВ utf8mb4
COLLATE utf8mb4_unicode_ci;
Навіть якщо кодування таблиці правильне, емодзі не буде збережено, якщо підключення до MySQL встановлено в utf8.
Відкрийте файл:
system/library/db/mysqli.php
Знайдіть рядок:
$this->connection->set_charset("utf8");
І замініть його на:
$this->connection->set_charset("utf8mb4");
Якщо проект використовує інший драйвер (mpdo, mysql), перевірте те саме налаштування там.
Щоб швидко перевірити, чи кодування utf8mb4 працює правильно, використовуйте емодзі, які гарантовано складаються з 4-байтових символів.
Скопіюйте та вставте наведений нижче текст у будь-яке текстове поле OpenCart:
Тест Emoji: 😀 🚀 🔥 👍 💡 ❤️ ⭐ 🛒
Якщо після збереження емодзі правильно зберігаються в базі даних і відображаються на вітрині сайту, то кодування та підключення до MySQL налаштовано правильно.
Якщо символи перетворюються на знаки питання або зникають, це означає, що десь в іншому місціutf8 використовується замість utf8mb4.
set_charset усе ще utf8).<meta charset="UTF-8"> у шаблоні.Після цього емодзі буде стабільно зберігатися і коректно відображатися у всіх частинах магазину - від опису товару до SEO полів і букв.
а статья очень подробная и полезная для тех у кого возникли такие проблемы
В статье указано найти по пути system/library/db/mysqli.php: $this->connection->set_charset("utf8"); В реале есть нюанс:$this->connection->set_charset('utf8');Зашел в установочные файлы, смотрю чрз Notepad :ermm:
if (!$mysqli->connect_errno) { mysqli_report(MYSQLI_REPORT_ERROR); $this->connection = $mysqli; // $this->connection->report_mode = MYSQLI_REPORT_ERROR; $this->connection->set_charset('utf8'); $this->connection->query("SET SESSION sql_mode = 'NO_ZERO_IN_DATE,NO_ENGINE_SUBSTITUTION'"); } else { throw new \Exception('Error: Could not make a database link using ' . $username . '@' . $hostname . '!'); }