Убираем ограничение в 20 символов у названий опций в Opencart

При создании интернет-магазина на Opencart, достаточно распространенной проблемой становятся дефолтные настройки CMS, мешающие правильному отображению различных элементов. Именно такую проблему мы и будем решать в данной статье.

Ограничение в 20 символов у названий опций в корзине товаров

Если в вашем магазине используются длинные названия опций, то наверняка вы сталкивались с проблемой, при которой, в момент оформления заказа, названия выбранных опций обрезаются. Причем, опции обрезаются не только в корзине покупок, но и в письме о совершенном заказе. Исходя из этого, критичным такое положение дел может быть не только для клиента, но и для менеджера магазина. Ведь, если опций много и идентифицировать их можно, скажем, только по последним символам, оформление корректного заказа станет проблемой.

Здесь мы рассмотрим алгоритм действий по решению проблемы для Opencart версии 2.3.

Не забывайте делать бэкап

Отключаем ограничение в 20 символов

Если вы не хотите вникать в причины (а так же имеете Opencart 2.3) и хотите просто отключить ограничения, воспользуйтесь модификатором.

Для этого на странице модификатора нажимаем кнопку Кнопка Download ZIP

Затем распаковываем скачанный архив и переходим в админку сайта.

В админке переходим в раздел Модификаторы > Установка модификаторов. В данном разделе нажимаем на кнопку "установить модификатор" и выбираем скачанный файл 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

После данных манипуляций ограничения у названий опций должны исчезнуть.

В зависимости от установленных модулей, количество файлов, нуждащихся в модификации, может возрастать.