Задать вопрос

Автоматические мета-теги?

Кто знает, как можно сделать автоматическую генерацию метатегов в opencart?
Нужно по принципу "Купить 'Название товара' в Москве"

Но мне нужно чтобы сохранились те метатеги, которые уже прописаны. А для остальных задать по шаблону.

Заранее спасибо за ответы.
  • Вопрос задан
  • 639 просмотров
Подписаться 3 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 3
@esvlad
Веб-разработчик
Самый простой, в файле site_name/admin/model/catalog/product.php

В конце добавляешь собственный метод, например:
private function getMyKeywords($data){
	$keyword_array = array(
		'Купить '.$data.' в Москве';
		//Тут собственно додумываешь как организовать шаблон
	); 
	return implode(', ', $keyword_array);
}


Далее в методе addProduct находишь
foreach ($data['product_description'] as $language_id => $value)
у меня 14 строка.

и добавляешь перед загрузкой данных следующее:
$value['meta_keyword'] .= $this->getMyKeywords($value['name']);
Ответ написан
@amfetamine
Какими-то дебрями пошли...
Для карточки товара:
Мета-теги задаются в /catalog/controller/product/product.php вот тут prntscr.com/befqtm
В вашем случае prntscr.com/beft8i
Если не нужно первую букву в названии товара в нижний регистр переводить, то уберите функцию lcfirst().
Там в скрине вписана функция ucfirst(), я опечатался, нужна lcfirst()
Ответ написан
@SergeTkach
OpenCart Forever
Наверное, для такой простой фразы достаточно внести ее прямо в код.

Находим следующий код контроллера. Для этого в файле "catalog/controller/product/product.php" находим следующую строку:

$this->document->setTitle($product_info['meta_title']);


P.S.
И помните, клиент платит за работающее решение в кратчайшие сроки, а не за количество собственноручно написанного кода.
И перед ней вставляем следующий код:
// Проверям, что мета-теги не пусты + что контент-менеджер не скопипастил название тоавар, что тоже случается :)
if (!$product_info['meta_title'] && $product_info['meta_title'] != $product_info['name']) {
    $product_info['meta_title'] = 'Купить ' . $product_info['name'] . ' в Москве';
}

if (!$product_info['meta_description'] && $product_info['meta_description'] != $product_info['name']) {
    $product_info['meta_description'] = $product_info['name'] . ' Купить в Москве по выгодным ценам';
}


Но такие простые мета-теги не всегда подходят. К примеру:
  • Мультиязычный магазин
  • Вы хотите добавить в мета-теги цифры. Цена - самое то. Но можно также кол-во отзывов, рейтинг
  • Вы хотите добавить в мета-теги название города, но у Вас не один город. К примеру, у Вас подмагазины для городов (используется CityManager или мультимагазин)
  • Вы хотите вписать категорию товара
  • Вы хотите прописать значимые (ключевые) атрибуты товара
  • Вы хотите автоматизировать заполнение мета-тегов и для категорий. И там использовать такие данные, как кол-во товаров в категории, максимальная или минимальная цена в категории


В таких случаях написание кода, который это реализует займет день или несколько дней, в зависимости от конечной задачи. А еще представьте, что Вы уже сдали проект, и начали делать что-то совсем другое. А заказчик звонит через пару дней и говорит: надо изменить фразу. И что, снова лезть в код и менять?

Проще использовать модуль в котором все перечисленное уже есть. И формулы мета-тегов задаются пользователем в админке сайта. К примеру, есть модуль для автоматического заполнения мета-тегов SEO Tags Generator.

Там, кстати, есть настройка автоматической подстановки только в том случае, если мета-теги не заполнены. Убираются лишние пробелы (чего только не бывает при импорте товаров из 1С...) Можно использовать условие, что если товар стоит больше 1500 р, доставка бесплатно (тоже неплохое преимущество среди конкурентных сниппетов).

Можно также настраивать отдельные правила для товаров некоторых отдельно взятых категорий, ведь не все магазины продают однотипный товар.

Самое интересное, что цена модуля равняется всего 3 часам работы программиста (средняя зп 68 791 ₽) по данным на 02.03.2021

P.S.
И помните, клиент платит за работающее решение в разумно быстрые сроки, а не за количество собственноручно написанного кода!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы