Последние изменения:

  • 2015-02-10: [+] Добавлена опция скрытия языка по умолчанию из URL.
  • 2015-02-11: bugfix: text_home, button_cart, etc. Исправлена неправильная инициализация языка, убивавшая предыдущую загрузку.
  • 2015-04-08: используйте исправленный генератор sitemap.xml вместо стандартного "Google Sitemap"
  • 2016-01: меньше проблем с curl и API => оставшиеся 303 редиректы заменены на 301. Проверена и улучшена совместимость с 2.1.0.1 / 2102 (несовместимость была только в языковых ресурсах, а так всё работало). Добавлена украинская локализация.

Описание модуля

SeoPro является альтернативой стандартной библиотеке "seo_url". Модуль исключает физические дубликаты страниц, используя для этого редиректы и ввод нового понятия единственной "главной категории" для товаров, которые принадлежат нескольким категориям.

Что мы получаем при использовании SeoPro:

  • каждый товар имеет единственный физический адрес (URL) и в результате - одинаковые "хлебные крошки", откуда бы посетитель не пришёл на страницу товара;
  • товар по-прежнему может принадлежать нескольким категориям;
  • во всём магазине больше нет разных адресов, ведущих на одну и ту же страницу;
  • все запросы к табице url_alias кешируются для увеличения производительности;
  • любому адресу можно назначить красивый URL;
  • код языка включён в URL: поисковики (Google, Яндекс и другие) теперь могут индексировать описания товаров на всех языках - мультиязычные ссылки! Поддерживается hreflang;
  • опционально можно скрыть язык по умолчанию из URL (переключается в админке);

  • модуль НЕ ЗАНИМАЕТСЯ генерацией ЧПУ!

    Если наполняете магазин вручную, можем предложить модуль Автозаполнения SEO-URL при создании и редактировании товаров.

    Если у вас уже есть много товаров в магазине и надо сгенерировать новые ЧПУ для всех товаров сразу - поищите модули автоматической массовой генерации ЧПУ.

Тестировалось на Opencart v2.0.1.1 (oc2011), 2.0.2.0, 2.0.3.1, 2.1.0.1.

Должно работать на oc2010, может быть oc2000. Использование oc2000 не рекомендуется: обновитесь до oc2011.

Если вы ищете более старые версии (например, для Opencart v1564), переключите репозиторий на ветку oc1564 (или другую подходящую):

Техподдержка

Для получения консультаций и помощи: http://rb.labtodo.com/forum/forum/9/seoprooc2-dlya-opencart-20x/

Мы понимаем русский, украинский и английский языки.

Если вы заказываете услугу установки, укажите в комментарии к заказу параметры доступа:

  • к FTP (хост, логин, пароль)
  • и в админ-часть Опенкарт-магазина (логин / пароль и адрес входа, если он нестандартный).

Установка

  • Перед установкой SeoPro надо установить "OCMOD Multiline fix"

    См. http://www.opencartjazz.com/ru/opencart-bugfix/oc2011-bugfix-extension-installer

    Он требуется для правильной установки наших OCMOD-модулей.

    Если вы получаете ошибку

    Fatal error: Call to undefined method ControllerCatalogProduct::getAllCategories()
    in ***/system/modification/admin/controller/catalog/product.php on line 1036
    

    она может быть вызвана отсутствием "Multiline OCMOD fix" при установке модуля. Установите его (там всего 2-3 строки добавить) и повторите процедуру установки.

  • Зайдите в phpMyAdmin, выберите базу своего опенкарт-магазина. Выполните запрос:

    ALTER TABLE `product_to_category` ADD `main_category` tinyint(1) NOT NULL DEFAULT '0';
    ALTER TABLE `product_to_category` ADD INDEX `main_category` (`main_category`);
    

    если вы используете префикс таблиц, добавьте его к имени таблицы (например: для префикса oc_ используйте oc_product_to_category);

    Если вы получите сообщение об ошибке Error Code: 1060. Duplicate column name 'main_category', ничего страшного: значит, эта колонка уже есть в таблице. Продолжайте установку.

  • Внесите изменения в файл index.php в корневой папке магазина: найдите строку

    $controller->addPreAction(new Action('common/seo_url'));
    

    и замените её на следующие строки:

    if (!$seo_type = $config->get('config_seo_url_type')) {
        $seo_type = 'seo_url';
    }
    $controller->addPreAction(new Action('common/' . $seo_type));
    

    НЕ ИСПОЛЬЗУЙТЕ ДЛЯ РЕДАКТИРОВАНИЯ WINDOWS NOTEPAD! Пользуйтесь, например, Notepad++ http://notepad-plus-plus.org/. Файлы должны быть сохранены в кодировке UTF-8 без BOM маркера.

Мини-FAQ

  • Q: почему не включить эти изменения в OCMOD?
  • A: Потому что если включить, инсталлятор рухнет в процессе обновлений или установки на систему, где попытки установки SeoPro уже были. У OCMOD инсталлятора нет механизмов обработки таких ошибок. Возможности игнорировать эту ошибку тоже.

    Альтернативное решение - удалить эту колонку и создать её заново. Непродуманность инсталлятора это позволит обойти, но ценой потери ваших данных. Кому это надо? Включать такой вариант в автоустановщик нельзя.

    Поэтому несколько действий надо произвести вручную.

    index.php также недоступен для механизма внесения модификаций через OCMOD, поэтому его в любом случае придётся редактировать вручную.

Проверка персональных настроек и переключение на SeoPro

  • переименуйте .htaccess.txt в .htaccess, если это не было сделано ранее. Проверьте правило RewriteBase. Если магазин установлен на свой домен или субдомен, директива должна выглядеть как RewriteBase /. Если магазин установлен в подпапку, например "www.abc.ru/shop/", то здесь надо написать RewriteBase /shop/. Пример:

    RewriteBase /
    # RewriteBase /shop/
    
    RewriteRule ^sitemap.xml$       index.php?route=feed/google_sitemap [L]
    RewriteRule ^ru/sitemap.xml$ ru/index.php?route=feed/google_sitemap [L]
    RewriteRule ^en/sitemap.xml$ en/index.php?route=feed/google_sitemap [L]
    

    также добавьте здесь правила для всех языков, которые используются в магазине;

  • Теперь заходим в админку магазина и устанавливаем OCMOD:

    • установите расширение ocjazz-seopro-v2.0.1.ocmod.zip в меню (Extensions / Extension installer),
    • откройте меню "Extensions / Modifications" и нажмите кнопку ообновления,
    • откройте пункт меню "Extensions / Modules" и установите модуль [OCJazz] SeoPro. После установки нажмите "Редактировать" и обязательно сохраните настройки модуля,
    • отредактируйте товары: на вкладке "Links" (Связи) надо установить "Main category" (главную категорию) и сохранить,
    • отредактируйте категории: поле SEO URL (ЧПУ) должно быть заполнено во всех категориях,
    • откройте настройки магазина, там перейдите во вкладку "Server" (Сервер):

      • включите переключатель "Use SEO URLs" (использовать SEO URL) в позицию "Включено",

      • переключите тип "SEO URL Type" в выпадающем списке с "default (SeoUrl)" на SeoPro,

      • выберите, включать или нет категории в SEO URL "SEO URL for product with categories":

        • если ДА, путь к товару будет выглядеть примерно так: example.com/category-subcategory/subcategory/product.html,
        • если НЕТ - сразу идёт сеокейворд товара: example.com/product.html
      • выберите окончание ссылок "SEO URL ending" (например, ".html") или оставьте это поле пустым.

Красивые ЧПУ на любой роут

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

Для этого откройте phpMyAdmin или аналогичную программу для работы с БД. Выполните следующий запрос.

Если у вас используется префикс таблиц, добавьте его перед именем таблицы. Например, если префикс "oc_", имя таблицы url_alias в запросе надо заменить на oc_url_alias.

INSERT INTO url_alias (query, keyword) VALUES
('common/home',           ''),
('account/wishlist',      'wishlist'),
('account/account',       'my-account'),
('checkout/cart',         'shopping-cart'),
('checkout/checkout',     'checkout'),
('account/login',         'login'),
('account/logout',        'logout'),
('account/order',         'order-history'),
('account/newsletter',    'newsletter'),
('product/special',       'specials'),
('affiliate/account',     'affiliates'),
('checkout/voucher',      'gift-vouchers'),
('product/manufacturer',  'brands'),
('information/contact',   'contact-us'),
('account/return/insert', 'request-return'),
('information/sitemap',   'sitemap'),
('account/forgotten',     'forgot-password'),
('account/download',      'downloads'),
('account/return',        'returns'),
('account/transaction',   'transactions'),
('account/register',      'create-account'),
('product/compare',       'compare-products'),
('product/search',        'search'),
('account/edit',          'edit-account'),
('account/password',      'change-password'),
('account/address',       'address-book'),
('account/reward',        'reward-points'),
('affiliate/edit',        'edit-affiliate-account'),
('affiliate/password',    'change-affiliate-password'),
('affiliate/payment',     'affiliate-payment-options'),
('affiliate/tracking',    'affiliate-tracking-code'),
('affiliate/transaction', 'affiliate-transactions'),
('affiliate/logout',      'affiliate-logout'),
('affiliate/forgotten',   'affiliate-forgot-password'),
('affiliate/register',    'create-affiliate-account'),
('affiliate/login',       'affiliate-login');

Это внесёт в базу большинство синонимов для адресов страниц, используемых в Опенкарт. Вы можете изменить их на свои или добавить новые, если здесь что-то забыто.

Очистите системный кеш (удалите в папке "system/cache/" все файлы кроме index.html) и обновите главную страницу магазина в браузере.

What the main idea of SeoPro and what the difference from default SeoUrl

In Russian: http://opencartforum.ru/topic/20526-seopro-vs-seourl/

Product can be assigned to SEVERAL categories in Opencart. This is why product can have different URLs out of the box with standard SeoUrl (seo_url) library.

  • How this works with default SeoUrl?

    By specifying CANONICAL meta tag. Product can have several physical addresess in the shop, have categories and subcategories in URL, and so on. But all of them point to one canonical address: domain.com/seokeyword. This is canonical address of the product page.

    There is all okay for search engines. Opencart tolds the right logical address to search engines, shop have multiple physical addresess for product pages.

    Webmaster tools logs this situation and show the stats: how many physical pages point to their canonical address and therefore not counted as different pages.

  • How this solved with SeoPro?

    SeoPro adds the MAIN CATEGORY term for products and changes the library that forms URLs. Product still can be assigned to several categories, but you must decide: which category is main (canonical address).

    This allows to recover full category path from any point, when we have only product_id and don't have the path parameter. As result - we now able to have the unified product URL (with full path) in modules on home page: such as Bestsellers module, for example. The Opencart engine can now return one unified URL for product.

    Canonical URL = physical URL. No more physical address duplicates pointing to one canonical URL.

    Canonical address of the product now can contain full category path. Or do not use categories-ased path -- this can be selected in settings.

See also:

Authors

Author: Yesvik, 2011 (opencartforum.ru, ocStore)

Contributors

Opencart 2.x

Opencart / ocStore 1.5.x

Совместимость
Opencart 2.0 Opencart 2.0.1.0 (должен работать), 2.0.1.1, 2.0.2.0, 2.0.3.1, 2.1.0.1/2.1.0.2 (проверен)
Языки Русский, английский (во всех версиях), украинский (добавлен в oc2031/oc2101)
OCMOD Доступен. Есть полуавтоматическая установка.
2017-03-21

Спасибо. Установка прошла без проблем, всё работает. Opencart 2.0.1.1

2017-02-27

Если версия Opencart 2.1.02 нужно вот это делать? Перед установкой SeoPro надо установить "OCMOD Multiline fix"
v.yljanov@rambler.ru

----

Ответ: Да

Пишу здесь, т.к.:
Message not delivered. There was a problem delivering your message to v.yljanov@rambler.ru. See the technical details below, or try resending in a few minutes.
The response from the remote server was:

550 5.7.1 <v.yljanov@rambler.ru>: user not found

2017-01-25

Скачав для 2.1.x, ставив на 2.3.0.2 (trs-2.3.0.0). Звісно прийшлось трішки пошукати де нестиковки, але запрацювало...
Зі знайденого:
1) addPreAction призначаються вже не в index.php, а в system/framework.php і беруться з system/config.catalog.php - там і треба замінити ''startup/seo_url' на 'common/seo_pro' - і це працюватиме тільки для каталога, не для адмінки (кому в ній ЧПУ здалися?)
2) модулі для адмінки тепер мають бути в папці extension/module, хоча працює фдмінка й так, але нікрасіво... А щоб перенести, то треба й самому модулі поправити шляхи.
3) для "Multiline OCMOD fix" вже міняти треба не там
4) не всі заміни OCMOD знаходять відповідне місце (наприклад куди втулити функцію getAlterLanguageLinks)

Шкода, що "Автозаполнения SEO-URL при создании и редактировании товаров" платне.

2016-10-13

Спасибо большое за проделанную работу, очень полезная вещь! Успехов!

2016-10-11

Спасибо. Отличный модуль!

Написать отзыв

Если Вы задаёте вопрос, оставьте свой e-mail, чтобы мы могли с Вами связаться.

Примечание: HTML разметка не поддерживается! Используйте обычный текст.

    Плохо           Хорошо

SeoPro для Опенкарт 2.0.x / 2.1.x

  • Автор: OpencartJazz
  • Модель: ocj-seopro-oc2
  • Наличие: Есть в наличии
  • Free



См. также

Метки: seo