Jump to content

Problemas en los precios de productos con combinaciones de google merchant center


MedinaAJ

Recommended Posts

Buenas,

El robot de google me ha indicado que los precios de los enlaces a mis productos, que tengo subidos a google shopping, y que dirigen a mi tienda en prestashop, están mal, me he metido uno a uno a los enlaces que se me indican en google merchant center,  y los precios están bien, son productos con combinaciones, y siempre coge el precio de la mas pequeña, no entiendo por qué.

El sitio web es https://www.ventadecolchones.com/

Si alguien sabe algo sería de gran ayuda.

Un saludo.

Link to comment
Share on other sites

Hola,

Es porque necesitan indicarse correctamente con los rich snippets, te dejo un ejemplo de cómo deberían mostrarse y que no deberías tener problema para que realices los cambios en tus tpl.

<span itemprop="price" content="189">189.00 €</span>
<meta itemprop="priceCurrency" content="EUR">

 

Saludos!

  • Thanks 1
Link to comment
Share on other sites

Buenas,

Lo primero agradecerte tu respuesta. Creo que mi tienda ya esta configurada como me has indicado, este es el código:

<span id="our_price_display" class="price" itemprop="price" 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}
<meta itemprop="priceCurrency" content="{$currency->iso_code}" />

Cuando utilizo el inspeccionador de elementos, la etiqueta content, no se actualiza, se queda con el precio de la combinación por defecto y creo que ese es el problema:

<span id="our_price_display" class="price" itemprop="price" content="118">158,00 €</span>
<meta itemprop="priceCurrency" content="EUR">

Como puede ver apuntando a la misma variable, el precio de la combinación se actualiza, y el de la etiqueta content no, este es el enlace a la combinación del artículo que he accedido para inspeccionar:

https://www.ventadecolchones.com/colchones-viscoelasticos/colchon-viscoelastica-visco-3-33.html#/96-medida-90_x_200_cm

Agradecería cualquier ayuda ya que he buscado mucho por Internet y hay muy poca información respecto a este problema. 

Muchas gracias de antemano,

Un saludo.

Link to comment
Share on other sites

Prueba una de las URL aqui

https://search.google.com/structured-data/testing-tool/u/0/

Veras que sale mal.

Ademas has añadido un "holaaa"

Errores comunes
Error en el “price” La propiedad xx.xx € no es una especificación de precio válida
Solución -> buscar en el fichero itemprop=”price” y añadir a continuación : content=”{$productPrice}” antes del cierre >
Error “priceCurrency” El campo priceCurrency está recomendado. Proporciona un valor si está disponible.
Solución -> buscar en el fichero itemprop=”priceCurrency” y añadir a continuación o modificar por content=”{$currency->iso_code}” antes del cierre >
Falta price
Solución -> buscar   id=”our_price_display” >{convertPrice price=$productPrice}  y añadir antes del primer cierre de > itemprop=”price” content=”{$productPrice}”

  • Like 1
Link to comment
Share on other sites

Por lo que he leído en alguna de tus contestaciones he deducido que tienes combinaciones y envías cada combinación por separado, es correcto?

Envías a merchant center productos individuales o conjuntos. combinación por combinación , o envías 1 producto con X opciones?

Ten en cuenta que si envías una combinación por separado, y el precio de cada combinación es diferente, el robot de google solo puede ver 1 precio, no esta preparado ni el robot ni prestashop en dar la información de los precios de cada combinación.

Lo mejor es enviar los productos conjuntamente y añadiendo las combinaciones como opciones de producto.

O añadir un código / modulo, para que muestre el rango de precios desde el mas bajo hasta el mas alto.

 

Tengo un modulo que lo hace, si te sirve aquí tienes el código que haría falta añadir al TPL , obviamente habría que cambiar los datos que YO leo de mi modulo  {$minprecio} y {$maxprecio} y que leyera los datos del producto y que los mostrase. cosa que ahora mismo no se si se puede o hay que hacer algun tipo de cambio en el fichero "controller" de productos para que los lea y envie al tpl.

 <span itemprop="offers" itemscope itemtype="http://schema.org/AggregateOffer">
    {l s='from ' mod='rangodeprecios'} <span class="price product-price" content="{$minprecio|floatval}" itemprop="lowPrice">{convertPrice price=$minprecio|floatval}</span>  {l s='to ' mod='rangodeprecios'} <span class="price product-price" content="{$maxprecio|floatval}" itemprop="highPrice">{convertPrice price=$maxprecio|floatval}</span>
    <meta itemprop="priceCurrency" content="{$currency->suffix}" />
  </span>

 

  • Like 1
Link to comment
Share on other sites

28 minutes ago, gusman126 said:

Por lo que he leído en alguna de tus contestaciones he deducido que tienes combinaciones y envías cada combinación por separado, es correcto?

Envías a merchant center productos individuales o conjuntos. combinación por combinación , o envías 1 producto con X opciones?

Ten en cuenta que si envías una combinación por separado, y el precio de cada combinación es diferente, el robot de google solo puede ver 1 precio, no esta preparado ni el robot ni prestashop en dar la información de los precios de cada combinación.

Lo mejor es enviar los productos conjuntamente y añadiendo las combinaciones como opciones de producto.

O añadir un código / modulo, para que muestre el rango de precios desde el mas bajo hasta el mas alto.

 

Tengo un modulo que lo hace, si te sirve aquí tienes el código que haría falta añadir al TPL , obviamente habría que cambiar los datos que YO leo de mi modulo  {$minprecio} y {$maxprecio} y que leyera los datos del producto y que los mostrase. cosa que ahora mismo no se si se puede o hay que hacer algun tipo de cambio en el fichero "controller" de productos para que los lea y envie al tpl.


 <span itemprop="offers" itemscope itemtype="http://schema.org/AggregateOffer">
    {l s='from ' mod='rangodeprecios'} <span class="price product-price" content="{$minprecio|floatval}" itemprop="lowPrice">{convertPrice price=$minprecio|floatval}</span>  {l s='to ' mod='rangodeprecios'} <span class="price product-price" content="{$maxprecio|floatval}" itemprop="highPrice">{convertPrice price=$maxprecio|floatval}</span>
    <meta itemprop="priceCurrency" content="{$currency->suffix}" />
  </span>

 

De dnd sacas $minprecio y $maxprecio, q yo sepa presta ni saca esa info en los tpl y no hay nigun metodo o funcion que te lo de.

Podiras compartir altruistamente la funcion d dnd sacas los min y max precios d las combianciones ?

Gracias

Quote

Ten en cuenta que si envías una combinación por separado, y el precio de cada combinación es diferente, el robot de google solo puede ver 1 precio, no esta preparado ni el robot ni prestashop en dar la información de los precios de cada combinación.

Esto no es correcto. En Presta 1.7 cada combinacion tiene url propia con sus propios datos estructurados con canonica a la combinacion x defecto

http://fo.demo.prestashop.com/es/art/3-13-the-best-is-yet-to-come-framed-poster.html

http://fo.demo.prestashop.com/es/art/3-14-the-best-is-yet-to-come-framed-poster.html

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

Cita

Esto no es correcto. En Presta 1.7 cada combinacion tiene url propia con sus propios datos estructurados con canonica a la combinacion x defecto

La cuestión es si el modulo que usa envía las URL diferentes por cada combinación o solo envía la URL del producto

--

hace 1 minuto, burrots dijo:

De dnd sacas $minprecio y $maxprecio, q yo sepa presta ni saca esa info en los tpl y no hay nigun metodo o funcion que te lo de.

Podiras compartir altruistamente la funcion d dnd sacas los min y max precios d las combianciones ?

Gracias

Esto no es correcto. En Presta 1.7 cada combinacion tiene url propia con sus propios datos estructurados con canonica a la combinacion x defecto

 

Función añadida al modulo para que lea los precios de las combinaciones

public function getinfo($id_product){
        
        $product = new Product($id_product, true, $this->context->language->id, $this->context->shop->id);
       
        $combinationsa = $product->getAttributesResume($this->context->language->id);
         
        if (!empty($combinationsa)) {
            $attrsproduct = array();
            foreach ($combinationsa as $combinacion){
                $attrsproduct[] = $combinacion['id_product_attribute'];
            }
            
           
            $taxes = Configuration::get('RANGODEPRECIOS_TAX');
            if($taxes){
                $tax = true;
            }else{
                $tax = false;
            }
            $precios = array();
            $precios[] = $product->getPrice($tax, 0);
            foreach ($attrsproduct as $attrproduct){
                $precios[] = $product->getPrice($tax, $attrproduct);
            }
            sort($precios);
            
          
            $minprecio = $precios[0];
            $maxprecio = end($precios);
            
           
            
            if ($minprecio < $maxprecio){
                $this->context->smarty->assign('minprecio', $minprecio);
                $this->context->smarty->assign('maxprecio', $maxprecio); 
                if (version_compare('1.7.0.0', _PS_VERSION_, '>')) {
                    return $this->context->smarty->fetch(dirname(__FILE__).'/views/templates/hook/precios.tpl');
                }else{
                    return $this->context->smarty->fetch(dirname(__FILE__).'/views/templates/hook/precios17.tpl');
                }
                
            }
            
            
            
           
           
           
        }else{
            return false;
        }
        
        
    }

 

 

  • Like 1
Link to comment
Share on other sites

4 minutes ago, gusman126 said:

La cuestión es si el modulo que usa envía las URL diferentes por cada combinación o solo envía la URL del producto

Cierto.

 

Gracias x el función. no es habitual ver en datos estructurados rangos de precios. Voy a probar en un par de webs, solo por ser un pelin diferente al resto de competidores en los serp, casi seguro q el ctr sube un poco para las pages dnd los muestre.

Saludos

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

hace 5 minutos, burrots dijo:

Cierto.

 

Gracias x el función. no es habitual ver en datos estructurados rangos de precios. Voy a probar en un par de webs, solo por ser un pelin diferente al resto de competidores en los serp, casi seguro q el ctr sube un poco para las pages dnd los muestre.

Saludos

Ok, bueno, si mi modulo muestra un rango de precios, es lógico que use datos estructurados. ;)

Si quieres continuamos por MP o en otro mensaje.

 

Link to comment
Share on other sites

5 minutes ago, gusman126 said:

Ok, bueno, si mi modulo muestra un rango de precios, es lógico que use datos estructurados. ;)

Si quieres continuamos por MP o en otro mensaje.

 

Ni yo mismo sabia q habia rangos en schema.org hasta hace unos meses. El 99% de webs , incluso el mismo presta, en caso d combinaciones usa un único precio, el de la combinacion x defecto. 

 

Si ya tienes modulo de esto es q eres un visionario y adelantado a los demas, como decia ni yo y, creo q mucha gente, sabia q exsistia esto... 🤣

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

6 minutes ago, MedinaAJ said:

Muchas gracias por vuestros aportes, probaré a integrar todo en busca de una solución, ya comentaré que tal.

Un saludo.

Prueba a montar un modulo. 

Y un vez montado si tienes algun problema comentalo y te echamos un cable.

Link to comment
Share on other sites

Buenas,

Al final no he utilizado el rango de precios, con el modulo de Google Merchant Center Pro (que ya tenía comprado e instalado), podía subir los productos, pero no podía cambiarles los nombres. Como yo solo quería hacer todo esto para cambiar el nombre de una combinación de un producto he optado por modificar el módulo para poder cambiar el nombre.

Si alguien esta interesado que me lo indique y subo la solución.

 

Gracias a todos, 

Un saludo.

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