Чтобы этого не происходило, в Opencart 2.3.x.x открываем файл:
catalog/model/tool/image.php
Здесь ищем следующую строку (в оригинальном файле – 11-я):
$image_new = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.' . $extension;
И заменяем её на:
if ($extension != 'gif') {
$image_new = 'cache/' . utf8_substr($filename, 0, utf8_strrpos($filename, '.')) . '-' . (int)$width . 'x' . (int)$height . '.' . $extension;
} else {
$image_new = $image_old;
}
Таким образом, мы добавили «условие», которое сообщает CMS, чтобы работала «как обычно», но в случае gif-изображений обрезку не делала.