Feed Dati RSS Google Merchant

Google Merchant Center è uno strumento che ti permette di caricare le tue schede di prodotto da utilizzare per Google Shopping, Annunci con schede di prodotto e Google Commerce Search.
Google Shopping permette agli acquirenti di trovare le tue schede di prodotto su Google in modo semplice e rapido, è inoltre possibile collegare Google Shopping con il tuop account Google Adwords.
Per creare il feed di dati per Google Merchant è possibile utilizzare due tecnologie per i feed di dati XML: RSS 2.0 e Atom 1.0.
In questo tutorial forniremo indicazioni per la creazione del Feed Dati RSS Google Merchant Center (Google Shopping) utilizzando lo standard RSS 2.0.
E’ possibile consultare il seguente file per esaminare un esempio di feed di dati XML: EXAMPLE RSS 2.0.

Dashboard Google Merchant Center

Google Merchant Center


Dichiarazione dello spazio dei nomi di Google Shopping
Nella realizzazione di queste specifiche è fondamentale che il file sia validato con le specifiche definite nello spazio dei nomi (NAMESPACE) di Google, pertanto siccome siamo prettamente interessati a non sbagliare potremo scaricarci dal seguente link: Schema XSD Google Merchant lo schema XSD con il quale si effettuerà la validazione del file XML creato, in modo tale da poter avere un pieno controllo sui feed sul nostro server ancor prima di caricare questo file sul server di Google.
Inoltre prima della realizzazione di suddetto file consiglio vivamente di leggere il seguente link: https://support.google.com/merchants/answer/188494 per comprende quali informazioni presenti sul nostro database passare a Google.
Ora passiamo alla realizzazione degli step che ci permettono di raggiungere il nostro obiettivo:

1 STEP: DEFINIZIONE NAMESPACE PER LE NOSTRE SPECIFICHE XML

Come editor XML, personalemente ho utilizzato XML Spy, ma voi potete utilizzare quello che ritenete più consono alle vostre esigenze. Nel file allegato troverete da pagina 14 a pagina 17 il tutorial per la realizzazione di un namespace. Chiaramente collegheremo il nostro file XML al file XSD in modo tale da essere validato in locale: Altova XMLSpyTutorial.
Dopo la creazione del file nel terzo step replicheremo questo namespace sul nostro server, pertanto ora occorre definire sul nostro server una cartella che ospiterà i feed di dati e lo schema XML (file XSD).

2 STEP: CREAZIONE DEL FILE XML (create_xml.php)

Di riporto alcune righe di codice PHP per la creazione di un file di file XML.

1
2
3
4
5
6
<?php include("funzioni/xml_validate.php");
$nome_file="xml_google_merchant/example.xml";
/// Apro il file in lettura e scrittura, lo creo se non esiste.$file=fopen($nome_file,'w+');
$apertura_xml="<?xml version='1.0' encoding='UTF-8'?>\r\n<rss version='2.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:g='http://base.google.com/ns/1.0' xsi:schemaLocation='http://www.miosito.it/namespace schema.xsd' xmlns='http://www.lamiastampante.it/namespace'>\r\n<channel>";
$intestazione="\r\n<title>TITOLO</title>\r\n<link>http://www.miosito.it</link>\r\n<description>DESCRIZIONE</description>";?>

poi in un ciclo sui prodotti da inserire costruiremo il file XML.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php $dati=mysql_query("QUERYSTRING");
$lista_item="";
while($array=mysql_fetch_array($dati)){
  $item="\r\n<item>";
  $item.="\r\n<title><![CDATA[$titolo]]></title>";
  $item.="\r\n<link><![CDATA[$link_prodotto]]></link>";
  $item.="\r\n<description><![CDATA[$descrizione]]></description>";
  $item.="\r\n<g:id>$id_prodotto</g:id>";
  $item.="\r\n<g:condition>$condizione</g:condition>";
  $item.="\r\n<g:price><![CDATA[$prezzo]]></g:price>";
  $item.="\r\n<g:availability>$availability</g:availability>";
  $item.="\r\n<g:image_link>$link_immagine</g:image_link>";
  $item.="\r\n<g:shipping>";
  $item.="\r\n<g:country>IT</g:country>";
  $item.="\r\n<g:service>Standard</g:service>";
  $item.="\r\n<g:price><![CDATA[$prezzo_spedizione]></g:price>";
  $item.="\r\n</g:shipping>";
  $item.="\r\n<g:gtin>$gtin</g:gtin>";
  $item.="\r\n<g:mpn>$mpn</g:mpn>";
  $item.="\r\n<g:google_product_category>$categoria</g:google_product_category>";
  $item.="\r\n<g:brand>$marca</g:brand>";
  $item.="\r\n<g:identifier_exists>false/true</g:identifier_exists>";
  $item.="\r\n<g:adwords_grouping>$target_adword</g:adwords_grouping>";
  $item.="\r\n<g:adwords_labels>$adwords_labels</g:adwords_labels>";
  $item.="\r\n<g:adwords_redirect><![CDATA[$link_prodotto]]></g:adwords_redirect>";
  $item.="\r\n</item>";
  $lista_item.=$item;
}
$chiusura_xml="\r\n</channel>\r\n</rss>";
$content_xml=$apertura_xml.$intestazione.$lista_item.$chiusura_xml; 
?>

Una volta usciti dal ciclo salviamo il nostro file nella cartella dei feed.

1
2
3
4
// Scrittura dei file.fwrite($file,$content_xml); 
// Chiudo il file scritto.
fclose($file);

3 STEP: VALIDAZIONE DEL FILE XML (validate_xml.php)

Come vedete nel precedente file abbiamo include("funzioni/xml_validate.php"); definiamo questo file.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
/*
* Classe che si occupa della validazione dei * fogli XML.
*/
// Enable user error handling
libxml_use_internal_errors(true);
class XML_Validate{	
	function libxml_display_error($error){
		$return = "<br/>\n";
		switch ($error->level) {
			case LIBXML_ERR_WARNING:
				$return .= "<b>Warning $error->code</b>: ";
				break;
			case LIBXML_ERR_ERROR:
				$return .= "<b>Error $error->code</b>: ";
				break;
			case LIBXML_ERR_FATAL:
				$return .= "<b>Fatal Error $error->code</b>: ";
				break;
		}
		$return .= trim($error->message);
		if ($error->file) {
			$return .=    " in <b>$error->file</b>";
		}
		$return .= " on line <b>$error->line</b>\n";
		return $return;
	}	
	function libxml_display_errors() {
		$errors = libxml_get_errors();
		foreach ($errors as $error) {
			print XML_Validate::libxml_display_error($error);
		}
		libxml_clear_errors();
	}	
	function validate($xml){
		if (!$xml->schemaValidate('xml_google_merchant/schema.xsd')) {
			print '<b>DOMDocument::schemaValidate() Generated Errors!</b>';
			//$validazione = new XML_Validate($nome_file);
			//$validazione->validate();
			XML_Validate::libxml_display_errors();
		}
	}
}
?>

Pertanto dopo aver definito questo file php tornando nel file (create_xml.php) che si occupa della creazione del feed di dati, dopo aver salvato questo file ne effettueremo la validazione mediante le seguenti righe di codice:

1
2
3
4
5
libxml_use_internal_errors(true);		
// Validazione del documento XML.$xml = new DOMDocument(); 
$xml->load($nome_file); 
XML_Validate::validate($xml);

A questo punto se il file XML passa la validazione XSD il vostro file è pronto per essere dato in pasto al debugger XML di Google Merchant Center, che potrà indicarvi ulteriori aspetti da migliorare, ma intanto avrete un file già pronto e validato sul vostro server che non mi sembra cosa da poco!

Feed Dati RSS Google Merchant ultima modidfica: 2013-12-30T15:08:18+01:00 da Gianluca Di Vincenzo
Posted in: PHP

By on 30 Dicembre 2013

Tagged: , ,