Перейти к содержанию
zovax

[Решено] Seo pro режет ссылку

Рекомендуемые сообщения

Установлен модуль SEO PRO. В админке все включено.

Включить ЧПУ: да, Тип ЧПУ: SeoPro, ЧПУ товаров с категориями: да.

 

Но столклунлся с проблемой следущего рода.

 

Когда пытаюсь проставить UTM метки например: site/tovar?utm_medium=cpc&utm_source=reklama&utm_campaign=tovar&utm_content=2310906

 

То при переходе по этой сссылке "site/tovar?utm_medium=cpc&utm_source=reklama&utm_campaign=tovar&utm_content=2310906" , в адресной строке остается только "site/tovar" , все остальное фильтруется(урезается) и по этому статистические данные не передаются на ЯМ или ГА.

 

Когда отключаю SeoPro все нормально. Подскажите, что надо отредактировать чтоб ссылка не фильтровалась и полностью отображалась в адресной строке браузера.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ссылку на сайт бы увидеть

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

например если перейти по этой ссылке http://ely.com.ua/w-parfum/gucci-gucci-premiere?utm_medium=cpc&utm_source=reklama&utm_campaign=tovar&utm_content=2310906 то в адресной строке останится только http://ely.com.ua/w-parfum/gucci-gucci-premiere

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не имеет значение на каком сайте. тут связка opencart+seopro и фильтруются символы.  Как это можно исправить? Чтоб ссылка с меткой отображались в адресной строке полностью, а не только ссылка.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

То же столкнулась с такой проблемой, правда в моем случае если ставить метку на категорию, то метки считываются!

 

Как я поняла, в seo_pro.php за это отвечает

 

if (count($data)) {
$seo_url .= '?' . urldecode(http_build_query($data, '', '&'));
}
 
Правда как сделать так, чтобы в товаре метка метка не терлась, пока не знаю, если появятся идеи - пишите, если разберусь, отпишусь так же!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

все эти "utm_" надо @добавлять в исключения@ в контроллере seo_pro [=== catalog/controller/common/seo_pro.php ===] :

		switch ($route) {
			case 'product/product':
				if (isset($data['product_id'])) {
					$tmp = $data;
					$data = array();
					if ($this->config->get('config_seo_url_include_path')) {
						$data['path'] = $this->getPathByProduct($tmp['product_id']);
						if (!$data['path']) return $link;
					}
					$data['product_id'] = $tmp['product_id'];
					if (isset($tmp['tracking'])) {
						$data['tracking'] = $tmp['tracking'];
					}
				}
				break;
по аналогии с

					if (isset($tmp['tracking'])) {
						$data['tracking'] = $tmp['tracking'];
					}
(это для товара; для категорий - там ниже код).
  • +1 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я честно говоря не сильна в php, покопалась, в итоге сделала так:

 

удалила блок кода из [=== catalog/controller/common/seo_pro.php ===] :

 

case 'product/product':
if (isset($data['product_id'])) {
$tmp = $data;
$data = array();
if ($this->config->get('config_seo_url_include_path')) {
$data['path'] = $this->getPathByProduct($tmp['product_id']);
if (!$data['path']) return $link;
}
$data['product_id'] = $tmp['product_id'];
if (isset($tmp['tracking'])) {
$data['tracking'] = $tmp['tracking'];
}
}
break;
 
Результат - чпу товаров остались, при этом есть возможность ставить utm метки, не знаю насколько это правильно, но вроде все работает, 
 
Спасибо!
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для тех, кто:

		switch ($route) {
			case 'product/product':
				if (isset($data['product_id'])) {
					$tmp = $data;
					$data = array();
					if ($this->config->get('config_seo_url_include_path')) {
						$data['path'] = $this->getPathByProduct($tmp['product_id']);
						if (!$data['path']) return $link;
					}
					$data['product_id'] = $tmp['product_id'];
					if (isset($tmp['tracking'])) {
						$data['tracking'] = $tmp['tracking'];
					}
					// --- add below
					if (isset($tmp['utm_medium'])) {
						$data['utm_medium'] = $tmp['utm_medium'];
					}
					if (isset($tmp['utm_source'])) {
						$data['utm_source'] = $tmp['utm_source'];
					}
					if (isset($tmp['utm_campaign'])) {
						$data['utm_campaign'] = $tmp['utm_campaign'];
					}
					if (isset($tmp['utm_content'])) {
						$data['utm_content'] = $tmp['utm_content'];
					}
					// --- add above
				}
				break;
  • +1 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сюда же еще 

					if (isset($tmp['yclid'])) {
						$data['yclid'] = $tmp['yclid'];
					}
					if (isset($tmp['gclid'])) {
						$data['gclid'] = $tmp['gclid'];
					}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я только не пойму почему так сделано, почему seo_pro удаляет переменные get ? Не понимаю я этого

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я добавил еще 

 

					if (isset($tmp['utm_term'])) {
						$data['utm_term'] = $tmp['utm_term'];
					}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня в урле utm метка не режется, а отображается полностью. Но в метрике показываются только первые 3 параметра. Ссылка выглядит так:

site.ru/tovar.html?utm_source=yandex&utm_medium=cpc&utm_campaign=tovar&type={source_type}&source={source}&block={position_type}&position={position}&keyword={keyword}

В seopro добавил такие строчки

// --- add utm
if (isset($tmp['utm_source'])) {
$data['utm_source'] = $tmp['utm_source'];
}
if (isset($tmp['utm_medium'])) {
$data['utm_medium'] = $tmp['utm_medium'];
}
if (isset($tmp['utm_campaign'])) {
$data['utm_campaign'] = $tmp['utm_campaign'];
}
if (isset($tmp['type'])) {
$data['type'] = $tmp['type'];
}
if (isset($tmp['source'])) {
$data['source'] = $tmp['source'];
}
if (isset($tmp['block'])) {
$data['block'] = $tmp['block'];
}
if (isset($tmp['position'])) {
$data['position'] = $tmp['position'];
}
if (isset($tmp['keyword'])) {
$data['keyword'] = $tmp['keyword'];
}
if (isset($tmp['yclid'])) {
$data['yclid'] = $tmp['yclid'];
}
if (isset($tmp['gclid'])) {
$data['gclid'] = $tmp['gclid'];
}
// --- add utm

Почему последние 5 параметров

&type={source_type}
&source={source}
&block={position_type}
&position={position}

&keyword={keyword}

не попадают в метрику?

Изменено пользователем fjeka

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Подскажите что не так??

Нужно добавить yclid метки, а то метрика начала глючить.

 

Скопировал как в примере и не зная как именно и что там добавлять - добавил как смог =)

 

И все равно не работает. Когда добавляю в конце  http://example-shop.ru/offer.html?ymclid=123456  обратно переадресовывает в нормальный вид (без"?ymclid=123456").

 

Удалял $data = array(); тож не помогает =(

Хелп!

 

 

 

$data = array();

parse_str($component['query'], $data);

 

$route = $data['route'];

unset($data['route']);

 

switch ($route) {

case 'product/product':

if (isset($data['product_id'])) {

$tmp = $data;

$data = array();

if ($this->config->get('config_seo_url_include_path')) {

$data['path'] = $this->getPathByProduct($tmp['product_id']);

if (!$data['path']) return $link;

}

$data['product_id'] = $tmp['product_id'];

if (isset($tmp['tracking'])) {

$data['tracking'] = $tmp['tracking'];

}

// --- add utm

if (isset($tmp['utm_yclid'])) {

$data['utm_yclid'] = $tmp['utm_yclid'];

}

if (isset($tmp['yclid'])) {

$data['yclid'] = $tmp['yclid'];

}

if (isset($tmp['utm_source'])) {

$data['utm_source'] = $tmp['utm_source'];

}

if (isset($tmp['utm_medium'])) {

$data['utm_medium'] = $tmp['utm_medium'];

}

if (isset($tmp['utm_campaign'])) {

$data['utm_campaign'] = $tmp['utm_campaign'];

}

if (isset($tmp['type'])) {

$data['type'] = $tmp['type'];

}

if (isset($tmp['source'])) {

$data['source'] = $tmp['source'];

}

if (isset($tmp['block'])) {

$data['block'] = $tmp['block'];

}

if (isset($tmp['position'])) {

$data['position'] = $tmp['position'];

}

if (isset($tmp['keyword'])) {

$data['keyword'] = $tmp['keyword'];

}

if (isset($tmp['yclid'])) {

$data['yclid'] = $tmp['yclid'];

}

if (isset($tmp['gclid'])) {

$data['gclid'] = $tmp['gclid'];

}

// --- add utm

 

}

break;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Также вставил в код, как автор tdl13

Не помогает. Все равно метка отбрасывается. как быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Starter,tdl13 Для яндекс-маркета нужно добавить:

if (isset($tmp['ymclid'])) {
	$data['ymclid'] = $tmp['ymclid'];
					}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребят, как увидеть что UTM метка режется модулем SEO Pro? Просто по ссылке с ней перейти? Метка должна оставаться после загрузки страницы так?

В самом прайсе-выгрузке для маркета метка видна все ок.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Starter,tdl13 Для яндекс-маркета нужно добавить:

if (isset($tmp['ymclid'])) {
	$data['ymclid'] = $tmp['ymclid'];
					}

 

Мог бы кто то в едином посте привести пример кода для Маркета, который нужно вставить в SeoPro чтобы метки не отбрасывались?

Метка такая: utm_medium=market&utm_term={product_id}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прочитав весь пост, вставил следующий код, вроде учел все сообщения:

 

switch ($route) {
            case 'product/product':
                if (isset($data['product_id'])) {
                    $tmp = $data;
                    $data = array();
                    if ($this->config->get('config_seo_url_include_path')) {
                        $data['path'] = $this->getPathByProduct($tmp['product_id']);
                        if (!$data['path']) return $link;
                    }
                    $data['product_id'] = $tmp['product_id'];
                    if (isset($tmp['tracking'])) {
                        $data['tracking'] = $tmp['tracking'];
                    }
                    if (isset($tmp['utm_medium'])) {
                        $data['utm_medium'] = $tmp['utm_medium'];
                    }
                    if (isset($tmp['utm_source'])) {
                        $data['utm_source'] = $tmp['utm_source'];
                    }
                    if (isset($tmp['utm_campaign'])) {
                        $data['utm_campaign'] = $tmp['utm_campaign'];
                    }
                    if (isset($tmp['utm_content'])) {
                        $data['utm_content'] = $tmp['utm_content'];
                    }
                    if (isset($tmp['yclid'])) {
                        $data['yclid'] = $tmp['yclid'];
                    }
                    if (isset($tmp['gclid'])) {
                        $data['gclid'] = $tmp['gclid'];
                    }
                    if (isset($tmp['utm_term'])) {
                        $data['utm_term'] = $tmp['utm_term'];
                    }
                }
                break;

 

Но проблема осталась, метка частично только остается конечная часть режется все равно:

От ?utm_medium=market&utm_term=2021

Остается тока ?utm_medium=market, вопрос почему?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подскажите, как настроить seo pro, чтоб не резал основную рубрику 

 

Чтоб было 

http://www.адрес.ру/категория/товар

А не 

http://www.адрес.ру/товар

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Укажите в настройках магазина, вкладка сервер - там где выбор seo_pro - показывать товары с категориями - "да".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Укажите в настройках магазина, вкладка сервер - там где выбор seo_pro - показывать товары с категориями - "да".

Да, я главного не сказал.. мне нужна только основная категория, субкатегории не нужны

 

В идеале Надо чтоб при перемещении по категориям и субкатегориям адрес был вида

 http://www.pishpro.ru/categories/субкатегория

 (сейчас это /categories/субкатегория/субкатегория и тд. в зависимости от вложенности)

А при заходе в товар адрес был вида 

http://www.pishpro.ru/products/товар 

(только основная категория products, без подрубрик) сейчас это /products/субкатегория/субкатегория/товар в зависимости от вложенности.

Изменено пользователем zorky

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для opencart 2 все вышеперечисленное не работает, есть у кого мысли?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

для opencart 2 все вышеперечисленное не работает, есть у кого мысли?

 

Да вроде работает. Вот так себе сделал, пока не знаю на счет всех добавленных исключений, но яндекс метрика стала показывать переходы по рекламе.

switch ($route) {
			case 'product/product':
				if (isset($data['product_id'])) {
					$tmp = $data;
					$data = array();
					if ($this->config->get('config_seo_url_include_path')) {
						$data['path'] = $this->getPathByProduct($tmp['product_id']);
						if (!$data['path']) return $link;
					}
					$data['product_id'] = $tmp['product_id'];
					if (isset($tmp['tracking'])) {
						$data['tracking'] = $tmp['tracking'];
					}
					// --- add below
					if (isset($tmp['utm_medium'])) {
						$data['utm_medium'] = $tmp['utm_medium'];
					}
					if (isset($tmp['utm_source'])) {
						$data['utm_source'] = $tmp['utm_source'];
					}
					if (isset($tmp['utm_campaign'])) {
						$data['utm_campaign'] = $tmp['utm_campaign'];
					}
					if (isset($tmp['utm_content'])) {
						$data['utm_content'] = $tmp['utm_content'];
					}
					if (isset($tmp['yclid'])) {
						$data['yclid'] = $tmp['yclid'];
					}
					if (isset($tmp['ymclid'])) {
					$data['ymclid'] = $tmp['ymclid'];
					}
					if (isset($tmp['gclid'])) {
						$data['gclid'] = $tmp['gclid'];
					}
					if (isset($tmp['utm_term'])) {
						$data['utm_term'] = $tmp['utm_term'];
					}
					if (isset($tmp['type'])) {
					$data['type'] = $tmp['type'];
					}
					if (isset($tmp['block'])) {
					$data['block'] = $tmp['block'];
					}
					if (isset($tmp['position'])) {
					$data['position'] = $tmp['position'];
					}
					if (isset($tmp['keyword'])) {
					$data['keyword'] = $tmp['keyword'];
					}
					// --- add above

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.