Jump to content

Google Analytics Error - either "offers", "review", or aggregaterating should be specified


mattwilkie

Recommended Posts

I have had a Prestashop site for around 8 years but recently got forced to upgrade (had left it alone since original install due to the amount of work transitioning to a newer version). However my host upgraded and the site stopped working forcing me to upgrade. I have lost a lot of my position with the SEO as I have had to rebuild the site.

I have gone through the basics of Meta tags etc. But currently have this showing in Google Analytics and not sure what its asking me to do :-

either "offers", "review", or aggregaterating should be specified

Now I don't do offers, reviews and not sure what it means with aggregaterating. But my site is a basic setup with no additional modules that could effect the SEO side so not sure what it wants me to do any ideas appreciated.

 

 

  • Like 1
Link to comment
Share on other sites

23 hours ago, KamilPL said:

My developer say that on the https://search.google.com/structured-data/testing-tool everyting is ok

Yes, your programmer is correct. It looks good, but apparently the searchconsole's crawler is a little more strict than the testing tool.

I seem to have solved it for my site with a theme based on the Classic theme. Basically, I added an offers entry along with a valid price to the product miniature. Ask your programmer to add something like this (the important part is the "offers" div):

	<meta itemprop="image" content="https://shop.example.com/imageURL.jpg" />
	<meta itemprop="description" content="Description text" />
	<meta itemprop="sku" content="123456789" />
	<div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>
		<meta itemprop="url" content="https://shop.example.com/link_to_product.html" />
		<meta itemprop="availability" content="https://schema.org/InStock" />
		<meta itemprop="priceCurrency" content="USD" />
		<meta itemprop="itemCondition" content="New" />
		<meta itemprop="price" content="73077" />
		<div itemprop="seller" itemtype="http://schema.org/Organization" itemscope>
			<meta itemprop="name" content="Example PrestaShop" />
		</div>
	</div>
	<div itemprop="brand" itemtype="http://schema.org/Thing" itemscope>
		<meta itemprop="name" content="BrandOfProduct" />
	</div>

In my template markup there was an itemprop="price" entry which was a string including the currency symbol. Google Products does not like that, it has to be as above.

I still have a few optional fields missing, some I cannot easily solve in my setup. For example: The priceValidUntil field is recommended

 

Hope this helps

 

  • Thanks 1
Link to comment
Share on other sites

Good evening, I have the same problem.

I state that in my case it is not the default theme but a theme that I bought from addons.prestashop. I contacted the topic support but I have not yet received an answer.

Jaep could you tell me which theme file did you modify?

Thank you.

Link to comment
Share on other sites

Attached file is a work in progress. With this file installed in our site the search console does not error, but Google still gives a whole lot of warnings. Some warnings also originate in other template files.

Note that this marks all products as 'https://schema.org/InStock'. (line 32)
Note the currency is hard coded to INR (line 33)
Note also that the organization name needs to be changed (line 37) before you use this in your theme.

Our theme is a child of Classic theme. So I modified a Classic template and placed it in my theme. Attached file is located at: /themes/OURCHILDTHEME/templates/catalog/_partials/miniatures/product.tpl

Pfff. The Products enhancement in Google Search Console is a major headache...

HTH,

J

product.tpl

Edited by Jaep (see edit history)
Link to comment
Share on other sites

Hello Jaep,

 

Thank you for your product.tpl.

Would it be possible to say which lines have been changed ?

My product.tpl has been changed a lot since I copied the classic theme, so it is hard to find which lines you have changed/added.

Thank you again !

Kind regards,

Link to comment
Share on other sites

In my posted .tpl file, there is one more important issue addressed:

The original Classic theme's file around line 71 has a line that renders the price to something like "€ 12,30":

<span itemprop="price" class="price">{$product.price}</span>

You will need to remove the itemprop="price" because that needs to be part of 'offers' and it must be numeric, without currency symbol (the correct itemprop="price" is added in the <meta> list of tags as posted before). 

<span class="price">{$product.price}</span>

 

J

Link to comment
Share on other sites

Le 02/03/2019 à 5:25 AM, Jaep a dit :

Attached file is a work in progress. With this file installed in our site the search console does not error, but Google still gives a whole lot of warnings. Some warnings also originate in other template files.

Note that this marks all products as 'https://schema.org/InStock'. (line 32)
Note the currency is hard coded to INR (line 33)
Note also that the organization name needs to be changed (line 37) before you use this in your theme.

Our theme is a child of Classic theme. So I modified a Classic template and placed it in my theme. Attached file is located at: /themes/OURCHILDTHEME/templates/catalog/_partials/miniatures/product.tpl

Pfff. The Products enhancement in Google Search Console is a major headache...

HTH,

J

product.tpl

Bonjour, j'ai remplacer le fichier product.tpl par le votre et quand je le met tout fonctionne les produits s'affichent correctement sauf les catégories produits j'ai erreur 500. Je suis sur prestashop 1.7.4.4 et j'ai mis le fichier dans /themes/classic/templates/catalog/_partials

Link to comment
Share on other sites

37 minutes ago, hacker gamer shop said:

Bonjour, j'ai remplacer le fichier product.tpl par le votre et quand je le met tout fonctionne les produits s'affichent correctement sauf les catégories produits j'ai erreur 500. Je suis sur prestashop 1.7.4.4 et j'ai mis le fichier dans /themes/classic/templates/catalog/_partials

This is the closest I can get to your question (thank you Google Translate):

Quote

Hello, I replace the file product.tpl by yours and when I put it all works the products are displayed correctly except the product categories I have error 500. I am on prestashop 1.7.4.4 and I put the file in /themes/classic/templates/catalog/_partials

Please put the original file back and ask a programmer to do the changes as described above. Do NOT put my file without changes in the classic theme. Your programmer should place his version here:

/themes/OURCHILDTHEME/templates/catalog/_partials/miniatures/product.tpl

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

6 minutes ago, okom3pom said:

Thank you. One method to get all actually available variables at a specific position in your smarty template is to use "{debug}" which opens a popup window with all assigned variables including local variables. See https://www.smarty.net/docs/en/language.function.debug.tpl

Link to comment
Share on other sites

46 minutes ago, okom3pom said:

<meta itemprop="availability" content="https://schema.org/InStock" />

This one is problematic and not accepted by Google. Google keeps warning "Invalid value type for field 'availability' (optional)" although it seems to me according to the specs.

Could it be caused by the HTTP and HTTPS mixup ?

.....http://schema.org /Offer.....
.....https ://schema.org/InStock.....

I will switch my template to https after the weekend.

Link to comment
Share on other sites

Il y a 2 heures, Jaep a dit :

This is the closest I can get to your question (thank you Google Translate):

Please put the original file back and ask a programmer to do the changes as described above. Do NOT put my file without changes in the classic theme. Your programmer should place his version here:

/themes/OURCHILDTHEME/templates/catalog/_partials/miniatures/product.tpl

who should I contact to do this? if i give you my product.tpl file could you do it to me?who should I contact to do it? if i give you my product.tpl file, can you do it to me? in exchange I will make your ad on my Youtube channel of 2171 subscribers

Edited by Techno Teck (see edit history)
Link to comment
Share on other sites

Il y a 7 heures, Jaep a dit:

C'est ce qui se rapproche le plus de ma question (merci Google Translate):

Veuillez vous enregistrer. NE PAS PAS mon fichier sans modifications dans le thème classique. Votre programmeur devrait placer sa version ici:

/ thèmes / OURCHILDTHEME / templates / catalogue / _partials / miniatures /product.tpl

here I fix the error on the other hand now I have 6 warning, how to correct them?

Edited by Techno Teck (see edit history)
Link to comment
Share on other sites

From my understanding based on what I have read so far the problem seems to be two-fold: a) You may get this error because of the product schema in product page and b) because of the product schema that is used all other pages or blocks e.g. category page, related products. 

So,

a) in product page you need to be make sure that you include one of those tags (if not already included and I think this is not the issue for most shops)

b) Check all other pages in which you list products e.g. the category page, the related products block and for those remove the product schema. 

 

The following seems to be to the point:

https://www.checkerboard.com/web-development/fix-offers-review-aggregaterating-specified/

and refers to Woocommerce but I guess Prestashop and all other e-Commerce plarforms do the same:

Quote

WooCommerce adding schema markup to a page that is not dedicated to a single product is what causes the errors

and 

Quote

Google says that archive and category pages shouldn’t have this markup. There are only two types of pages that will usually use markup, according to Google: A product page dedicated to a single product, or a “shopping aggregator page” that talks about a single product just with different sellers

 

For Woo there seems to be a fix by removing the Product Schema Markup from category pages. Unfortunately in prestashop I haven't seen something consistent. 

  • Like 1
Link to comment
Share on other sites

Il y a 9 heures, okom3pom a dit :

@yama fixed :) thx

I do not have this code, I have it

your code

<div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>
        <meta itemprop="url" content="{$product.url}" />
        <meta itemprop="availability" content="https://schema.org/InStock" />
        <meta itemprop="priceCurrency" content="{$currency.iso_code}" />
        {if $product.condition == 'new'}
        <meta itemprop="itemCondition" content="new" />
        {elseif if $product.condition == 'used'}
        <meta itemprop="itemCondition" content="used" />
        {else}
        <meta itemprop="itemCondition" content="refurbished" />
        {/if}
        <meta itemprop="price" content="{$product.price_amount}" />
        <div itemprop="seller" itemtype="http://schema.org/Organization" itemscope>
            <meta itemprop="name" content="{$shop.name}" />
        </div>
    </div>

 

and my code

<div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>
        <meta itemprop="url" content="{$product.url}" />
        <meta itemprop="availability" content="https://schema.org/InStock" />
        <meta itemprop="priceCurrency" content="INR" />
        <meta itemprop="itemCondition" content="{$product.condition.schema_url}"
        <meta itemprop="price" content="{$product.price_amount}" />
        <div itemprop="seller" itemtype="http://schema.org/Organization" itemscope>
            <meta itemprop="name" content="TechnoTeck" />
        </div>
    </div>

how much error do you have in the Google Search Console?

Edited by Techno Teck (see edit history)
Link to comment
Share on other sites

Il y a 5 heures, yama a dit:

Êtes-vous sûr que votre monnaie est la roupie indienne (INR)?

à la place, INR a mis {$ currency.iso_code}

 

ah I was not careful, my currency is the euro but I use several currency on my site, I live in Belgium, you have to change something else?

Link to comment
Share on other sites

guys, sorry I don't want to sound unappreciative of your answers but please try to write in english as this is very difficult for all of us who doesn't know french going back and forth to the google translate. After all this is an English forum. 

 

Link to comment
Share on other sites

il y a 4 minutes, tanasi a dit :

guys, sorry I don't want to sound unappreciative of your answers but please try to write in english as this is very difficult for all of us who doesn't know french going back and forth to the google translate. After all this is an English forum. 

 

Okay, sorry.

do you have that too? when i'm in products on google search console he tell me

You have to indicate "offers", "review", or "aggregateRating"

and when I'm in url inspection it's more the

Edited by Techno Teck (see edit history)
Link to comment
Share on other sites

Hello

 

yes indeed this new error appeared 48 hours ago

So, the method proposed by Jaep at the beginning

Google has changed the conditions for the products again.

I tried to see my webmaster that I have a solution on my side

if anyone in I am a taker also

 

thank you

Link to comment
Share on other sites

Hello Yama

thank you for the information
so if I understand correctly must add this code from okom3pom

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

<div itemprop = "offers" itemtype = "http://schema.org/Offer" itemscope > <meta itemprop = "url" content = "{$ product.url}" /> <méta itemprop = "availability" content = "https://schema.org/InStock" /> <meta itemprop = "priceCurrency" content = "{$ currency.iso_code}" />   
           
           
           
        {if $ product.condition == 'new'}
        <meta itemprop = "itemCondition" content = "new" />   
        {sinon si $ product.condition == 'utilisé'}
        <meta itemprop = "itemCondition" content = "utilisé" />   
        {autre}
        <meta itemprop = "itemCondition" content = "remis à neuf" />   
        {/si}
        <meta itemprop = "price" content = "{$ product.price_amount}" /> <div itemprop = "seller" itemtype = "http://schema.org/Organization" itemscope > <meta itemprop = "name" content = "{$ shop.name}" /> </ div> </ div>

 

xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 

at the beginning of the product.tpl file

/themes/OURCHILDTHEME/templates/catalog/_partials/miniatures/product.tpl

 

Thanks for your help

  • Like 1
Link to comment
Share on other sites

Hello

I am a beginner and start to get a little lost in all the modifications for this problem that are proposed.
I left on the model of Jaep, but there is now an error price field missing,
I tried the modification of okom3pom on that of Jaep but it makes me wrong on the shop.
Could a charitable soul make a summary of the changes to be made on the basic product.tpl files of the theme presta 1.7 in order to solve the problem.
Many thanks in advance to all.

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...

Hi,

I have been having a similar but different issue. We had many errors but installed Rich Snippets for Products which fixed the errors but also left the errors behind. Makes no sense I know, please see here:

https://search.google.com/structured-data/testing-tool#url=https%3A%2F%2Ffiddlestix.net.au%2Fall-team-merchandise%2F2976-afl-magnetic-mini-footy-ladder-official-11cm-x-27cm-licensed.html

Does anyone know how I can get rid of the errors and leave just the last snippet?

Thanks in advance

Link to comment
Share on other sites

I allow myself to answer you because there is not much information

I finally managed to remove the "errors" but not the warnings

by editing the product.tpl file that is located

/ themes / OURCHILDTHEME / templates / catalog / _partials / thumbnails /product.tpl

with the following code:

 

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

{**
 * 2007-2018 PrestaShop
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License 3.0 (AFL-3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * https://opensource.org/licenses/AFL-3.0
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to [email protected] so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
 * versions in the future. If you wish to customize PrestaShop for your
 * needs please refer to http://www.prestashop.com for more information.
 *
 * @author    PrestaShop SA <[email protected]>
 * @copyright 2007-2018 PrestaShop SA
 * @license   https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
 * International Registered Trademark & Property of PrestaShop SA
 *}
{block name='product_miniature_item'}
  <article class="product-miniature js-product-miniature" data-id-product="{$product.id_product}" data-id-product-attribute="{$product.id_product_attribute}" itemscope itemtype="http://schema.org/Product">
    <meta itemprop="image" content="{$product.cover.large.url}" />
    <meta itemprop="description" content="{$product.manufacturer_name} {$product.name}" />
    <meta itemprop="sku" content="{$product.reference_to_display}" />
    <div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>
        <meta itemprop="url" content="{$product.url}" />
        <meta itemprop="availability" content="https://schema.org/InStock" />
        <meta itemprop="priceCurrency" content="{$currency.iso_code}" />
        {if $product.condition == 'new'}
        <meta itemprop="itemCondition" content="new" />
        {else if $product.condition == 'used'}
        <meta itemprop="itemCondition" content="used" />
        {else}
        <meta itemprop="itemCondition" content="refurbished" />
        {/if}
        <meta itemprop="price" content="{$product.price_amount}" />
        <div itemprop="seller" itemtype="http://schema.org/Organization" itemscope>
            <meta itemprop="name" content="{$shop.name}" />
        </div>
    </div>
    <div itemprop="brand" itemtype="http://schema.org/Thing" itemscope>
        <meta itemprop="name" content="{$product.manufacturer_name}" />
    </div>

    <div class="thumbnail-container">
      {block name='product_thumbnail'}
        {if $product.cover}
          <a href="{$product.url}" class="thumbnail product-thumbnail">
            <img
              src = "{$product.cover.bySize.home_default.url}"
              alt = "{if !empty($product.cover.legend)}{$product.cover.legend}{else}{$product.name|truncate:30:'...'}{/if}"
              data-full-size-image-url = "{$product.cover.large.url}"
            >
          </a>
        {else}
          <a href="{$product.url}" class="thumbnail product-thumbnail">
            <img
              src = "{$urls.no_picture_image.bySize.home_default.url}"
            >
          </a>
        {/if}
      {/block}

      <div class="product-description">

 

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

to put on top of

<div class="product-description">

 

which becomes line 69

 

I hope it can help you.

cordially

Link to comment
Share on other sites

  • 2 weeks later...
  • 4 weeks later...
On 3/19/2019 at 2:11 PM, tanasi said:

guys, sorry I don't want to sound unappreciative of your answers but please try to write in english as this is very difficult for all of us who doesn't know french going back and forth to the google translate. After all this is an English forum. 

 

This was March 19.

  • Like 2
Link to comment
Share on other sites

On 3/18/2019 at 3:41 PM, tanasi said:

From my understanding based on what I have read so far the problem seems to be two-fold: a) You may get this error because of the product schema in product page and b) because of the product schema that is used all other pages or blocks e.g. category page, related products. 

So,

a) in product page you need to be make sure that you include one of those tags (if not already included and I think this is not the issue for most shops)

b) Check all other pages in which you list products e.g. the category page, the related products block and for those remove the product schema. 

 

The following seems to be to the point:

https://www.checkerboard.com/web-development/fix-offers-review-aggregaterating-specified/

and refers to Woocommerce but I guess Prestashop and all other e-Commerce plarforms do the same:

and 

 

For Woo there seems to be a fix by removing the Product Schema Markup from category pages. Unfortunately in prestashop I haven't seen something consistent. 

I do not understand what you've all been talking about (because I do not understand french) in this international English department but this is just a kind reminder: after we tried solutions, @anasi explained on March 18, that the product schema markup  needs to be removed from category pages (see quote above).

 

7 hours ago, Eolia said:

No, it's an international forum. Here you are in the French section, so normal that we speak French^^
Where are english helpers on your sections ?

Hahaha.

International community (English)

Topics and messages here are posted in English. To post in your native language, please use the appropriate PrestaShop community board.

Edited by Jaep (see edit history)
Link to comment
Share on other sites

5 minutes ago, yama said:

fault of Napoleon 😛

It's just there is the same topic in French side, sorry.

Yes. Let's blame it on Napoleon :).

Please share a link so the Frenchies can find their way back to their Bastille.

Link to comment
Share on other sites

Oh, I just switched to my desktop computer and I can't stop laughing. 
This one should be preserved for humanity, since @Eolia has this brilliant quote in his signature which earlier on my mobile did not show up:

"Il y a au moins deux choses infinies au monde : l'univers et la bêtise humaine....mais pour l'univers je n'en suis pas très sûr" - Albert Einstein
 

Let's analyse that a bit. This is the forum you are looking at:

1963719203_Annotation2019-05-10103804.png.9a0e20b81de8b32c599250f8e00b2a0d.png

 

The French view on this forum disagrees with the header, voiced by @Eolia:

12 hours ago, Eolia said:

No, it's an international forum. Here you are in the French section, so normal that we speak French^^
Where are english helpers on your sections ?

 

 

Do I need to ask what this Albert Einstein quote in @Eolia's signature means? Ah, whatever, let's run it through Google Translate:

"There are at least two infinite things in the world: the universe and human stupidity .... but for the universe I'm not very sure" - Albert Einstein

Very fitting, very very fitting.

After working a bit with the Github people, I was actually doing my best to revive the English support and explore solutions here. So it kind of hurts to read dumb messages from self-righteous Frenchies doing nothing more than scaring off English helpers. 

Jaep

Edited by Jaep (see edit history)
  • Like 1
Link to comment
Share on other sites

The problem here is the topic get started in the french section.

The actual "tought control" team reparented the topic in the English section. However most of us did not noticed (I did not) and been following the topic receive notification.

Basically all the french comment recommand to apply the google official guidelines.

offers and reviews warning are simply warning - ignore them. All other errors are self-explainary.

Link to comment
Share on other sites

Well, they can now move it back to the French section. It is no use in the English section at all.

Edit: I doubt that story is true. As you can see, I was the second person responding to the original question. And I cannot imagine myself writing in a French forum at all. Please substantiate your statement.

Edited by Jaep (see edit history)
Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...
On 2/28/2019 at 8:33 AM, Jaep said:

Yes, your programmer is correct. It looks good, but apparently the searchconsole's crawler is a little more strict than the testing tool.

I seem to have solved it for my site with a theme based on the Classic theme. Basically, I added an offers entry along with a valid price to the product miniature. Ask your programmer to add something like this (the important part is the "offers" div):


	<meta itemprop="image" content="https://shop.example.com/imageURL.jpg" />
	<meta itemprop="description" content="Description text" />
	<meta itemprop="sku" content="123456789" />
	<div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>
		<meta itemprop="url" content="https://shop.example.com/link_to_product.html" />
		<meta itemprop="availability" content="https://schema.org/InStock" />
		<meta itemprop="priceCurrency" content="USD" />
		<meta itemprop="itemCondition" content="New" />
		<meta itemprop="price" content="73077" />
		<div itemprop="seller" itemtype="http://schema.org/Organization" itemscope>
			<meta itemprop="name" content="Example PrestaShop" />
		</div>
	</div>
	<div itemprop="brand" itemtype="http://schema.org/Thing" itemscope>
		<meta itemprop="name" content="BrandOfProduct" />
	</div>

In my template markup there was an itemprop="price" entry which was a string including the currency symbol. Google Products does not like that, it has to be as above.

I still have a few optional fields missing, some I cannot easily solve in my setup. For example: The priceValidUntil field is recommended

 

Hope this helps

 

Hi Jaep and all,

My eshop is running on 1.6.1, I've seen this morning this warning at my search console

The solution advised seems to work well on 1.7 but for various reasons I'm unable to upgrade to 1.7

Is there anyone who could advise on the right itemprop structure that would turn my shop products compliant with Google products rules?

Many thanks in advance

Alex

Link to comment
Share on other sites

  • 3 weeks later...

Hello,

I would like to know if anyone can help me solve my little problems,

I switched to version 1.7.5.2 and changed my theme (Charm).

Google sends errors over 340 ...

"Must indicate" offers "," review ", or" aggregateRating "

priceValidUntil

brand

review

sku

and the last (empty)

I tried to edit some file but it did not change anything ...

thank you in advance for your help

Erreur_Google_03.jpg

Link to comment
Share on other sites

  • 2 weeks later...

Hello everybody,

I've the same problem with Google Search on a PS 1.6.1.7 with the Transformer theme.

Not errors but warning (it's better to fill the field) about : availability, priceValidUntil, url, aggregateRating, brand, review, sku and isbn (or other global identifier).
These warnings are on product list and product page.
If I delete these itemprop (because these fields are not used on the front) in product-list.tpl, product.tpl and productcomment.tpl, is it ok without creating errors ?

 

Thanks

 

Link to comment
Share on other sites

  • 3 weeks later...
  • 3 weeks later...

this worked for me..

 

themes/########/templates/catalog /_partials /miniatures/product.tpl

I modified this piece of code:
{block name='product_price_and_shipping'} {if $product.show_price} <div class="product-price-and-shipping pricehv">
in this way:
{block name='product_price_and_shipping'} {if $product.show_price} <div class="product-price-and-shipping pricehv" itemprop="offers" itemscope itemtype="https://schema.org/Offer">

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
On 4/3/2019 at 6:30 PM, wess france said:

I allow myself to answer you because there is not much information

I finally managed to remove the "errors" but not the warnings

by editing the product.tpl file that is located

/ themes / OURCHILDTHEME / templates / catalog / _partials / thumbnails /product.tpl

with the following code:

 

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

{**
 * 2007-2018 PrestaShop
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License 3.0 (AFL-3.0)
 * that is bundled with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * https://opensource.org/licenses/AFL-3.0
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to [email protected] so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
 * versions in the future. If you wish to customize PrestaShop for your
 * needs please refer to http://www.prestashop.com for more information.
 *
 * @author    PrestaShop SA <[email protected]>
 * @copyright 2007-2018 PrestaShop SA
 * @license   https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
 * International Registered Trademark & Property of PrestaShop SA
 *}
{block name='product_miniature_item'}
  <article class="product-miniature js-product-miniature" data-id-product="{$product.id_product}" data-id-product-attribute="{$product.id_product_attribute}" itemscope itemtype="http://schema.org/Product">
    <meta itemprop="image" content="{$product.cover.large.url}" />
    <meta itemprop="description" content="{$product.manufacturer_name} {$product.name}" />
    <meta itemprop="sku" content="{$product.reference_to_display}" />
    <div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>
        <meta itemprop="url" content="{$product.url}" />
        <meta itemprop="availability" content="https://schema.org/InStock" />
        <meta itemprop="priceCurrency" content="{$currency.iso_code}" />
        {if $product.condition == 'new'}
        <meta itemprop="itemCondition" content="new" />
        {else if $product.condition == 'used'}
        <meta itemprop="itemCondition" content="used" />
        {else}
        <meta itemprop="itemCondition" content="refurbished" />
        {/if}
        <meta itemprop="price" content="{$product.price_amount}" />
        <div itemprop="seller" itemtype="http://schema.org/Organization" itemscope>
            <meta itemprop="name" content="{$shop.name}" />
        </div>
    </div>
    <div itemprop="brand" itemtype="http://schema.org/Thing" itemscope>
        <meta itemprop="name" content="{$product.manufacturer_name}" />
    </div>

    <div class="thumbnail-container">
      {block name='product_thumbnail'}
        {if $product.cover}
          <a href="{$product.url}" class="thumbnail product-thumbnail">
            <img
              src = "{$product.cover.bySize.home_default.url}"
              alt = "{if !empty($product.cover.legend)}{$product.cover.legend}{else}{$product.name|truncate:30:'...'}{/if}"
              data-full-size-image-url = "{$product.cover.large.url}"
            >
          </a>
        {else}
          <a href="{$product.url}" class="thumbnail product-thumbnail">
            <img
              src = "{$urls.no_picture_image.bySize.home_default.url}"
            >
          </a>
        {/if}
      {/block}

      <div class="product-description">

 

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

to put on top of

<div class="product-description">

 

which becomes line 69

 

I hope it can help you.

cordially

Could you please help me in this case? I couldnt find :(

product.tpl.asli.txt

Link to comment
Share on other sites

  • 2 weeks later...

Hi all, 

I just implemented the solution as shown at https://github.com/PrestaShop/PrestaShop/pull/14558/files?file-filters[]=.tpl#diff-81d8fb082229455fb3663bf270c7f15e  This resolves this error. And generates the next one... 
In Google's structured data testing tool (https://search.google.com/structured-data/testing-tool) i now get "all values provided for url must point to the same page."

 

Digging deeper in the structured data definitions i got to this page https://developers.google.com/search/docs/guides/sd-policies where i find this paragraph: 

"A category page listing several different products (or recipes, videos, or any other type). Each entity should be marked up using the relevant schema.org type, such as schema.org/Product for product category pages. However, if one item is marked, all items should be marked. Also, unless this is a carousel page, the marked items should not link out to separate details pages.

Is the whole problem in the lists not that they should not be marked with structured product data?  In some big ecommerce sites  i see the SaleEvent object, not the individual products. 

Any SEO expert that has an opinion about this issue?

Thanks,

allard

Link to comment
Share on other sites

On 7/30/2019 at 6:53 AM, patall said:

I switched to version 1.7.5.2 and changed my theme (Charm).

Google sends errors over 340 ...

"Must indicate" offers "," review ", or" aggregateRating "

priceValidUntil

brand

review

sku

and the last (empty)

Erreur_Google_03.jpg

Same problem with new 1.7.6 installation. What is the solution? Does a module like this help? https://addons.prestashop.com/en/seo-natural-search-engine-optimization/46937-rich-snippet-seo-structured-data.html#overview

 

I don't understand, google is aking for values that I don't specify for products in my shop.. for example there are no "reviews".

Edited by Dan1 (see edit history)
Link to comment
Share on other sites

Hi PS members,

I could managed to make the corrections "by hand" following the github info above, on my prod site.

I checked with the PS 1.7.6.0 (testing with classic theme) but the error is still there...

Is there a plan to finally correct the PS core code in the next versions ?? or is it left to template/add-ons providers ?

  • Like 1
Link to comment
Share on other sites

18 hours ago, ltd said:

Hi PS members,

I could managed to make the corrections "by hand" following the github info above, on my prod site.

I checked with the PS 1.7.6.0 (testing with classic theme) but the error is still there...

Is there a plan to finally correct the PS core code in the next versions ?? or is it left to template/add-ons providers ?

Same, I have the same issue and I think the proper way is fixing PS core

Link to comment
Share on other sites

Could someone finally suggest a definitive solution?
No one is trying to steal someone's work, on the contrary, it just seems the opposite.
It seems that you want to force yourself to contact prestashop developers to solve a problem that should not exist in a cms for ecommerce.
Do not worry that nobody will spend € 500 to repair this, but the solution will be found and posted.
I do not put my site to hand to solve two crap.

Link to comment
Share on other sites

I just found this solution in the french forum and it seems to work in PS 1.7.6.1

in file templates/catalog/_partials/miniatures/product.tpl

after

{block name='product_miniature_item'}
  <article class="product-miniature js-product-miniature" data-id-product="{$product.id_product}" data-id-product-attribute="{$product.id_product_attribute}" itemscope itemtype="http://schema.org/Product">

I added:


    <meta itemprop="image" content="{$product.cover.large.url}" />
    <meta itemprop="description" content="{$product.name}" />
    <meta itemprop="sku" content="{$product->id}" /> 
    <meta itemprop="gtin13" content="{$product->ean13}" />
    <meta itemprop="mpn" content="{$product->reference}" />
    <meta itemprop="description" content="{$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'}" />   
    <div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>
        <meta itemprop="url" content="{$product.url}" />
        <meta itemprop="availability" content="https://schema.org/InStock" />
        <meta itemprop="priceCurrency" content="EUR" />
        <meta itemprop="itemCondition" content="New" />
        <meta itemprop="price" content="{$product.price_amount}" />
        <meta itemprop="priceValidUntil" content="{'Y'|date+1}-12-31">
        <div itemprop="seller" itemtype="http://schema.org/Organization" itemscope>
            <meta itemprop="name" content="{$shop.name}" />
        </div>
    </div>
<meta itemprop="brand" content="{if !empty(Manufacturer::getnamebyid($product.id_manufacturer))}{Manufacturer::getnamebyid($product.id_manufacturer)}{else}{Configuration::get('PS_SHOP_NAME')}{/if}">

In file /templates/catalog/_partials/product-prices.tpl

after

    {block name='product_price'}
      <div
        class="product-price h5 {if $product.has_discount}has-discount{/if}"
        itemprop="offers"
        itemscope
        itemtype="https://schema.org/Offer"
      >
        <link itemprop="availability" href="{$product.seo_availability}"/>
        <meta itemprop="priceCurrency" content="{$currency.iso_code}">

I added

<meta itemprop="priceValidUntil" content="{'Y'|date+1}-12-31">
        <meta itemprop="url" content="{$link->getProductLink($smarty.get.id_product)|escape:'htmlall':'UTF-8'}">

 

Maybe you only have to check with google structured data testing tool your missing data.

Link to comment
Share on other sites

18 hours ago, Gipsy said:

I just found this solution in the french forum and it seems to work in PS 1.7.6.1

in file templates/catalog/_partials/miniatures/product.tpl

after

{block name='product_miniature_item'}
  <article class="product-miniature js-product-miniature" data-id-product="{$product.id_product}" data-id-product-attribute="{$product.id_product_attribute}" itemscope itemtype="http://schema.org/Product">

I added:


    <meta itemprop="image" content="{$product.cover.large.url}" />
    <meta itemprop="description" content="{$product.name}" />
    <meta itemprop="sku" content="{$product->id}" /> 
    <meta itemprop="gtin13" content="{$product->ean13}" />
    <meta itemprop="mpn" content="{$product->reference}" />
    <meta itemprop="description" content="{$product.description_short|strip_tags:'UTF-8'|truncate:360:'...'}" />   
    <div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>
        <meta itemprop="url" content="{$product.url}" />
        <meta itemprop="availability" content="https://schema.org/InStock" />
        <meta itemprop="priceCurrency" content="EUR" />
        <meta itemprop="itemCondition" content="New" />
        <meta itemprop="price" content="{$product.price_amount}" />
        <meta itemprop="priceValidUntil" content="{'Y'|date+1}-12-31">
        <div itemprop="seller" itemtype="http://schema.org/Organization" itemscope>
            <meta itemprop="name" content="{$shop.name}" />
        </div>
    </div>
<meta itemprop="brand" content="{if !empty(Manufacturer::getnamebyid($product.id_manufacturer))}{Manufacturer::getnamebyid($product.id_manufacturer)}{else}{Configuration::get('PS_SHOP_NAME')}{/if}">

In file /templates/catalog/_partials/product-prices.tpl

after

    {block name='product_price'}
      <div
        class="product-price h5 {if $product.has_discount}has-discount{/if}"
        itemprop="offers"
        itemscope
        itemtype="https://schema.org/Offer"
      >
        <link itemprop="availability" href="{$product.seo_availability}"/>
        <meta itemprop="priceCurrency" content="{$currency.iso_code}">

I added

<meta itemprop="priceValidUntil" content="{'Y'|date+1}-12-31">
        <meta itemprop="url" content="{$link->getProductLink($smarty.get.id_product)|escape:'htmlall':'UTF-8'}">

 

Maybe you only have to check with google structured data testing tool your missing data.

hi, Gipsy

Really appreciate your reply. My prestashop is 1.7.6.1 

I submitted validation again and hopefully this time it will pass (3 times alreay). Waiting time is so annoying.

1.  in file templates/catalog/_partials/miniatures/product.tpl

I did not change the codes you gave  too much except for the currency. 

2. In file /templates/catalog/_partials/product-prices.tpl

The codes make all my product pages dead and come with 500 error. 

The above two points are my feedback which could be helpful to others.

Anyway, thank you very much. You are legend, Gipsy.

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 months later...

Our efforts to unravel the "instructions" above in this thread and fix our Google Search Console errors have failed (and broke our site).
The problem for us is the instructions do not actually contain sufficient step-by-step information.

We are running Prestashop 1.6.1.2 with modified product.tpl (no child themes). Google Search Console is producing over 700 errors:

Error  "Either "offers", "review", or "aggregateRating" should be specified

There are also warnings on every product:

Warning Missing field "brand"
Warning No global identifier provided (e.g., gtin, mpn, isbn)
Warning Missing field "priceValidUntil"
Warning Missing field "url"
Warning Missing field "aggregateRating"
Warning Missing field "review"
Warning Missing field "availability"
Warning Missing field "sku"
Warning Missing field "description"

We are using Customer Ratings and Reviews Pro + Google Rich Snippets v4.1.6 - by Business Tech - which was a massive mistake in our opinion, this module has never worked properly for us, nor could we ever get it to update. It's also incredibly slow to load, or to perform any administrative functions (such as approve reviews), taking nearly 5 minutes to display the admin screens.

We've contacted Biz Tech about these Search Console errors and they refused to help (their answer was buy the newer version). They refused to answer our specific questions regarding if they've actually solved each of these errors in their updated version of this module (we provided them with the entire list of errors asking if they fixed these - they chose not to respond to those questions).

Why would we buy this crappy module again on a gamble like that? Needless to say, we're extremely frustrated with this company, but it has been our experience that Prestashop module support is among the worst in the world, so par for the course in our opinion.

We have tried turning this module off, but that hasn't actually solved the Search Console errors either. Clearly, we need code corrections.

Has anyone here resolved these Search Console errors in Prestashop 1.6x? If so, exactly what steps did you take, and which files were modified?

 

 

Screen Shot 2020-02-10 at 11.43.12 AM.png

Edited by FoodAssets (see edit history)
Link to comment
Share on other sites

Hi, guys
 

The best way to get rid of these errors is to buy the relevant mircodata module which can make you web clean if you have no time and expertise to do the schema mark up. I did try many times to fix this problem before, but I failed. Finally, I purchase one module which almost cleared all the errors.  Our business web is clean.
 

The warnings are that important, but google will change its mind later probably. That means the current warnings could become errors in the near future. Still, try your best to get rid of warnings following the google advice. 


 

 

Link to comment
Share on other sites

That's definitely not going to work for us. Module developers rarely get things right in our experience, nor do they bother answering detailed questions (as explained in my post). They're more interested in just taking money versus providing well-coded modules. Prestashop is plagued with serious issues out of the box, and there seems to be a "module fix" for each of them (by design in our opinion). It's great way for them to take money - no thanks.

You're "almost cleared all the errors" comment is a great example of how crappy module developers are in our experience and seem to be in the business of releasing poor quality "solutions". We're just not interested in supporting this kind of shady business activity.

We tested your product page in Google's Structured Data Testing Tool (https://www.erenovation.com.au/in-wall-cistern-wall-hung-toilets/reno-302-rt-cistern-wall-hung-toilet#/59-button_option_rt-g3004109_square_chrome_12500/63-toilet_pan_color_option-gloss_white_toilet_pan) and it reports 4 warnings which I'm sure you know about.

There is a difference we've noted in the Testing Tool warnings and errors, and what Google Tools shows (increased severity). They are not giving out the same errors and warnings in all cases, some warnings are now "Errors", which are more severe.

We also suspect Google will (and has) changed its mind about how important these warnings and errors are.

This is a code problem with the core files in Prestashop in our opinion and it needs to be fixed.

 

 

Edited by FoodAssets (see edit history)
Link to comment
Share on other sites

 The FoodAssets is right, modules cannot be taken for everything. I have a module  schema-markup-tool-with-rich-snippets-seo-module  but that doesn't solve things. I have no errors, https://beautyandpower.eu/ neither for products nor for categories, but the warnings are enough.   I remove from product list tpl  and from product tpl all  itemscope, itemprop and the warnings disappeared, but it's not a solution and I returned the original files.

Link to comment
Share on other sites

  • 2 weeks later...

I had more errors on my thirtybees (Prestashop 1.6.0.9) version than products. Spend weeks to find solution. Unistalled a module Block Category Products and solved most of the errors. After testing on google few errors left, futher investigation pointed only few products that caused all errors. Removing all those products solved all errors, only warnings left. Few months later some of those warning started to change to errors, have now 8 errors on 8 products. Removed those products, cleared cache but google still see them. I am trying to solve warnings. Thirtybee is a better platform as I have only 118 modules (Presta had 256). My website is bargains-zone.co.uk

Link to comment
Share on other sites

This is product.tpl i used and google has accepted... I have changed in clasic and my custom theme. Added only 2 lines; DONT FORGET TO DELETE "FIXED" and left only "product"

<div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>

              <meta itemprop="price" content="{$product.price_amount}">
              
              </div>

productFIXED.tpl

Edited by goldies (see edit history)
Link to comment
Share on other sites

On 2/27/2020 at 3:15 PM, goldies said:

This is product.tpl i used and google has accepted... I have changed in clasic and my custom theme. Added only 2 lines; DONT FORGET TO DELETE "FIXED" and left only "product"

<div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>

              <meta itemprop="price" content="{$product.price_amount}">
              
              </div>

productFIXED.tpl 4.89 kB · 11 downloads

Where is your product.tpl located? It looks nothing like my 1.7.6.0  file which has almost 300 lines, yours has about 100.

.3 couldn't be that different from .0

Edited by Dan1 (see edit history)
Link to comment
Share on other sites

We are still hoping for someone to offer some real solutions to this problem. So far, nobody has weighed in on anything that works. That download link from goldies is disabled, and for the wrong version, so we can't even look at it for some ideas.

We attempted to hire a company to helps solve this issue, but they too remain clueless on what to do, so even that attempt went nowhere. Needless to say, we are very unimpressed with Prestashop support, module developers and so on. This reinforces our opinion that this is actually a horrible platform to build your business around.

Our company is being literally pummeled with orders now (we sell food) due to the coronavirus pandemic, and yet Google is ranking us very, very, VERY badly. You'd think the opposite would be true, since we have more business then we've ever seen now. But apparently, Google is punishing us for the 700+ Errors it's throwing on the Products. We can think of no other explanation for the poor ranking vs heavy site traffic we're now getting.

This is undoubtedly costing us thousands of customers during the current crisis. If ANYBODY has some ideas for version 1.6.1.2 please let us know ASAP.

Edited by FoodAssets (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...

Hi, everyone

Firstly, I have to say that I am not an advertiser, but the end user of prestashop. My business has been using prestashop for years from v1.5.6.2 and we upgraded to 1.7.6.1 at the end of 2019. After 4-month live testing, everthing is ok now.

I myself had same problem before about 'offers, review or aggregate ratings' and tried to get answer from prestashop forum, but finally it proves a big waste of time. Also, I did try to edit the file according to microdata markup guide. Unfortunately, I failed again although it is a piece of cake for programmer. For me, it is impossible mission.

Finally, I found a module which did a greate job, although it is not a perfect one. However at least it cleaned all the errors showed in google search console.

The link of this module is below: (it seems the price of this module goes up, previously it was only 59 dollars). Please take a good look at this module decription before purchase and make sure this module can solve your issues. Do not waste you money, although I did many times:mellow:

https://addons.prestashop.com/en/seo-natural-search-engine-optimization/42397-full-json-ld-microdata-and-open-graph-seo.html

If you believe me, do not waste your time and get this module to clean everything. After it, you need to know the following things as a friendly reminder:

1. prestashop is not perfect and it is going well. But next time, I am preparing to use Magento platform instead because it has strong Seo function compared with prestashop.

2. This recommended module can not solve everything. But from this module, we can learn how to solve this problem manually and the developer of this module did a good service, at least I had good experience with the developer.

3. Do not expect too much. This module can not remove all the warnings which will not have any harm on your web. But, still we can learn how to delete warnings from this module. 

4. This module could have some conflicts with other 3rd party modules, like seo modules. I used Advanced Seo module to optimize my web. In fact, The conflicts will not cause big problem. So far, they both work in their own way.

5. This module will modify your files. But it create a backup file to tell which files have been changed and how these files have been changed. You need to test your web again after installation to make sure all other functions are running normally. I had one problem with my shopping cart after installing this module. But from the back up files, I changed the shopcart.tpl to the previous status. Now, all the basic functions of my web are good.

Hopefull, my answer could help you guys. I know your bad experience with this problem which I had previously and tortured me at least 3 month without good sleep at all. 

Best regards

 

Edited by weixuan0710 (see edit history)
Link to comment
Share on other sites

  • 1 month later...

Hey weixun:

I appreciate your detailed informations, but as of 2020-05-06 it is announced PS 1.7.7 will fix this issue.

I asked the Devs at Github if they may can release some micro Update, or release an instruction what files to replace, so this issue can be solved immidiatly.

 

I would definitly NOT encourage anyone to spend money into an AddOn that will be obsolete in a few days - except you have a daily volume of thousands of Euros, than it may be more important to be SEO.

 

Ty

Link to comment
Share on other sites

Hi Ty,

Can you please let us know the link where we can read that this problem will be fixed in 1.7.7?

Also, will the fix also fix the issue of image snippets not showing up in Google search results? 

Thanks :) 

Link to comment
Share on other sites

I even got a reply in the meantime. I did not tried it by myself but will do so tonight. Check this:

Replace the template.tpl Data with this. If the quote is breaking the lines, just see at GitHUb: https://github.com/PrestaShop/PrestaShop/issues/19017

Quote

<meta property="og:title" content="{$page.meta.title}"/> <meta property="og:description" content="{$page.meta.description}"/> <meta property="og:type" content="website"/> <meta property="og:url" content="{$urls.current_url}"/> <meta property="og:site_name" content="{$shop.name}"/> {if isset($product) && isset($product.cover) && $page.page_name == 'product'} <meta name="thumbnail" content="{$product.cover.bySize.large_default.url}" /> <link rel="previewimage" href="{$product.cover.bySize.large_default.url}" /> <meta property="og:image" content="{$product.cover.bySize.large_default.url}"/> {else} <meta property="og:image" content="{$urls.shop_domain_url}{$shop.logo}"/> {/if} <script type="application/ld+json"> { "@context" : "http://schema.org", "@type" : "Organization", "name" : "{$shop.name}", "url" : "{$urls.pages.index}", "logo" : { "@type":"ImageObject", "url":"{$urls.shop_domain_url}{$shop.logo}" } } </script> <script type="application/ld+json"> { "@context":"http://schema.org", "@type":"WebPage", "isPartOf": { "@type":"WebSite", "url": "{$urls.pages.index}", "name": "{$shop.name}" }, "name": "{$page.meta.title}", "url": "{$urls.current_url}" } </script> {if $page.page_name =='index'} <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebSite", "url" : "{$urls.pages.index}", "image": { "@type": "ImageObject", "url":"{$urls.shop_domain_url}{$shop.logo}" }, "potentialAction": { "@type": "SearchAction", "target": "{'--search_term_string--'|str_replace:'{search_term_string}':$link->getPageLink('search',true,null,['search_query'=>'--search_term_string--'])}", "query-input": "required name=search_term_string" } } </script> {/if} {if isset($product) && $page.page_name == 'product'} <script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "Product", "name": "{$product.name}", "description": "{$page.meta.description}", "category": "{$product.category_name}", "sku": "{$product.reference}", {if $product.ean13} "gtin13": "{$product.ean13}", {/if} {if isset($product.cover)}"image" :"{$product.cover.bySize.home_default.url}",{/if} {if $product_manufacturer->name}"brand": { "@type": "Thing", "name": "{$product_manufacturer->name|escape:'html':'UTF-8'}" },{/if} {if isset($nbComments) && $nbComments && $ratings.avg}"aggregateRating": { "@type": "AggregateRating", "ratingValue": "{$ratings.avg|round:1|escape:'html':'UTF-8'}", "reviewCount": "{$nbComments|escape:'html':'UTF-8'}" },{/if} {if isset($product.weight) && ($product.weight != 0)} "weight": { "@context": "https://schema.org", "@type": "QuantitativeValue", "value": "{$product.weight}", "unitCode": "{$product.weight_unit}" },{/if} {*{if empty($combinations)}*} {if $product.show_price} "offers": { "@type": "Offer", "priceCurrency": "{$currency.iso_code}", "name": "{$product.name|strip_tags:false}", "price": "{$product.price_amount}", "url": "{$product.url}", "priceValidUntil": "{$smarty.now + (60*60*24*15)|date_format:"%Y-%m-%d"}", {if $product.images|count > 0} "image": {strip}[ {foreach from=$product.images item=p_img name="p_img_list"} "{$p_img.large.url}"{if not $smarty.foreach.p_img_list.last},{/if} {/foreach} ]{/strip}, {/if} {if $product.ean13} "gtin13": "{$product.ean13}", {else if $product.upc} "gtin13": "0{$product.upc}", {/if} "sku": "{$product.reference}", {if $product.condition == 'new'}"itemCondition": "http://schema.org/NewCondition",{/if} {if $product.show_condition > 0} {if $product.condition == 'used'}"itemCondition": "http://schema.org/UsedCondition",{/if} {if $product.condition == 'refurbished'}"itemCondition": "http://schema.org/RefurbishedCondition",{/if} {/if} "availability":{if $product.quantity > 0} "http://schema.org/InStock"{else} "http://schema.org/OutOfStock"{/if}, "seller": { "@type": "Organization", "name": "{$shop.name}" } } {/if} } </script> {/if} {if isset($breadcrumb.links[1])} <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ {foreach from=$breadcrumb.links item=path name=breadcrumb} { "@type": "ListItem", "position": {$smarty.foreach.breadcrumb.iteration}, "name": "{$path.title}", "item": "{$path.url}" }{if !$smarty.foreach.breadcrumb.last},{/if} {/foreach}] } </script> {/if}

Greets

Edited by PS.6thFNGR (see edit history)
Link to comment
Share on other sites

Hello @ 6xthFNGR

thank you for this information

but where is the file template.tpl to make the modification
because in my base theme version 1.7.6 I can't find the file template.tpl

there is a template file that contains multiple files

thank you for your information

Link to comment
Share on other sites

Hey,

Im a User and not Developer.

Please see the provided Links and this topic for more detailed info. I have to figure it out by myself aswell.

If I done so,  I can share it. Til than, I would appreciate if any of you already make out what to do so I can follow your instructions :P

Link to comment
Share on other sites

On 11/21/2019 at 11:08 AM, weixuan0710 said:

hi, Gipsy

Really appreciate your reply. My prestashop is 1.7.6.1 

I submitted validation again and hopefully this time it will pass (3 times alreay). Waiting time is so annoying.

1.  in file templates/catalog/_partials/miniatures/product.tpl

I did not change the codes you gave  too much except for the currency. 

2. In file /templates/catalog/_partials/product-prices.tpl

The codes make all my product pages dead and come with 500 error. 

The above two points are my feedback which could be helpful to others.

Anyway, thank you very much. You are legend, Gipsy.

I guess these are the paths

 

A bit more detailed from where it is starting:

Quote

/themes/OURCHILDTHEME/templates/catalog/_partials/miniatures/product.tpl

 

Edited by PS.6thFNGR (see edit history)
Link to comment
Share on other sites

  • 2 months later...

I can't believe that no one has yet provided exactly how to debug structured data on google

 

How can this problem not be optimized in the newer versions of Prestashop

I wasted a whole week of my time looking for ways to clear these errors, if they continue like this I will probably really give up the platform despite the fact that I paid a lot of money for modules and topics and what not.

 

Why not just some developer not to give accurate information and stop this search and writing and waste of people's time. Just see how much has been written on the topic and continues and no one has given specific methods and results. I expected 1.7 to be much more optimized !!!

Link to comment
Share on other sites

All of us are having the same problems but unfortunately there is very little help provided.

Right now, there is a new version coming up which is Prestashop 1.7.7.

Does anyone know whether this issue is fixed in Prestashop 1.7.7?

Thanks.

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

Well i thought i had it going.. but i don't

But it is still moving forward.. Hopefully soon i will be able to post a complete solution.

The following got my social buttons to share correctly and for seo to be a bit better. still having itemprop missing stuff.

On 5/7/2020 at 12:33 PM, PS.6thFNGR said:

Replace the template.tpl Data with this. If the quote is breaking the lines, just see at GitHUb: https://github.com/PrestaShop/PrestaShop/issues/19017

Somebody over at that link recommended to download the classic rocket theme.

From that theme, you need to copy microdata-jsonld.tpl to your theme (same location as that original file)
I also copied pagination-seo.tpl (same location as that original file)

Then open the file /themes/your theme/templates/_partials/head.tpl
Under head_seo block include the following close to the {/block} closing tag

{include file="_partials/microdata-jsonld.tpl"}
{include file="_partials/pagination-seo.tpl"}

You might need additional modifications that i'm not aware or, or maybe you are using a theme that overrides something so it blocks it.

 

EDIT: Well the above seems to be true, on product pages the search console shows far better results, the only missing fields i have are for actualy fields i didnt fill, like SKU (which is reference number on product page).

The problem is that all other products on that page (if you have addition products shown below), or even at the homepage, only the "Type" "name" and "price" gets filled in. WIll probably fix it.. so i will follow up on this.

 

Edited by pixelicous (see edit history)
Link to comment
Share on other sites

On 7/29/2020 at 2:26 PM, SahinSOLMAZ said:

In addition to these,

You can use this new tool to check your theme product page.

https://search.google.com/test/rich-results?utm_campaign=sdtt&utm_medium=url

Oh yes, search console is your friend here https://search.google.com/search-console/about

There are a couple more tools online, all of which are two click away with the right google search.

Link to comment
Share on other sites

  • 1 month later...
  • 3 weeks later...
On 2/28/2019 at 7:33 AM, Jaep said:

Yes, your programmer is correct. It looks good, but apparently the searchconsole's crawler is a little more strict than the testing tool.

I seem to have solved it for my site with a theme based on the Classic theme. Basically, I added an offers entry along with a valid price to the product miniature. Ask your programmer to add something like this (the important part is the "offers" div):


	<meta itemprop="image" content="https://shop.example.com/imageURL.jpg" />
	<meta itemprop="description" content="Description text" />
	<meta itemprop="sku" content="123456789" />
	<div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>
		<meta itemprop="url" content="https://shop.example.com/link_to_product.html" />
		<meta itemprop="availability" content="https://schema.org/InStock" />
		<meta itemprop="priceCurrency" content="USD" />
		<meta itemprop="itemCondition" content="New" />
		<meta itemprop="price" content="73077" />
		<div itemprop="seller" itemtype="http://schema.org/Organization" itemscope>
			<meta itemprop="name" content="Example PrestaShop" />
		</div>
	</div>
	<div itemprop="brand" itemtype="http://schema.org/Thing" itemscope>
		<meta itemprop="name" content="BrandOfProduct" />
	</div>

In my template markup there was an itemprop="price" entry which was a string including the currency symbol. Google Products does not like that, it has to be as above.

I still have a few optional fields missing, some I cannot easily solve in my setup. For example: The priceValidUntil field is recommended

 

Hope this helps

 

Prestashop 1.7.6.5
add the following code to /themes/classic/templates/catalogue/miniatures/product.tpl (around line 73, before  {hook h='displayProductPriceBlock' product=$product type='unit_price'})

{** To fix Google "offers" issue - EV *}
  <div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>
     <meta itemprop="price" content="{$product.price_amount}"/>
     <meta itemprop="description" content="{$product.name}"/>
     <meta itemprop="url" content="{$product.url}"/>
     <meta itemprop="priceCurrency" content="{$currency.iso_code}"/>
     <meta itemprop="review" content="{$product}"/>
     <meta itemprop="name" content="{$product.name}"/>
  </div>

credits also to https://github.com/PrestaShop/PrestaShop/issues/19017#issuecomment-647441060

 

Edited by Yulia Vitun
meta tags need to be closed (see edit history)
Link to comment
Share on other sites

22 hours ago, Yulia Vitun said:

Prestashop 1.7.6.5
add the following code to /themes/classic/templates/catalogue/miniatures/product.tpl (around line 73, before  {hook h='displayProductPriceBlock' product=$product type='unit_price'})


{** To fix Google "offers" issue - EV *}
  <div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>
     <meta itemprop="price" content="{$product.price}>
     <meta itemprop="description" content="{$product.name}">
     <meta itemprop="url" content="{$product.url}">
     <meta itemprop="priceCurrency" content="EUR">
  </div>

credits also to https://github.com/PrestaShop/PrestaShop/issues/19017#issuecomment-647441060

 

This works for me on 1.7.6.7
Still have warnings but no more errors!
Thank you!!!

  • Like 1
Link to comment
Share on other sites

On 9/27/2020 at 1:35 AM, giftitpersonal said:

I wanted to say thank you for the fix, it was still not working 100% for me, I spotted a missing " after content="{$product.price} and before >

<meta itemprop="price" content="{$product.price}>

should be <meta itemprop="price" content="{$product.price}">

I hope this helps.

thanks, just found out by myself and wanted to come back to report, but you were first ;)

Link to comment
Share on other sites

also, if I am not mistaken, meta tags need to be closed:

  <div itemprop="offers" itemtype="http://schema.org/Offer" itemscope>

     <meta itemprop="price" content="{$product.price_amount}"/>
     <meta itemprop="description" content="{$product.name}"/>
     <meta itemprop="url" content="{$product.url}"/>
     <meta itemprop="priceCurrency" content="{$currency.iso_code}"/>
     <meta itemprop="review" content="{$product}"/>
     <meta itemprop="name" content="{$product.name}"/>
  </div>

 

Link to comment
Share on other sites

On 9/28/2020 at 5:15 PM, CMirandaR said:

Hi, I have tried all the solutions but none have worked for me, the error that appears is the following:

You must specify "offers", "review" or "aggregateRating"

Can someone tell me what code to put and where to put it.

PS 1.7.6.7

Thank you very much in advance, Carles.

 

worth to try: https://support.google.com/webmasters/thread/4561975?hl=en&msgid=4570832 ;)

Edited by Yulia Vitun (see edit history)
Link to comment
Share on other sites

I am running Prestashop 1.7.5 due to a lot of heavy customisation I am not willing to update.

I tried everything to the best of my knowledge, even using the rocket theme files, just did not work for me. 

Anyway I just purchased the Jsonn-LD microdata module. All of my product errors have gone and only have warnings for things that I have not included such as SKU etc... Wasted far too much time, yes it’s pricey but It’s solved for me and gives me a lot more control over the microdata.

Link to comment
Share on other sites

24 minutes ago, mozed1 said:

I just purchased the Jsonn-LD microdata module. All of my product errors have gone and only have warnings for things that I have not included such as SKU etc... Wasted far too much time, yes it’s pricey but It’s solved for me and gives me a lot more control over the microdata.

Link to module please?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...