Jump to content

[Résolu]Problème de prix dans les données structurées


Recommended Posts

Bonjour,

je rencontre actuellement un problème avec l'affichage des tarifs de certains produits dans les SERPS, en effet google dans son aperçu affiche 5 chiffres avant la virgule.

Exemple un article coûte 46.90€ TTC dans les résultats de recherche google affiche: 46896,00€ la virgule n'est pas au bon endroit.

J'ai d'abord pensé a un module mal structurée au niveau des données concernant mais n'ayant rien trouvé de probant j'ai décidé d'effectuer un test en changeant de template.

Dans un premier temps j'ai repis un template totalement vierge d'une version 1.6 sans effectué aucune modification et aucun changement le problème est toujours là.

J'ai testé avec un second thème non officile prestashop et le problème disparait. J'en conconlus que le problème se situe dans le theme par défaut de prestashop.

Voici le code de la partie concerné de mon product.tpl car ce désagrément ne concerne que les fiches produits car j'ai déjà retiré les données stucturées des products-list etc... il ne reste que les fiches produits.

<p class="our_price_display" itemprop="offers" itemscope itemtype="https://schema.org/Offer">{strip}
									{if $product->quantity > 0}<link itemprop="availability" href="https://schema.org/InStock"/>{/if}
									{if $priceDisplay >= 0 && $priceDisplay <= 2}
										<span id="our_price_display" itemprop="price" content="{$productPrice|floatval}">{convertPrice price=$productPrice}</span>																							
										{if $tax_enabled  && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))}
											{if $priceDisplay == 1} {l s='tax excl.'}{else} {l s='tax incl.'}{/if}
										{/if}
										<meta itemprop="priceCurrency" content="{$currency->iso_code}" />
										{hook h="displayProductPriceBlock" product=$product type="price"}
									{/if}
								{/strip}
								</p>

Voici l'extrait de code dans la console chrome:

<span id="our_price_display" itemprop="price" content="46.896">46,90 €</span>

Si je teste une url dans l'outil google de test des données structurées il lit correctement le content:

Citation

 

@type Offer

availability http://schema.org/InStock

price 46.896

priceCurrency EUR

 

 

Par contre l'aperçu des résultats:

Citation

 

Prix

46 896,00 €

 

 

Suis je passé a coté de quelque chose ?

En vous remerciant,

Tchupa.

Edited by Tchupa
Problème résolu (see edit history)
Link to comment
Share on other sites

Salut,

J'arrive à reproduire ton problème sur un thème natif Prestashop 1.6.1.24.

Je n'ai pas non plus le problème sur un thème maison qui n'override néanmoins pas cette partie du code.

A mon avis, il s'agit de la lecture de la virgule et des espaces qui est différent aux US, pour eux un point équivaut à un espace.

D'après la doc https://schema.org/price :

Quote

<!--price is 1000, a number, with locale-specific thousands separator

    and decimal mark, and the $ character is marked up with the

    machine-readable code "USD" -->

    <span itemprop="priceCurrency" content="USD">$</span><span

          itemprop="price" content="1000.00">1,000.00</span>

Quote

Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator.

Peut être qu'il n'arrive pas à comprendre la currency ? S'il croit avoir affaire à du $ il va prendre un . pour un séparateur de millier et non décimale.

Link to comment
Share on other sites

Salut Shonen,

merci d'avoir pris le temps de me répondre et surtout tu me rassure en confirmant bien la présence de ce bug dans le template par faut de la 1.6

concernant la currency si je regarde dans la console chrome le code iso est bien pris en compte

<meta itemprop="priceCurrency" content="EUR">

 

Link to comment
Share on other sites

  • 3 weeks later...

Hello,

j'ai enfin trouvé la solution a mon problème dans le template par défaut de prestashop 1.6.1.etc, je partage pour les personnes qui pourraient rencontrer ce problème a l'avenir.

Ouvrir le fichier product.tpl

au tout début du fichier vous avez le code :

{include file="$tpl_dir./errors.tpl"}
{if $errors|@count == 0}
	{if !isset($priceDisplayPrecision)}
		{assign var='priceDisplayPrecision' value=2}
	{/if}
	{if !$priceDisplay || $priceDisplay == 2}
		{assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)}
	{elseif $priceDisplay == 1}
		{assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL, 6)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(true, $smarty.const.NULL)}
	{/if}

Remplacer le par:

{include file="$tpl_dir./errors.tpl"}
{if $errors|@count == 0}
	{if !isset($priceDisplayPrecision)}
		{assign var='priceDisplayPrecision' value=2}
	{/if}
	{if !$priceDisplay || $priceDisplay == 2}
		{assign var='productPrice' value=$product->getPrice(true, $smarty.const.NULL, 2)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(false, $smarty.const.NULL)}
	{elseif $priceDisplay == 1}
		{assign var='productPrice' value=$product->getPrice(false, $smarty.const.NULL, 2)}
		{assign var='productPriceWithoutReduction' value=$product->getPriceWithoutReduct(true, $smarty.const.NULL)}
	{/if}

 

Bonne journée à tous.

 

Tchupa.

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

  • Tchupa changed the title to [Résolu]Problème de prix dans les données structurées

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...