Get it on Google Play
16-05-2018
 

Script de creación del fichero del fichero de productos para Google Shopping

Google Shopping

Google Shopping

Como ya he comentado es otros artículos Google Shopping es un buen canal para vender por Internet. Existen varias maneras de subir tus productos a Google Shopping: A través de una hoja de cálculo de Google, subida vía FTP, a través de su API o a través de un fichero XML(La que vamos a ver en este artículo y la mas utilizada).
El siguiente script en PHP(Que esta incompleto y comentado por temas de privacidad) muestra como deberemos generar el fichero. El fichero original incluía los productos de una tienda Drupal con Ubercart.

<?php
/* Para devolver el código en UTF-8 */
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');

header("Content-type: text/xml; charset=utf-8");
echo '<?xml version="1.0" encoding="utf-8"?>';
?>

<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>My super eCommerc</title>
<link>www.mi web.com</link>

<?php
	/* Obtenemos los poductos */
	$productos=getProductos(); 

	while ($row = mysqli_fetch_array($productos)) {

		/* Gastos de envio 5.90 Euros y gratuitos para todos los productos de mas de 60 Euros*/
		$sellPrice='5.90';
		$sellDesc='Península';
		if ( $row["sell_price"]>60 ) {
			$sellPrice='0';
			$sellDesc='Envío gratuito';
			}

		$item="";
		
		$item.="<g:id>".$row["id"]."</g:id>\n";
		$item.= "<g:mpn>".$row["nid"]."</g:mpn>\n";
		$item.= "<g:title>".$row["title"]."</g:title>\n";
		$item.= "<g:gtin>".$row["gtin"]."</g:gtin>\n";
		$item.= "<g:description>".$row["description"]."</g:description>";
		$item.= "<g:google_product_category>".$row["google_product_category"]."</g:google_product_category>\n";
		$item.= "<g:product_type>".$row["family"]."</g:product_type>\n";

		$item.= "<g:link>https://www.mi super web.com/".$row["url"]."</g:link>\n";
		$item.= "<g:image_link>https://www.mi super web.com/".$row["image_url"]."</g:image_link>\n";

		$item.= "<g:price>".number_format($row["sell_price"],2)." EUR</g:price>\n";
		$item.= "<g:condition>new</g:condition>\n";
		$item.= "<g:brand>".utf8_encode($row["brand"])."</g:brand>\n";

		$item.= "<g:shipping>\n";
		$item.= "<g:country>ES</g:country>\n";
		$item.= "<g:service>".$sellDesc."</g:service>\n";
		$item.= "<g:price>".$sellPrice." EUR</g:price>\n";
		$item.= "</g:shipping>\n";

		$item.= "<g:is_bundle>no</g:is_bundle>\n";

		/* Devuelve el stock por cada variante */
		$stocks=getStockOptions( $conn, $row["nid"] );

		$ageGroups=array_fields( $row["google_age_groups"] );
		$genders=array_fields( $row["google_genders"] );
		$sizeTypes=array_fields( $row["google_size_types"] );

		$r=combinate( $item,$stocks,$ageGroups,$genders,$sizeTypes );

		echo $r;
		}
?>

</channel>
</rss>

<?php

function combinate( $item,$stocks,$ageGroups,$genders,$sizeTypes ) {
	$r="";
	
	foreach ( $stocks as $stock )
	foreach ( $ageGroups as $ageGroup )
	foreach ( $genders as $gender )
	foreach ( $sizeTypes as $sizeType ) {
		$r.="<item>\n";

		$r.=$item;	

		$str="in stock";
		if ( $stock["stock"]<1 ) $str="out of stock";

		$r.= "<g:availability>".$str."</g:availability>\n";

		if ( count( $stocks )>1 ) {
			$r.= "<g:color>".$stock["color"]."</g:color>\n";
			$r.= "<g:size>".$stock["talla"]."</g:size>\n";
			$r.= "<g:age_group>".$ageGroup."</g:age_group>\n";
			$r.= "<g:gender>".$gender."</g:gender>\n";
			$r.= "<g:size_type>".$sizeType."</g:size_type>\n";
			}

		$r.="</item>\n\n";
		}

	return $r;
	}

?>

Para conocer el detalle del formato del XML, así como los valores permitidos en cada campo podéis cnsultar el siguiente link ‘Especificación de datos de producto‘.

Trato de las variantes de Google Shopping

En el caso que nos ocupa se trata de una tienda de ropa. Las tiendas de ropa tienen variantes, es decir, que un mismo jersey puede estar disponible en varios colores y tallas. Una variante, se trata de un mismo productos que puede estar disponible con variaciones(Colores, tallas, tamaños, etc.). Cada variante tendrá su propio stock(En el caso que nos ocupa, las variantes tienen el mismo precio, aunque no tendría porque).
En el XML de Google las variantes se tratan creando varios registros(O elementos ‘item’ dentro del XML). Cada variante tendrá el mismo id, mpn, title, etc. y solo cambiará el stock, color, etc.
Por cierto, los campos color, size, etc. son obligatorios en algunas categorías de Google.

Donde configurar el feed del producto

Para configurar el feed del producto deberemos ir a Google Merchant Center. Una vez allí podéis ir a ‘Products’ y ‘Feeds’, donde os permitirá configurar tantos feeds como necesitéis (No estaría de mas configurar uno por país o si el catalogo es muy extenso uno por familia).

Problemas mas comunes cuando no aparecen productos en Google Shopping

Desde no se cuando para que aparezcan los productos es Google Shopping se tiene que crear una campaña de AdWords. Si no aparecen tus productos en Google Shopping, y están correctamente subidos, probablemente este sea el motivo.

Si te ha servido, por favor comparte
 

Leave a Reply