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

Одинковые ЧПУ (SEO URL) для разных языков в OpenCart 3 / ocStore 3


В поддержку моего модуля по массовой генерации ЧПУ для OpenCart часто обращаются с вопросом: как мне сделать одинаковые ЧПУ для русского и украинского языков (в принципе, проблема может встретьться и для других языков, просто такой расклад встречается в OpenCart чаще всего).

 

Так вот, этот бред (проверка в контроллере товара на эту самую одинаковость) вообще не понятно, зачем нужно. В Дизайн -> SEO URL можно спокойненько добавлять одинаковые ЧПУ для разных языков. На витрине все тоже прекрасно работает. А вот при сохранении товара в админке, нате Вам ошибочку...

 

Проблемка выглядит примерно так:

odinakovye-seo-url-dlya-raznyh-yazikov-opencart-3.thumb.jpg.eb94e094e2babdae10a4540ce9ab40df.jpg

 

 

Так вот, есть такой замечательный модификатор Allow Same SEO URL For Different Languages (OC3.0x), которые убирает это недоразумение.

 

В комментариях ниже, следовало объяснение, почему стоит, чтобы ЧПУ были разными для разных языков. Но с платным модулем SEO мультиязык / мультирегион 31 об этой заморочке можно не париться -

 

6 Comments


Recommended Comments

Странно, но что это?

 

		$seo_urls = $this->model_design_seo_url->getSeoUrlsByKeyword($this->request->post['keyword']);

		foreach ($seo_urls as $seo_url) {
			if ($seo_url['store_id'] == $this->request->post['store_id'] && $seo_url['query'] != $this->request->post['query']) {
				$this->error['keyword'] = $this->language->get('error_exists');
				
				break;
			}
		}

 

Link to comment
Цитата

На витрине все тоже прекрасно работает.

Поясните как прекрасно работает?
Вы на странице xyz , пусть en-gb

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

А теперь зашла ПС
Какой язык будет? дефолтный
 

Link to comment
В 23.06.2021 в 16:42, chukcha сказал:

Поясните как прекрасно работает?
Вы на странице xyz , пусть en-gb

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

А теперь зашла ПС
Какой язык будет? дефолтный
 

Зачастую в мультиязычных магазинах установлен модуль, чтобы делать папки для языка.

 

 

Есть также бесплатный вариант подобного модуля, который вроде бы называется даже похоже, но работает немного иначе и не создает папку языка для любой ссылки сайта. Соответствтенно, с использованием этого модуля, нельзя делать одинаковые ЧПУ для разных языков из-за проблемы, обозначенной @chukcha

В случае использования этого бесплатного модуля, в моем модуле стоит поставить в формулу префикс языка. К примеру, ru-[product_name].

 

  • +1 1
Link to comment
1 час назад, chukcha сказал:

Странно, но что это?

 


		$seo_urls = $this->model_design_seo_url->getSeoUrlsByKeyword($this->request->post['keyword']);

		foreach ($seo_urls as $seo_url) {
			if ($seo_url['store_id'] == $this->request->post['store_id'] && $seo_url['query'] != $this->request->post['query']) {
				$this->error['keyword'] = $this->language->get('error_exists');
				
				break;
			}
		}

 

Действительно странно, потому что ведь сохраняется!

В ocStore 3.0.2.0 - это 100%

Проверил в OpenCart 3.0.3.7 русская сборка - тоже сохраняется.

Link to comment
1 час назад, chukcha сказал:

if ($seo_url['store_id'] == $this->request->post['store_id'] && $seo_url['query'] != $this->request->post['query']) {

 

У меня глюк, или тут как раз таки выдаст ошибку, если новый ЧПУ будет отличаться от того, который в уже существует в базе?

Link to comment
Только что, SergeTkach сказал:

 

У меня глюк, или тут как раз таки выдаст ошибку, если новый ЧПУ будет отличаться от того, который в уже существует в базе?

Не, не выдает... Очень интересно

Link to comment

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.