Come generare un file xml per Google Shopping

by WebInfinity 15. luglio 2011 10:51

Da ormai alcuni mesi BigG ha messo a disposizione dei suoi utenti la possibilità di ricerca prodotti tramite il canale dedicato di Shopping. La finalità è dare la possibilità ai commercianti di rendere disponibile online i loro prodotti così da rendere più semplice la vita all'utente che vuole acquistare online. Google ha messo a disposizione le norme per creare un file xml adeguato al suo flusso dati, ora analizzeremo come creare il file xml.

Per prima cosa analizziamo il codice utile per la creazione del nostro file xml:

Imports System.Xml
Imports System.Text
Importiamo le classi che ci servono.

Response.ContentType = "text/xml"

Dim writer As New XmlTextWriter(Server.MapPath("~/nomefile.xml"), Encoding.UTF8)

writer.Formatting = Formatting.Indented

Prepariamo così il file e lo formattiamo come xml.

writer.WriteStartDocument()
writer.WriteStartElement("rss")
writer.WriteAttributeString("version", "2.0")
writer.WriteAttributeString("xmlns:g", "http://base.google.com/ns/1.0")
writer.WriteStartElement("channel")

writer.WriteElementString("title", "valore")
writer.WriteElementString("link", "valore")
writer.WriteElementString("description", "valore")

A questo punto abbiamo inizializzato la procedura di creazione del testo vero e proprio con le caratteristiche specificate da Google. Infatti se notate c'è la dicitura "http://base.google.com/ns/1.0"

writer.WriteStartElement("item")

writer.WriteElementString("g:id", "valore")

Ora procediamo attribuendo ad ogni chiave richiesta nelle specifiche da google il valore corrispondente che sarà preso come meglio credete, da un DB o da un File Xml, per la creazione di tutti i parametri.

writer.WriteEndElement()
writer.WriteEndElement()
writer.WriteEndDocument()
writer.Close()

ed in fine chiudiamo il file xml.

Google richiede diversi parametri per un buon posizionamento dei vostri prodotti nel suo canale shopping. Tali parametri li trovate qui

Va detto che Google per elabora i dati, qualora siano conformi con gli standard richiesti, impiega anche 2/3 settiamane. Sicuramento non un tempo breve ma tutto sommato corretto.

 

Tags: , ,

Asp.Net

Form mail in asp.net

by WebInfinity 27. giugno 2011 11:47

Oggi vediamo come si crea un form mail in asp.net per l'invio di un'email direttamente da sito web.

Innnanzi tutto dobbiamo creare i controlli sulla pagina aspx e per fare questo possiamo utilizzare i textbox forniti da visual studio 2010

Scelta TextBox in visual studio 2010

così da avere vari controlli per la compilazione della notra form.

A questo punto andiamo ad inserire un button in fondo al form così da poter associarvi un azione. Di seguito trovate il codice:

 

Protected Sub obInvia_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles obInvia.Click
            Dim mailObj As New MailMessage()
            mailObj.From = New MailAddress(otbMail.Text.ToString())
            mailObj.To.Add(New MailAddress("info@tuodominio.it"))
            mailObj.Subject = otbObject.Text.ToString()
            Dim RealMail As String = getHtml(Server.MapPath("TemplateMail/MailGenerica.htm"))
            mailObj.Body = RealMail
            mailObj.Body = mailObj.Body.Replace("<% uNome %>", otbNome.Text.ToString())
            mailObj.Body = mailObj.Body.Replace("<% uAzienda %>", otbAzienda.Text.ToString())
            mailObj.Body = mailObj.Body.Replace("<% uTelefono %>", otbTel.Text.ToString())
            mailObj.Body = mailObj.Body.Replace("<% uCorpo %>", otbMessage.Text.ToString())
            mailObj.Body = mailObj.Body.Replace("<% uAnno %>", Date.Now.Year.ToString())
            mailObj.IsBodyHtml = True
            Dim oSmtp1 As New SmtpClient("mail.tuodominio.it", 587)
            Dim oCredential1 As New NetworkCredential("info@tuodominio.it", "password")
            oSmtp1.DeliveryMethod = SmtpDeliveryMethod.Network
            oSmtp1.UseDefaultCredentials = False
            oSmtp1.Credentials = oCredential1
            oSmtp1.Send(mailObj)
            Session("Nome1") = otbNome.Text.ToString() & " " & otbNome.Text.ToString()
            Session("Mail1") = otbMail.Text.ToString()
            Response.Redirect("pagina-cortesia-mail.html")
End Sub

 

come si vede la mail viene preformattata su un file html il cui codice lo trovate di seguito:

 

<body>
    <div align="center">
        
        <table align="center" cellpadding="4" cellspacing="4" class="style1">
            <tr>
                <td align="left" bgcolor="#C90606">
                    <img alt="" src="http://www.tuodominio.it/Immagini/LogoMail.jpg" /></td>
            </tr>
            <tr>
                <td align="left" style="font-size: small;">
                    <b><% uNome %></b>
                </td>
            </tr>
            <tr>
                <td align="left" style="font-size: small;">
                    <b><% uAzienda %></b>
                </td>
            </tr>
            <tr>
                <td align="left" style="font-size: small;">
                    <b><% uTelefono %></b>
                </td>
            </tr>
            <tr>
                <td align="left" style="font-size: small;">
                    <% uCorpo %>
                </td>
            </tr>
            <tr>
                <td align="center" style="font-size: xx-small; color: #C90606;">
                    <p>© <% uAnno %> Dati azienda o sito per footer</p>
                </td>
            </tr>
        </table>
        
    </div>
</body>

 

In questo modo possiamo avere una mail formattata in html che è sicuramente più gradevole e meglio strutturata.

Noterete alla fine del codice vb un redirect ad una pagina di cortesia che serve per ringraziare il visitatore che ci ha inviato la mail, io ho usato la session ma ci sono altri modi per inviare i dati, vedete voi qual'è quello che preferite.

A questo punto il nostro form è perfettamente funzionante, ora potete modificarlo come meglio credete aggiungendo dropdownlist, radiobutton o quello che più vi interessa.

Tags: , ,

Asp.Net

Creare una pagina su facebook

by WebInfinity 18. giugno 2011 10:37

Spesso si ha l'esigenza di creare una pagina personale o della proria azienda su facebook, a questo scopo il social network ci da la possibilità mediante una procedura guidata di creare la nostar pages.

A questo indirizzo troviamo il modulo per iniziare la creazione della nostra pagine. Per prima cosa dobbiamo decidere dove inserirla, facebook ci dà diverse opzioni:

  • Impresa locale o luogo
  • Azienda, organizzazione o istituzione
  • Marchio o prodotto
  • Artista, gruppo musicale o personaggio pubblico
  • Intrattenimento
  • Causa o comunità

Una volta scelta la propria collocazione si procede con le solite domande fino alla creazione finale.

Importante è per avere una buona visibilità compilare tutto il profilo così da essere ricercabili, aggiornare la pagina con argomenti pertinenti per aumentare i match e l'interesse degli utenti.

Tags: ,

Social Network

Globalization in ASP.Net

by WebInfinity 16. giugno 2011 10:06

Spesso abbiamo l'esigenza di creare siti web multilingua e in questo caso asp.net ci viene incontro con le risorse globali e locali. Detto questo per avere un sito con la possibilità di scelta lingua il passo è breve.

Di norma io non utilizzo la funzione di culture settata in auto nel web.config, il motivo è che spesso i motori di ricerca potrebbero indicizzare solo il sito in inglese soprattutto se il dominio non è .com in quanto google fa una scelta per il linguaggio legata al dominio, tipo .it sarà per google in italiano.

A questo punto la scelta più corretta a mio avviso e introdurre nel global.asax un controllo che faccia un check su di un particolare cookie così da avere la lingua settata correttamente su richiesta del visitatore.

Il codice da mettere nel global.asax è:

Protected Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
        Dim cookie As HttpCookie = Request.Cookies("CultureInfo")

        If cookie IsNot Nothing AndAlso cookie.Value IsNot Nothing Then
            Thread.CurrentThread.CurrentUICulture = New CultureInfo(cookie.Value)
            Thread.CurrentThread.CurrentCulture = New CultureInfo(cookie.Value)
        Else
            Thread.CurrentThread.CurrentUICulture = New CultureInfo("it-IT")
            Thread.CurrentThread.CurrentCulture = New CultureInfo("it-IT")
        End If
    End Sub

Fatto questo andremo ad impostare sul controllo che vogliamo il codice per impostare il cookie in questo modo:

Dim cookie As New HttpCookie("CultureInfo")
cookie.Value = "en-US"
Response.Cookies.Add(cookie)

Thread.CurrentThread.CurrentCulture = New CultureInfo("en-US")
Thread.CurrentThread.CurrentUICulture = New CultureInfo("en-US")
Server.Transfer(Request.Path)
Ora il nostro sito web è pronto per il multilanguage.

Tags: , ,

Asp.Net

SEO, questo sconosciuto

by WebInfinity 15. giugno 2011 08:58

Molto spesso in rete ci si imbatte su siti web che possono essere esteticamente belli ed accattivanti. Purtroppo questo non è, di norma, accompagnato ad un SEO (search engine optimization) e quindi il sito internet non viene posizionato in maniera efficace sulle ricerche dei motori.

Il motivo principale è una cattiva o assente gestione di parametri quali il tag

<title</title>

oppure l'uso improprio o assente dei tag

<h1></h1>

<h2></h2>

etc...

Infatti titoli di pagina duplicati oppure ancora peggio lasciati in balia del vostro programma di creazione siti preferito non aiutano sicuramente l'indicizzazione.

A questo punto le regole d'oro per tentare di posizionare un sito web sono:

  • titolo di pagina pertinenete al contenuto della pagina stessa
  • tag h1, h2, h3 etc... presenti
  • meta keyword e description pertineneti alla pagina in questione
  • testo che sia scritto in maniera fluida, non cercando di forzare la key density di certe parole chiave, operazione che può essere nella maggior parte dei casi lesiva per un buon posizionamento

Queste sono le regole base per tentare un posizionamento, ovviamente nello specifico ci possono essere altre tecniche più evolute ma per ora rimaniamo a queste semplici considerazioni. Presto posteremo un articolo più approfondito per arrivare ad un posizionamento di successo.

Tags: , , ,

SEO

UrlRewriting e Asp.Net

by WebInfinity 14. giugno 2011 16:16

Tutti i siti web con pagine dinamiche hanno difficoltà ad essere indicizzati sui motori di ricerca, questo perchè google non ama link tipo:

details.aspx?Cat=Libri&Type=Fanatscienza

ma sarebbe meglio

/Libri/Fantascienza

In Asp.Net ci sono diversi metodi per integrare la riscrittura dell'url.

Oggi prendiamo in considerazione urlrewriter.net che è un ottimo compromesso per l'url rewriting.

Il primo passo da fare è andare nel web.config e modificare la sezione httpmodules come mostrato di seguito:

 

<?xml version="1.0"?>

<configuration>

  <configSections>
    <section name="rewriter"  
             requirePermission="false" 
             type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter" />
  </configSections>
  
  <system.web>
      
    <httpModules>
      <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>
    </httpModules>
    
  </system.web>

  <rewriter>
    <rewrite url="~/products/books.aspx" to="~/products.aspx?category=books" />
    <rewrite url="~/products/CDs.aspx" to="~/products.aspx?category=CDs" />
    <rewrite url="~/products/DVDs.aspx" to="~/products.aspx?category=DVDs" />
  </rewriter>  
  
</configuration>

 

A questo punto il rewrite è già abilitato però per evitare che in fase di postback i nostri url "impazziscano" aggiungeremo nella cartella App_Code e App_Browsers due file come nella foto

I file li trovate a questo indirizzo: urlrewriting

Questo post è stato estrapolato dal blog di ScottGu quindi per approfondimenti andate a visitarlo.

Tags: , , ,

Asp.Net

Chi siamo

WebInfinity è una web agency che si occupa di realizzazione siti web in Asp.Net e XHTML, posizionamento sui motori di ricerca e hosting.

Lista mensile