Төлем модульдері, Яндекске жүктеп салулар, Сербуленко және opencart-cms.ru модульдері, Unishop2 үлгісі және GigantFilter бойынша ағымдағы жеңілдіктер.
2026 жылғы ақпанда ең көп сатылған шаблондар мен қосымшалар: Komplekt-Expert, Telegram хабарламалары, IMDBOptimizer (OC 3) - Дерекқорды оңтайландыру, #FX Sitemap - Өте жылдам сайт картасы, Lightshop шаблоны.
2026 жылғы ақпан айындағы жаңалықтар: OpenCart үшін квиз, Redirect & Loop Monitor, сайттағы әкімшілік панель, брендтер жинағы.
Егер сіз OpenCart жүйесінде эмодзилерді сақтауға тырыссаңыз (мысалы, өнім сипаттамасында, шолуда, санатта немесе тіпті SEO өрістерінде), төмендегілердің бірі жиі орын алады: таңбалар ????-ға айналады, мүлде сақталмайды немесе дерекқорды жазу қатесін тудырады. Себеп әрқашан дерлік бірдей – дерекқор және/немесе MySQL қосылымы 4 байт таңбаларды қолдамайтын utf8 кодтауын (шын мәнінде utf8mb3) пайдаланады.
Эмодзилер арнайы 4 байт таңбалар болып табылады, сондықтан олардың OpenCart жүйесінде дұрыс жұмыс істеуі үшін utf8mb4 түріне ауысу керек.
utf8mb3).?-мен ауыстырады немесе енгізуден бас тартады.utf8mb4 пайдалану.Іс жүзінде эмодзилер тек мәтіндерде ғана емес, маркетингтік элементтерде де жиі қолданылады:
Сондықтан мұндай деректер нақты сақталған кестелерді қайта кодтау маңызды.
utf8mb4 түріне түрлендіріңіз.Кез келген өзгертулер алдында міндетті түрде орындаңыз Дерекқорды тастаңыз:
<алдын ала> mysqldump -u ПАЙДАЛАНУШЫ -p DB_NAME > backup.sql
Үлкен дерекқорлар үшін дереу қысу ұсынылады:
<алдын ала> <код>mysqldump -u USER -p DB_NAME | gzip> backup.sql.gz
түрлендіру
<алдын ала> <код>ДЕРЕКТЕР ҚОРЫН `DB_NAME` ӨЗГЕРТУ таңбалар жиыны utf8mb4 UTf8mb4_unicode_ci;
Бұләдепкі кодтауды орнатады, бірақ әрқашан бар кестелерді автоматты түрде қайта кодтамайды.
Эмодзилер жиі қажет болатын негізгі OpenCart кестелері:
oc_product, oc_product_descriptionoc_category, oc_category_descriptionoc_reviewoc_information, oc_information_descriptionМысал пәрмен:
<алдын ала> <код>КСТЕНІ ӨЗГЕРТУ oc_product_description таңбалар жиынына түрлендіруutf8mb4 UTf8mb4_unicode_ci;
Барлық қажетті кестелер үшін қайталаңыз.
<алдын ала> oc_product_description-тен ТОЛЫҚ БАҒАНДАРДЫ КӨРСЕТУ;
Жеке өрістер utf8 ішінде қалса, оларды нүкте бойынша өзгертуге болады:
<алдын ала> <код>КСТЕНІ ӨЗГЕРТУ oc_product_description 'Сипаттаманы' LONGTEXT ӨЗГЕРТУ таңбалар жиыны utf8mb4 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 мәтін өрісіне көшіріп, қойыңыз:
<алдын ала> Эмоджи сынағы: 😀 🚀 🔥 👍 💡 ❤️ ⭐ 🛒
Егер сақталғаннан кейін эмодзилер дерекқорда дұрыс сақталса және сайт көрсетілімінде көрсетілсе, кодтау және 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 . '!'); }