При создании интернет-магазина на Opencart, достаточно распространенной проблемой становятся дефолтные настройки CMS, мешающие правильному отображению различных элементов. Именно такую проблему мы и будем решать в данной статье.
Если в вашем магазине используются длинные названия опций, то наверняка вы сталкивались с проблемой, при которой, в момент оформления заказа, названия выбранных опций обрезаются. Причем, опции обрезаются не только в корзине покупок, но и в письме о совершенном заказе. Исходя из этого, критичным такое положение дел может быть не только для клиента, но и для менеджера магазина. Ведь, если опций много и идентифицировать их можно, скажем, только по последним символам, оформление корректного заказа станет проблемой.
Здесь мы рассмотрим алгоритм действий по решению проблемы для Opencart версии 2.3.
Не забывайте делать бэкап
Отключаем ограничение в 20 символов
Если вы не хотите вникать в причины (а так же имеете Opencart 2.3) и хотите просто отключить ограничения, воспользуйтесь модификатором.
Для этого на странице модификатора нажимаем кнопку
Затем распаковываем скачанный архив и переходим в админку сайта.
В админке переходим в раздел Модификаторы > Установка модификаторов. В данном разделе нажимаем на кнопку "установить модификатор" и выбираем скачанный файл option_length.ocmod.xml
После успешной установки модификатора ОБЯЗАТЕЛЬНО обновите кэш-модификаторов в разделе "Менеджер дополнений".
В результате, после установки модификатора, можно наблюдать полное название опций, как в корзине покупок, так и в письмах клиенту и администратору.
Я не советую вручную изменять файлы контроллера, т.к., в случае ошибки, вы рискуете получить неработащий ресурс. При использовании же модификаторов, исходные файлы Opencart остаются неизменными и при желании, вы легко сможете отключить конкретный модификатор прямо из админки.
Подробнее рассмотрим причины ограничений и принцип работы модификатора.
Начнем с order.php по адресу: "catalog/controller/account/order.php".
В данном файле найдите строчку:
utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20)
Именно здесь задается ограничение в 20ть символов. В данном случае оно накладывается на область оформления заказа.
Заменим эту строчку измененным вариантом:
utf8_strlen($value) > 255 ? utf8_substr($value, 0, 255)
Тем самым мы увеличим длину строки до 255 символов.
Аналогичным образом изменяем эту строчку в файлах:
- catalog/controller/checkout/cart.php
- catalog/controller/checkout/confirm.php
- catalog/controller/checkout/ez_cart.php
- catalog/controller/elements/common/cart.php
- catalog/controller/extension/payment/pp_standart.php
- catalog/controller/extension/payment/pp_express.php
- catalog/model/account/order.php
- catalog/model/checkout/order.php
- catalog/model/extension/payment/pp_express.php
После данных манипуляций ограничения у названий опций должны исчезнуть.
В зависимости от установленных модулей, количество файлов, нуждащихся в модификации, может возрастать.