Тема касается работы встроенного модуля seo_pro, все манипуляции будем производить в файле catalog/controller/common/seo_pro.php поехали Спорный вопрос, на который натолкнул автор этого поста. Нужен ли именно 301-й редирект, а не 302 если нужен именно он, то ищем header($this->request->server['SERVER_PROTOCOL'] . ' 301 Moved Permanently'); $this->response->redirect($this->cache_data['queries'][$route_]);и header($this->request->server['SERVER_PROTOCOL'] . ' 301 Moved Permanently'); $this->response->redirect($seo);заменяем эти блоки на $this->response->redirect($this->cache_data['queries'][$route_], 301);и $this->response->redirect($seo, 301);соответственно а если нужен 302-й редирект, то может быть стоит убрать из обоих блоков эту строку (все равно итоговая страница будет перенаправляться через 302-й, как указано в дефолтном значении Response -> redirect()): header($this->request->server['SERVER_PROTOCOL'] . ' 301 Moved Permanently');Для того, чтобы ssl работал не на всем сайте, а только на страницах, где он должен быть при включении ssl в настройках магазина ищем $seo = str_replace('&', '&', $this->url->link($this->request->get['route'], $this->getQueryString(array('route')), 'NONSSL'));заменяем на $seo = str_replace('&', '&', $this->url->link($this->request->get['route'], $this->getQueryString(array('route')), false));Ошибка была найдена благодаря товарищу spown Чтобы исправить поведение ссылок на главную страницу, включающих дополнительные аргументы (http://сайт.ру/?utm_campaign=test), необходимо найти $link .= '&' . urldecode(http_build_query($data, '', '&'));и заменить на $link .= (($route == 'common/home') ? '?' : '&') . urldecode(http_build_query($data, '', '&'));Проблема найдена благодаря этой теме