Автоматическая генерация SEO URL чпу в Opencart 2

Дата: 01.03.2018 Просмотров: 4653 Комментарии: 6

Часто занимаюсь оптимизацией opencart, ocstore и очень часто встречаю уже работающие магазины у которых url заполнены неправильно.

Например, в одном урле может встречаться латиница, кириллица, даже спецсимволы и все это счастье в разных регистрах. Смотрится ужасно.

И все бы ничего, можно забить, но поисковые системы не всегда могут воспринять положительно такие урлы. Да и такая размещенная безанкорная ссылка на ваш ресурс, скажем, где-то на форуме будет смотреться не очень.

В связи с этим был сделан ocmod после установки которого в товарах и категориях ЧПУ генерируется автоматически.

Генерация seo url в opencart будет происходить налету.

Генерация SEO URL в Opencart

Скачать - 2.33 KB

UPD:

Итак, прошел уже почти год со дня публикации этого поста и пора бы его обновить

Выше по ссылке лежит ocmod который в opencart генерирует seo url автоматически "налету" во время создания товара, категории или статьи. А как же быть если уже созданы тысячи товаров и вы не заполнили поле SEO-URL? Неужели придется снова открывать каждый товар и пересохранять для генерации урла? Конечно же, нет!

В таких случаях я использую в Ocstore и Opencart SEO-URL генератор. Этот скрипт идеально подходит для таких вещей, когда уже заполнена база данных товарами, категориями и информационными страницами. Это не модуль и не дополнение, а простой PHP скрипт, способный генерировать все SEO урлы для ваших товаров, категорий и статей, если они отсутствуют.

Знаю, что есть специальные модули для создания seo url в opencart 2, но я решил это более простым и эффективным способом - не нужно устанавливать расширение, если вы можете заполнить URL-псевдоним простым запуском скрипта. После завершения работы его можно удалить или переименовать чтобы "доброжелатели" не смогли найти к нему путь и запустить без вашего ведома. Впрочем, не страшно) Ранее созданные seo url не перезаписываются!

Как это работает?

Сценарий будет обрабатывать все ваши товары, пытаясь найти совпадение в таблице URL-алиасов. Если совпадение по id найдено, никаких действий не будет выполнено. В противном случае скрипт преобразует наименование товара в латиницу, вырежет из него спецсимволы и запишет в поле URL-адрес, ориентированный на SEO.

Как массово генерировать seo url?

Скачайте и загрузите файл url_alias.php в корень вашего сайта (это там где лежат папки admin и catalog)
Запустите, перейдя по ссылке: yourdomain.com/url_alias.php
Далее следуйте по инструкции, скрипт сам подскажет что делать.

  • Для удобства мы запаковали файл ocmod.zip так что можете его смело загружать через менеджер дополнений.
  • Работает на всех версиях и сборках Opencart и OcStore!

Массовая генерация SEO URL в Opencart

Скачать - 2.71 KB

Комментарии

Наталья Касило
Наталья Касило 05.02.2019

Здравствуйте, подскажите - для категорий создали URL, а для товаров - нет. Пишет -Ошибка в типе содержимого Страница, которую вы пытаетесь просмотреть, не может быть показана, так как она использует неверную или неподдерживаемую форму компрессии. Пожалуйста, свяжитесь с владельцами веб-сайта и проинформируйте их об этой проблеме. Подскажите , что делать?

Наталья Касило
Наталья Касило 05.02.2019

Все получилось! Спасибо, класс!!!

Ответ Админ

Ок.

Денис Закиров
Денис Закиров 22.02.2019

Здравствуйте. Все работает, но проблема заключается в том, что на конце урла герерируется ID товара или категории... как это убрать?

Ответ Админ

Замените 62 строку

$url = ($str . '-' . rand(10,99));

на

$url = $str;

Катерина Порбело
Катерина Порбело 02.03.2019

Спасибо! Отличное решение!

Андрей Щукин
Андрей Щукин 14.03.2019

Запускаю Ваш чудо файл, жму Сгенерировать SEO-URL для товаров или Сгенерировать SEO-URL для категорий, и получаю вот такую ошибку: Fatal error: Uncaught Exception: Error: Table 'opencart.oc_url_alias' doesn't exist<br />Error No: 1146<br />SELECT * FROM oc_url_alias WHERE query = 'product_id=28' in /var/www/admin/www/system/library/db/mysqli.php:40 Stack trace: #0 /var/www/admin/www/system/library/db.php(45): DB\MySQLi->query('SELECT * FROM o...') #1 /var/www/admin/www/url_alias.php(110): DB->query('SELECT * FROM o...') #2 {main} thrown in /var/www/admin/www/system/library/db/mysqli.php on line 40 В чем может быть проблема?

Ответ Админ

Это скрипт для Opencart 2. Вы запускаете на тройке.

Виталий Сулейманов
Виталий Сулейманов 30.03.2019

А как быть если товаров очень много и выдает Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 79 bytes) in /system/library/db/mysqli.php on line 24 Как доработать скрипт, чтобы он брал по частям, а не все товары сразу?

Ответ Админ

Просто запустите его заново. Или на CRON повесьте. У меня на клиентских сайтах висит на кроне ежедневный запуск, клиенты вообще не парятся с заполнением url.

Написать комментарий


Популярные предложения