Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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


Recommended Posts

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

Link to post
Share on other sites

  • 3 months later...

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

 

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

 

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

все эти "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 2
Link to post
Share on other sites

Я честно говоря не сильна в 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
Link to post
Share on other sites

для тех, кто:

		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
Link to post
Share on other sites
  • 9 months later...

Сюда же еще 

					if (isset($tmp['yclid'])) {
						$data['yclid'] = $tmp['yclid'];
					}
					if (isset($tmp['gclid'])) {
						$data['gclid'] = $tmp['gclid'];
					}
Link to post
Share on other sites

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

Link to post
Share on other sites
  • 7 months later...
  • 2 months later...

У меня в урле 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}

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

Edited by fjeka
Link to post
Share on other sites

  • 2 months later...
Подскажите что не так??

Нужно добавить 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;

Link to post
Share on other sites

  • 5 weeks later...

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

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

Link to post
Share on other sites

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

if (isset($tmp['ymclid'])) {
	$data['ymclid'] = $tmp['ymclid'];
					}
Link to post
Share on other sites

  • 4 weeks later...

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

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

Link to post
Share on other sites

 

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

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

 

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

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

Link to post
Share on other sites

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

 

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, вопрос почему?

Link to post
Share on other sites

  • 1 month later...

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

Link to post
Share on other sites

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

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

 

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

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

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

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

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

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

Edited by zorky
Link to post
Share on other sites

  • 2 weeks later...

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

Link to post
Share on other sites

  • 2 weeks later...

для 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
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.