Jump to content

Déclinaisons - Google Shopping - Structured Data


Recommended Posts

Bonjour à tous,

 

J'ai décidé d'utiliser les déclinaisons dans Google Shopping (Merchant Center) mais je rencontre un problème lié au structured data.

 

Je prends un exemple avec l'url suivante :

http://equi-clic.com/fr/articulations/2729-ekyflex-arthro-3515650660667.html#/107-conditionnement-14_kg

 

Le problème c'est que je communique à Google un tarif de 1168€ TTC mais quand il vient chercher la page il trouve le tarif de base et non le tarif de de la déclinaison ce qui ne lui convient pas du tout. Il exclut donc toutes mes déclinaisons.

 

Si j'utilise l'outils de test des Structured Data de Google, je n'ai pas le bon prix :

https://developers.google.com/structured-data/testing-tool?url=http%253A%252F%252Fequi-clic.com%252Ffr%252Farticulations%252F2729-ekyflex-arthro-3515650660667.html%2523%252F107-conditionnement-14_kg

Google trouve les données du produit de base et non de la déclinaison :-(

 

J'imagine que tout le monde doit être concerné par ce problème. Avez-vous une idée ?

 

Merci d'avance.

Link to comment
Share on other sites

Comme je disais, j'ai ajouté un tableau avec les déclinaisons : référence, prix , valeurs des variations, EAN.

Il suffit de modifier le product.tpl

<!-- Block Variations -->
                {if isset($groups)}
                <section id="variations" class="page-product-box">
                    <h2 class="page-product-heading">{l s='Déclinaisons'} {$product->name|escape:'html':'UTF-8'}{if !(stripos(strtoupper($product->name),strtoupper($product->manufacturer_name)) !== FALSE)} {$product->manufacturer_name|escape:'html':'UTF-8'}{/if}</h2>
                    <div class="table-responsive">
                        <table border="1" class="table">
                          <thead> <!-- En-tête du tableau -->
                                <tr>
                                    <th>Réference</th>
                                    {foreach from=$groups item='attributearray' key='groupindex'}
                                    <th>{$attributearray.name}</th>
                                    {/foreach}
                                    <th>Prix</th>
                                    {if !empty($product->ean13)}<th>EAN</th>{/if}
                                </tr>
                                <tbody> <!-- Corps du tableau -->
                                  {foreach from=$combinations item='combination' key='combinationId'}
                                  <tr>
                                        <td>{$combination.reference}</td>
                                        {foreach from=$combination.attributes_values item='a' key='groupindex'}
                                        <td>{$a}</td>
                                        {/foreach}
                                        {if $priceDisplay >= 0 && $priceDisplay <= 2}
                                                 {if $combination.price != 0}
                                                      <td>{convertPrice price=($combination.price * ($tax_rate/100 + 1)) + $productPrice}</td>
                                                 {else}
                                                      <td>{convertPrice price=$productPrice}</td>
                                                 {/if}
                                        {/if}
                                        {if !empty($product->ean13)}<td>{if !empty($combination.ean13)}{$combination.ean13}{/if}</td>{/if}
                                  </tr>
                                  {/foreach}
                                </tbody>
                          </thead>
                        </table>
                    </div>
                </section>
                {/if}
<!-- /Block Variations -->

L'idéal serait d'ajouter les structured data aux déclinaisons. En effet, cela évite que mes produits soient refusés mais les prix ne sont pas mis à jour automatiquement.

  • Like 1
Link to comment
Share on other sites

Dernière version avec les Structured Data en plus. Je n'ai pas d'erreurs quand j'utilise l'outils de test. J'attends le retour du bot de Google Shopping dans quelques jours.

<!-- Block Variations -->
                {if isset($groups)}
                <section id="variations" class="page-product-box">
                    <h2 class="page-product-heading">{l s='Déclinaisons'} {$product->name|escape:'html':'UTF-8'}{if !(stripos(strtoupper($product->name),strtoupper($product->manufacturer_name)) !== FALSE)} {$product->manufacturer_name|escape:'html':'UTF-8'}{/if}</h2>
                    <div class="table-responsive">
                        <table border="1" class="table">
                          <thead> <!-- En-tête du tableau -->
                                <tr>
                                    <th>{l s='Réference'}</th>
                                    {foreach from=$groups item='attributearray' key='groupindex'}
                                    <th>{$attributearray.name}</th>
                                    {/foreach}
                                    <th>{l s='Nom'}</th>
                                    <th>{l s='Prix'}</th>
                                    {if !empty($product->ean13)}<th>{l s='EAN'}</th>{/if}
                                </tr>
                                <tbody> <!-- Corps du tableau -->
                                  {foreach from=$combinations item='combination' key='combinationId'}
                                  <tr itemscope itemtype="https://schema.org/Product">
                                        <td itemprop="sku">{$combination.reference}</td>
                                        {foreach from=$combination.attributes_values item='a' key='groupindex'}
                                        <td>{$a}</td>                                        
                                        {/foreach}
                                        <td itemprop="name">{$product->name|escape:'html':'UTF-8'}{foreach from=$combination.attributes_values item='a' key='groupindex'} {$a}{/foreach}</td>
                                        {if $priceDisplay >= 0 && $priceDisplay <= 2}
                                                 {if $combination.price != 0}
                                                     <td itemprop="offers" itemscope itemtype="https://schema.org/Offer"> <span itemprop="price" content="{($combination.price * ($tax_rate/100 + 1)) + $productPrice}"">{convertPrice price=($combination.price * ($tax_rate/100 + 1)) + $productPrice}</span></td>
                                                 {else}
                                                     <td itemprop="offers" itemscope itemtype="https://schema.org/Offer"> <span  itemprop="price" content="{$productPrice}">{convertPrice price=$productPrice}</span></td>
                                                 {/if}
                                        {/if}
                                        {if !empty($product->ean13)}<td itemprop="gtin13">{if !empty($combination.ean13)}{$combination.ean13}{/if}</td>{/if}
                                  </tr>
                                  {/foreach}
                                </tbody>
                          </thead>
                        </table>
                    </div>
                </section>
                {/if}
<!-- /Block Variations -->
Edited by Marmulet (see edit history)
Link to comment
Share on other sites

  • 2 weeks later...

J'avoue je suis en train de faire encore des modifications. J'ai du mal à satisfaire Google complètement. Il me reste encore des problèmes sur certains prix aussi donc il s'agit toujours d'un version Beta  :D

{if !isset($groups)}
                            {if !$product->is_virtual && $product->condition}
                                  {if $product->condition == 'new'}
                                    <link itemprop="itemCondition" href="https://schema.org/NewCondition"/>
                                  {elseif $product->condition == 'used'}
                                    <link itemprop="itemCondition" href="https://schema.org/UsedCondition"/>
                                  {elseif $product->condition == 'refurbished'}
                                    <link itemprop="itemCondition" href="https://schema.org/RefurbishedCondition"/>
                                  {/if}
                            {/if}
                        {/if}
                        <!--EAN13-->
                        {if $product->ean13}
                        <p id="product_ean13">
                                <label>{l s='EAN'} </label>
                                <span class="editable" {if !isset($groups)}itemprop="gtin13"{/if} content="{$product->ean13}">{if !isset($groups)}{$product->ean13|escape:'html':'UTF-8'}{/if}</span>
                        </p>
                        {/if}
<p class="our_price_display" {if !isset($groups)}itemprop="offers" itemscope itemtype="https://schema.org/Offer"{/if}>{strip}
									{if !isset($groups)}{if $product->quantity > 0}<link itemprop="availability" href="https://schema.org/InStock"/>{/if}{/if}
									{if $priceDisplay >= 0 && $priceDisplay <= 2}
										<span id="our_price_display" class="price" {if !isset($groups)}itemprop="price"{/if} content="{$productPrice}">{convertPrice price=$productPrice|floatval}</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}
										{if !isset($groups)}<meta itemprop="priceCurrency" content="{$currency->iso_code}" />{/if}
										{hook h="displayProductPriceBlock" product=$product type="price"}
									{/if}
								{/strip}
</p>
<!-- Block Variations -->
                {if isset($groups)}
                <section id="variations" class="page-product-box">
                    <h2 class="page-product-heading">{l s='Déclinaisons'} {$product->name|escape:'html':'UTF-8'}{if !(stripos(strtoupper($product->name),strtoupper($product->manufacturer_name)) !== FALSE)} {$product->manufacturer_name|escape:'html':'UTF-8'}{/if}</h2>
                    <div class="table-responsive">
                        <table border="1" class="table">
                          <thead> <!-- En-tête du tableau -->
                                <tr>
                                    <th>{l s='Réference'}</th>
                                    {foreach from=$groups item='attributearray' key='groupindex'}
                                    <th>{$attributearray.name}</th>
                                    {/foreach}
                                    <th>{l s='Nom'}</th>
                                    <th>{l s='Prix'}</th>
                                    {if !empty($product->ean13)}<th>{l s='EAN'}</th>{/if}
                                </tr>
                                <tbody> <!-- Corps du tableau -->
                                  {foreach from=$combinations item='combination' key='combinationId'}
                                  <tr itemscope itemtype="https://schema.org/Product">
                                        <td itemprop="model">{$combination.reference}</td>
                                        {foreach from=$combination.attributes_values item='a' key='groupindex'}
                                        <td>{$a}</td>                                        
                                        {/foreach}    
                                        <td itemprop="name">[spam-filter]$product->name|escape:'html':'UTF-8'[spam-filter]{foreach from=$combination.attributes_values item='a' key='groupindex'} {$a}{/foreach}</td>
                                        {if $priceDisplay >= 0 && $priceDisplay <= 2}
                                            <td itemprop="offers" itemscope itemtype="https://schema.org/Offer">
                                                 {if $combination.price != 0}
                                                    {if isset($combination.specific_price.reduction_type)} 
                                                        {if $combination.specific_price.reduction_type==amount}
                                                            <span itemprop="price" content="{($combination.price * ($tax_rate/100 + 1)) + $productPrice - $combination.specific_price.reduction}"">{convertPrice price=($combination.price * ($tax_rate/100 + 1)) + $productPrice - $combination.specific_price.reduction}</span>
                                                        {elseif $combination.specific_price.reduction_type==percentage}
                                                            <span itemprop="price" content="{(($combination.price * ($tax_rate/100 + 1)) + $productPrice)* (1-$combination.specific_price.reduction)}"">{convertPrice price=(($combination.price * ($tax_rate/100 + 1)) + $productPrice) * (1-$combination.specific_price.reduction)}</span>                                                                                                               
                                                        {/if}   
                                                    {else}    
                                                     <span itemprop="price" content="{($combination.price * ($tax_rate/100 + 1)) + $productPrice}"">{convertPrice price=($combination.price * ($tax_rate/100 + 1)) + $productPrice}</span>
						    {/if}
                                                 {else}
                                                     {if isset($combination.specific_price.reduction_type)} 
                                                        {if $combination.specific_price.reduction_type==amount}
                                                            <span  itemprop="price" content="{$productPrice - $combination.specific_price.reduction}">{convertPrice price=($productPrice - $combination.specific_price.reduction)}</span>                     
                                                        {elseif $combination.specific_price.reduction_type==percentage}                                                                                                                                     
                                                            <span  itemprop="price" content="{$productPrice*(1-$combination.specific_price.reduction)}">{convertPrice price=($productPrice* (1-$combination.specific_price.reduction))}</span>                                                       
                                                        {/if}   
                                                    {else}    
                                                     <span  itemprop="price" content="{$productPrice}">{convertPrice price=$productPrice}</span>
						    {/if}
                                                 {/if}
                                                 {if $combination.quantity > 0}<link itemprop="availability" href="https://schema.org/InStock"/>{/if}
                                                 <link itemprop="itemCondition" href="https://schema.org/NewCondition"/>                                                 
                                            </td>         
                                        {/if}
                                        {if !empty($product->ean13)}<td itemprop="gtin13">{if !empty($combination.ean13)}{$combination.ean13}{/if}</td>{/if}
                                  </tr>
                                  {/foreach}
                                </tbody>
                          </thead>
                        </table>
                    </div>
                </section>
                {/if}
 <!-- /Block Variations -->
  • Like 1
Link to comment
Share on other sites

  • 3 years later...

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