druuum1

Google начал ругаться на разметку отзывов

Recommended Posts

druuum1

С 3 февраля гугл начал жаловаться на разметку отзывов, хтя я ничего не менял:

Недопустимый тип объекта в поле "itemReviewed"

Отсутствует обязательное минимальное и/или максимальное значение для оценки.

Значение, заданное для элемента данных "reviewCount", должно быть положительным.

Код:
 

<div class="row-fluid reviews-title" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    <div class="span8 title">


<meta itemprop="itemReviewed" content="Чай пуэр ШУ">

    Отзывы: <span itemprop="reviewCount">0</span>, Оценка: <span itemprop="ratingValue">0.00</span>
    </div>    
</div>

не могу понять что ему не нравится

файл product_reviews.html

{config_load file="$language/lang_$language.conf" section="reviews"}<br />
<h1>{$PRODUCTS_NAME} {#heading_reviews#}</h1>
<div class="row-fluid reviews-title" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
	<div class="span8 title">

itemprop="itemReviewed" content="{$PRODUCTS_NAME}"

	{#heading_reviews#} <span itemprop="reviewCount">{$PRODUCTS_REVIEWS_COUNT}</span>, {#text_rating#} <span itemprop="ratingValue">{$PRODUCTS_REVIEWS_RATING|number_format:2}</span>
<span itemprop="worstRating" content="0"</span>
<span itemprop="bestRating" content="5"</span>
	</div>	
</div>
{foreach name=aussen item=module_data from=$module_content} 
<div class="page">
<div class="pagecontent" itemprop="review" itemscope itemtype="http://schema.org/Review">

<p>
<span class="bold">{#text_author#}</span> <span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">{$module_data.AUTHOR}</span></span> <span content="{$module_data.DATE|date_format:"%Y-%m-%d"}" itemprop="datePublished">{$module_data.DATE|date_format:"%Y-%m-%d"}</span>
</p>



<p>
<span class="bold">{#text_rating#}</span> <span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"><span itemprop="ratingValue" content="{$module_data.RATING_TXT}">{$module_data.RATING_TXT}</span></span> {$module_data.RATING}
</p>

<p itemprop="reviewBody">
{$module_data.TEXT}
</p>
      
</div>
</div>
{/foreach}

{if $TEXT_FIRST_REVIEW != ''}
<div class="page">
<div class="pagecontent">
<p>
{$TEXT_FIRST_REVIEW}
</p>
</div>
</div>
{/if}
<div class="pagecontentfooter">
{$BUTTON_WRITE}
</div>

 

     

Share this post


Link to post
Share on other sites
support
34 минуты назад, druuum1 сказал:

С 3 февраля гугл начал жаловаться на разметку отзывов, хтя я ничего не менял:

Недопустимый тип объекта в поле "itemReviewed"

Отсутствует обязательное минимальное и/или максимальное значение для оценки.

Значение, заданное для элемента данных "reviewCount", должно быть положительным.

Код:
 


<div class="row-fluid reviews-title" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    <div class="span8 title">


<meta itemprop="itemReviewed" content="Чай пуэр ШУ">

    Отзывы: <span itemprop="reviewCount">0</span>, Оценка: <span itemprop="ratingValue">0.00</span>
    </div>    
</div>

не могу понять что ему не нравится

файл product_reviews.html


{config_load file="$language/lang_$language.conf" section="reviews"}<br />
<h1>{#heading_reviews#} {$PRODUCTS_NAME}</h1>
<div class="page">
<div class="pagecontent">

<p>
<span class="bold">{#title_nr#}</span>&nbsp;&nbsp;&nbsp;<span class="bold">{#title_author#}</span>&nbsp;&nbsp;&nbsp;<span class="bold">{#title_rating#}</span>&nbsp;&nbsp;&nbsp;<span class="bold">{#title_date#}</span>
</p>

{foreach name=aussen item=module_data from=$module_content} 
<p itemprop="review" itemscope itemtype="http://schema.org/Review">
<meta itemprop="itemReviewed" content="{$PRODUCTS_NAME}">
{$module_data.ID}&nbsp;&nbsp;&nbsp;<span itemprop="author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">{$module_data.AUTHOR}</span></span>&nbsp;&nbsp;&nbsp;<span itemprop="reviewRating" itemscope itemtype="http://schema.org/Rating"><span itemprop="ratingValue" content="{$module_data.RATING_TXT}">{$module_data.RATING}</span></span>&nbsp;&nbsp;&nbsp;<span content="{$module_data.DATE|date_format:"%Y-%m-%d"}" itemprop="datePublished">{$module_data.DATE|date_format:"%Y-%m-%d"}</span>&nbsp;&nbsp;&nbsp;<span itemprop="reviewBody">{$module_data.TEXT}</span>
</p>
{/foreach} 

</div>
</div>

 

     

В последней обновлении 1.99.13 исправлен этот момент.

Ругался на страницы reviews.php и product_reviews_info.php, у меня по всяком случае.

Это потому что разметка Review не была привязана к Product, т.е. не было понятно, к какому товару относятся отзывы.

Обновитесь до текущей версии.

Share this post


Link to post
Share on other sites
support

Либо можете взять исправленные файлы:

/includes/classes/product.php

/product_reviews_info.php

/templates/vamshop4/module/product_reviews_info.html

/templates/vamshop4/module/reviews.html

/includes/application_top.php

/inc/vam_get_manufacturers_name.inc.php

Share this post


Link to post
Share on other sites
druuum1

Спасибо!

Share this post


Link to post
Share on other sites
support
2 часа назад, druuum1 сказал:

Спасибо!

и затем проверьте в тестере - https://search.google.com/structured-data/testing-tool

Например страница https://vamshop.ru/reviews.php

Разметка Product, а уже внутри Product отзывы.

Не должно быть прям на первой странице разметки Review, должен быьт Product, внутри которого уже все данные товара, в том числе отзывы.

Тоже самое для страницы конкретного отзыва - https://vamshop.ru/product_reviews_info.php/products_id/1/reviews_id/93

и для страницы отзывов конкретного товара - https://vamshop.ru/product_reviews.php/products_id/1

ну и карточку товара тоже можно проверить - https://vamshop.ru/vamshop.html

Share this post


Link to post
Share on other sites
druuum1

Спасибо,  обновлений не ставил больше года, так как очень много своих правок, поэтому исправлял то что есть. Единственное на чем застрял - если товара нет в наличии,  то я делаю в разметке availability - out of stock, но цена $PRODUCTS_PRICE так и будет "нет в наличии" и ее в поле price нельзя поставить, будет ошибка, в админке цена 0, но там же в о вкладке цена я добавил еще строку после разных цен для каждой группы покупателей, со старой ценой, чтобы не забывать ее, как можно эту цену скормить гуглу как поле price?

Share this post


Link to post
Share on other sites
support
1 час назад, druuum1 сказал:

Спасибо,  обновлений не ставил больше года, так как очень много своих правок, поэтому исправлял то что есть. Единственное на чем застрял - если товара нет в наличии,  то я делаю в разметке availability - out of stock, но цена $PRODUCTS_PRICE так и будет "нет в наличии" и ее в поле price нельзя поставить, будет ошибка, в админке цена 0, но там же в о вкладке цена я добавил еще строку после разных цен для каждой группы покупателей, со старой ценой, чтобы не забывать ее, как можно эту цену скормить гуглу как поле price?

Если у Вас какое-то своё поле для цены добавлено, наверное надо его и выводить.

Вот в faq есть похожий вопрос - 

 

Как выводить в другой валюте.

Вывод цены другой группы делается точно также.

т.е. делаем всё, что указано в FAQ для вывода цены в другой валюте.

Только правим не первый параметр - код валюты, т.е. вместо USD оставляем RUB или какой там у Вас код валюты.

А правим второй параметр, где указывается, цену какой группы доставать.

т.е. вместо:

$_SESSION['customers_status']['customers_status_id']

пишем id номер группы, цены которой надо вывести.

Например 1 - посетитель

2 покупатель

 

Вот таким способом можно вести разные цены.

 

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

 

Share this post


Link to post
Share on other sites
druuum1

Попробую, Спасибо!

Share this post


Link to post
Share on other sites
support

Удачи

Share this post


Link to post
Share on other sites
support
15 минут назад, druuum1 сказал:

Сделал как вы описали - вместо цены пишет У Вас нет доступа для просмотра цен

А у Вас во всех группах в Админке - Покутпали - Группы включена опцию Показывать цены?!

или в каких-то выключена эта опция?!

По идее, это сообщение выводится, если эта опция выключена.

Share this post


Link to post
Share on other sites
druuum1

в product_info.php вставляю:
 

$vamPriceOLD = new vamPrice('RUR', 7);
$products_price_OLD = $vamPriceOLD->GetPrice($array['products_id'], $format = true, 1, $tax_rate, $array['products_price'], 1); 
$info->assign('PRODUCTS_PRICE_OLD', $products_price_OLD['formated']);

в product_info_v1.html

{$PRODUCTS_PRICE_OLD}

пишет нет в наличии, то есть 0, хотя цена в этой группе есть

Share this post


Link to post
Share on other sites
support
20 минут назад, druuum1 сказал:

в product_info.php вставляю:
 


$vamPriceOLD = new vamPrice('RUR', 7);
$products_price_OLD = $vamPriceOLD->GetPrice($array['products_id'], $format = true, 1, $tax_rate, $array['products_price'], 1); 
$info->assign('PRODUCTS_PRICE_OLD', $products_price_OLD['formated']);

в product_info_v1.html

{$PRODUCTS_PRICE_OLD}

пишет нет в наличии, то есть 0, хотя цена в этой группе есть

По идее, это ж неправильно.

$array нет такого массива на карточке товара.

Посмотрите как сделана метка PRODUCTS_PRICE в /includes/modules/product_info.php

Видимо, надо как-то так:

$vamPriceOLD = new vamPrice('RUR', 7);
$products_price_OLD = $vamPriceOLD->GetPrice($product->data['products_id'], $format = true, 1, $product->data['products_tax_class_id'], $product->data['products_price'], 1); 
$info->assign('PRODUCTS_PRICE_OLD', $products_price_OLD['formated']);

и надо проверять, точно у Вас есть группа с id номером 7 и код валюты точно RUR, а не RUB например.

Share this post


Link to post
Share on other sites
druuum1

Точно! в массиве была проблема, я не заметил, сейчас заработало! спасибо!!

кто столкнется с таким же вопросом - последняя строка $info->assign('PRODUCTS_PRICE_OLD', $products_price_OLD['plain']); - чтоб гугл понял, если formated - то это с запятой или точкой может быть разделение тысяч

Share this post


Link to post
Share on other sites
support
9 минут назад, druuum1 сказал:

Точно! в массиве была проблема, я не заметил, сейчас заработало! спасибо!!

кто столкнется с таким же вопросом - последняя строка $info->assign('PRODUCTS_PRICE_OLD', $products_price_OLD['plain']); - чтоб гугл понял, если formated - то это с запятой или точкой может быть разделение тысяч

Не за что.

Хорошо, что разобрались.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.