Ремонт компьютера
Сборка, чистка, апгрейт ремонт любой техники.
Замена частей, установка ПО, установка Windows, антивируса.
Удаленная помощь без вызова на дом.
Создание сайта
Создание сайта с нуля, модулей, скриптов для сайта.
Движки Joomla, Wordpress, Opencart, Prestashop и тд.
SEO продвижение, ремонт, оптимизация сайта.

Настройка ЧПУ в Opencart + DeadCow

Начнем с того что это болезненная тема, начитавшись и насмотревшись в инете, этих страшных способов исправление и возни с SeoPRO и url_alies. Наконец нашел способ чтобы везде все красиво было. Настройка ЧПУ в Opencart + DeadCow… 

НОВОЕ!!!

1ая версия: 

1)Ссылки теперь у категории даже третьего уровня выглядят так:
http://proclimate.by/kondicionirovanie/bytovye-kondicionery/nastennye-split-sistemy/

2)Производители тоже без route=:
http://proclimate.by/ariston/

2ая версия +:

3) Все родные ссылки можно генерировать типа «регистрация», «Оплата»,
«О нашей компании», «Доставка».

4) Генерировать seourl в статьях по названию статей.

5) генерирует не заменяя текущие (например раскрученны текущие url’ы).

3я версия+:

6) Теперь генерируем ссылки у картинок в opencart, через транслитерацию, чтобы везде были красивые, без русских символов.

Когда возился с картинками добавляя в яндекс маркете, особенно помогло.

Так что нам нужно

1) скачиваем DeadCow с моими исправлениями и распаковываем его в корень, заходим в админку. Заходим в Дополнения-> Модули, в строке deadCow нажимаем установить, после заходим в изменить в той же строке.



2) Нажимаем сгенерировать категории,товары,производители, остальные по желанию, может с тегами не пахать (у разных версий opencart).

3) заходим в система -> настройки -> изменить -> сервер.
Включить ЧПУ  -> да;
Тип ЧПУ  -> SEOPRO;
ЧПУ товаров с категориями -> да;
сохранить.

Все должно пахать, если не пашет убедитесь что файлик .htaccess переименован из  .htaccess.txt в  .htaccess.

Если проблемма с производителями

Для тех у кого проблема с производителями как было у меня. Найдена ошибка в файле \catalog\controller\common\seo_pro.php.

Заменяем это:
} elseif (isset($this->request->get['manufacturer_id'])) {
$this->request->get['route'] = 'product/manufacturer/product';

 

на это:
} elseif (isset($this->request->get['manufacturer_id'])) {
$this->request->get['route'] = 'product/manufacturer/info';

 

Авто генерация SEOurl

Если хотите чтобы SEOurl генерировался автоматически при добавлении товара в админке то откроем файл \admin\model\catalog\product.php. Найдем там функцию
public function addProduct($data)

и после
foreach ($data['product_description'] as $language_id => $value) { 

вставим это:

// SEO урл
$this->load->model('module/deadcow_seo');
$this->db->query("DELETE FROM " . DB_PREFIX . "url_alias WHERE query = 'product_id=" . (int) $product_id . "'");
$this->model_module_deadcow_seo->generateProduct($product_id,$value['name'], "", "", '[product_name]', (int)$language_id);
// конец seo

Теперь при добавлении файла, функция deadcow будет генерировать ей seourl.

И все должно пахать, если не получилось пишем как всегда в комменты. Тестировалось на версии 1.5.5.1.1.

P.S. В третьей версии обнаружена проблема, с модулем который отсутствовал у вас, поэтому тех у кого показывало ошибку (Notice: Undefined index: seo_title in), перекачайте, исправлено.
P.S. Если у вас после генерирования базовых не пашут ссылки читаем тут (opencart 2.x).
P.S.S. Заметил что у некоторых после нажатия сгенерровать товар, не сразу применяются урлы, для seopro (у второй версии опенкарт). Убедитесь что у товара указана главная категория, и очистите кеш. Или просто, можете отключить кеш в seopro:

public function __construct($registry) {
 parent::__construct($registry);
 //$this->cache_data = $this->cache->get('seo_pro'); удалите строку или как у меня со слешами сделайте
 if (!$this->cache_data) {
 $query = $this->db->query("SELECT LOWER(`keyword`) as 'keyword', `query` FROM " . DB_PREFIX . "url_alias ORDER BY url_alias_id");
 $this->cache_data = array();

Обычно файлик либо по стандартному пути:
\catalog\controller\common\seo_pro.php

Либо по переопределенному:
\system\storage\modification\catalog\controller\common\seo_pro.php

Наслаждайтесь =).

Название статьи при не правильной раскладке клавиатуры: Yfcnhjqrf ЧGE d Opencart + DeadCow
Если вдруг появилось желание поблагодарить автора,просто нажмите на рекламу чуть ниже, этого будет достаточно :)

40 комментариев

  1. xzist:

    Notice: Undefined property: Loader::$language in /home/p422409/www/sdkey.de/system/engine/loader.php on line 64
    Fatal error: Call to a member function load() on a non-object in /home/p422409/www/sdkey.de/system/engine/loader.php on line 64

    • Chizi:

      какой то переменной не хватает, поэтому лучше ставить на чистый, и не забываем бэкупиться перед установкой. Если еще актуально, пиши в личку, быстро исправим вместе.

  2. Инна:

    Добрый день! Не подскажите, как исправить, выскакивают 3 ошибки при генерации категорий, производителей и тегов.
    1. При генерации категорий
    Notice: Error: Subquery returns more than 1 row
    Error No: 1242
    SELECT c.category_id, (SELECT keyword FROM oc_url_alias WHERE query = CONCAT( ‘category_id=’, c.category_id )) AS keyword, cd.name FROM oc_category c LEFT JOIN oc_category_description cd ON (c.category_id = cd.category_id) WHERE cd.language_id = ‘4’ ORDER BY c.sort_order, cd.name ASC in /home/……./public_html/system/database/mysql.php on line 50

    2. При генерации производителей
    Warning: mysql_query(): Unable to save result set in /home/……../public_html/system/database/mysql.php on line 22Notice: Error: Subquery returns more than 1 row
    Error No: 1242
    SELECT m.manufacturer_id, (SELECT keyword FROM oc_url_alias WHERE query = CONCAT(‘manufacturer_id=’, m.manufacturer_id)) AS keyword, m.name FROM oc_manufacturer m ORDER BY m.name ASC in /home/……./public_html/system/database/mysql.php on line 50

    3. При генерации тегов
    Notice: Error: Table ‘stepashk_shop.oc_product_tag’ doesn’t exist
    Error No: 1146
    DELETE FROM oc_product_tag WHERE product_id = 42 and language_id = 1 in /home/……./public_html/system/database/mysql.php on line 50

    Заранее спасибо

  3. Борис:

    День добрый, стоит Версия ocStore 2.1.0.1
    захожу в редактор Deadcow выходит ошибка (скрин во вложении) пробовал все версии

    Прикреплен:

    • Chizi:

      Да нужно дописать в стате, извиняюсь,
      чтобы ЧИТАЛИ ФАЙЛИК readme!!!
      это из-за несовместимости версий, как исправлено написано в файле:
      readme.txt

  4. Влад:

    Notice: Undefined index: seo_title in /home/i/infoaiiq/aika-tv.ru/public_html/admin/model/catalog/product.php on line 471Notice: Undefined index: seo_h1 in /home/i/infoaiiq/aika-tv.ru/public_html/admin/model/catalog/product.php on line 472

    Вот что мне пишет в админке в карточке товара

  5. Спасибо огромное! До этого со стандартным модулем вылетал в белый экран.

  6. Добрый день. Версия движка 2.1.0.2.1 В модуле Deadcow 3.0 есть функция перезаписывать всЁ и только пустые SEO. Вот когда выбираешь Пустые Seo для category то ничего не прописывается. Естественно если выбираешь перезаписать все, то и существующие урл перезаписываются. Не подскажите?

Добавить комментарий

Ваш e-mail не будет опубликован.

Вставьте верное число *