<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>NemoPS &#187; rich snippets</title>
	<atom:link href="http://nemops.com/tag/rich-snippets/feed/" rel="self" type="application/rss+xml" />
	<link>http://nemops.com</link>
	<description>Prestashop Tutorials, Modules and More!</description>
	<lastBuildDate>Wed, 05 Dec 2018 13:25:23 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.35</generator>
	<item>
		<title>FREE Prestashop Google Rich Snippets &amp; Breadcumbs module!!</title>
		<link>http://nemops.com/free-prestashop-google-rich-snippets-breadcumbs-module/</link>
		<comments>http://nemops.com/free-prestashop-google-rich-snippets-breadcumbs-module/#comments</comments>
		<pubDate>Mon, 28 Apr 2014 09:58:12 +0000</pubDate>
		<dc:creator><![CDATA[Nemo]]></dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[free module]]></category>
		<category><![CDATA[prestashop]]></category>
		<category><![CDATA[rich snippets]]></category>

		<guid isPermaLink="false">http://nemops.com/?p=1969</guid>
		<description><![CDATA[<p>It&#8217;s not a joke. I just released the very first, completely FREE, Google Rich Snippets and Breadcrumbs module for Prestashop! Download it right away! If you&#8217;ve been struggling with your Prestashop 1.5 theme to get Google Rich snippets and/or Breadcrumbs work, you can finally breathe some fresh air! Head over to my Prestashop Modules store, [&#8230;]</p>
<p>The post <a rel="nofollow" href="http://nemops.com/free-prestashop-google-rich-snippets-breadcumbs-module/">FREE Prestashop Google Rich Snippets &#038; Breadcumbs module!!</a> appeared first on <a rel="nofollow" href="http://nemops.com">NemoPS</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>It&#8217;s not a joke. I just released the very first, completely FREE, Google Rich Snippets and Breadcrumbs module for Prestashop! Download it right away!<br />
<span id="more-1969"></span></p>
<p>If you&#8217;ve been struggling with your Prestashop 1.5 theme to get Google Rich snippets and/or Breadcrumbs work, you can finally breathe some fresh air! Head over to my Prestashop Modules store, and dowload my Free Google Rich Snippets and Breadcrumbs module!</p>
<h2><a title="Free Prestashop Google Rich Snippets and Breadcrumbs module" href="http://store.nemops.com/free-modules/34-prestashop-google-rich-snippets-breadcrumbs.html#.U14k9_na6r1" target="_blank">DOWNLOAD HERE</a></h2>
<p>It works on both Prestashop 1.5 and 1.6. However, as the default Prestashop 1.6 responsive  template comes with Google Rich Snippets already built in, I added a switch you can use to implement breadcrumbs only, if needed, so that the two features do not interfere one with the other.</p>
<h3>Core Features</h3>
<ul>
<li>Totally FREE</li>
<li>No configuration needed</li>
<li>Compatible with Prestashop 1.5 and 1.6</li>
<li>Possibility to enable breadcrumbs only if your store already has rich snippets</li>
</ul>
<p>The post <a rel="nofollow" href="http://nemops.com/free-prestashop-google-rich-snippets-breadcumbs-module/">FREE Prestashop Google Rich Snippets &#038; Breadcumbs module!!</a> appeared first on <a rel="nofollow" href="http://nemops.com">NemoPS</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nemops.com/free-prestashop-google-rich-snippets-breadcumbs-module/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Add Google Rich Snippets Breadcrumbs to Prestashop</title>
		<link>http://nemops.com/prestashop-rich-snippets-breadcrumbs/</link>
		<comments>http://nemops.com/prestashop-rich-snippets-breadcrumbs/#comments</comments>
		<pubDate>Tue, 25 Feb 2014 10:24:30 +0000</pubDate>
		<dc:creator><![CDATA[Nemo]]></dc:creator>
				<category><![CDATA[Tips n Tricks]]></category>
		<category><![CDATA[breadcrumbs]]></category>
		<category><![CDATA[prestashop]]></category>
		<category><![CDATA[rich snippets]]></category>

		<guid isPermaLink="false">http://nemops.com/?p=1883</guid>
		<description><![CDATA[<p>In this tutorial we will see how to add Google Rich Snippets Breadcrumbs to a Prestashop website, by modifying a small portion of the template and using a lightweight override. Version used: Prestashop 1.5.6.2 Two types of markup Google supports the following types of data for the breadcrumbs rich snippets: Microdata RDFa Microdata is the [&#8230;]</p>
<p>The post <a rel="nofollow" href="http://nemops.com/prestashop-rich-snippets-breadcrumbs/">Add Google Rich Snippets Breadcrumbs to Prestashop</a> appeared first on <a rel="nofollow" href="http://nemops.com">NemoPS</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>In this tutorial we will see how to add Google Rich Snippets Breadcrumbs to a Prestashop website, by modifying a small portion of the template and using a lightweight override.</p>
<p><span id="more-1883"></span></p>
<ul>
<li>Version used: Prestashop 1.5.6.2</li>
</ul>
<h2>Two types of markup</h2>
<p>Google supports the following types of data for the breadcrumbs rich snippets:</p>
<ul>
<li>Microdata</li>
<li>RDFa</li>
</ul>
<p><strong>Microdata</strong> is the one we used in the previous tutorial on <a href="http://nemops.com/prestashop-google-rich-snippets/#.Uwsf7vk7ur0" title="how to add Google Rich Snippets to your Prestashop store">how to add Google Rich Snippets to your Prestashop store</a>, and the basic markup consists in adding itemprops and scopes to single html entities</p>
<p>On the other hand, <strong>RDFa</strong> adds a set of attributes and extensions to html using xml properties. You can read more about it here: <a href="http://en.wikipedia.org/wiki/RDFa" title="RDFa Wiki" rel="nofollow">RDFa Wiki</a>.</p>
<p>I will use the latter in this demonstration, but either will do, so feel free to use the one you prefer in the end. You can visit the <a href="https://support.google.com/customsearch/answer/2595559?hl=en" title="official Google Documentation on Breadcrumbs Rich Snippets" rel="nofollow">official Google Documentation on Breadcrumbs Rich Snippets</a> if you want to get more info about the implementation.</p>
<h2>Adding Google Rich Snippets Breadcrumbs to Prestashop &#8211; The tpl</h2>
<p>First things first, we must hardcode a small portion of code inside <strong>breadcrumb.tpl</strong>. Open up the file located in your theme&#8217;s folder. It will look approximately like this (default theme):</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
&lt;!-- Breadcrumb --&gt;
{if isset($smarty.capture.path)}{assign var='path' value=$smarty.capture.path}{/if}
&lt;div class=&quot;breadcrumb&quot;&gt;
	&lt;a href=&quot;{$base_dir}&quot; title=&quot;{l s='Return to Home'}&quot;&gt;&lt;img src=&quot;{$img_dir}icon/home.gif&quot; height=&quot;26&quot; width=&quot;26&quot; alt=&quot;{l s='Home'}&quot; /&gt;&lt;/a&gt;
	{if isset($path) AND $path}
		&lt;span class=&quot;navigation-pipe&quot; {if isset($category) &amp;&amp; isset($category-&gt;id_category) &amp;&amp; $category-&gt;id_category == 1}style=&quot;display:none;&quot;{/if}&gt;{$navigationPipe|escape:html:'UTF-8'}&lt;/span&gt;
		{if !$path|strpos:'span'}
			&lt;span class=&quot;navigation_page&quot;&gt;{$path}&lt;/span&gt;
		{else}
			{$path}
		{/if}
	{/if}
&lt;/div&gt;
&lt;!-- /Breadcrumb --&gt;
</pre>
<p>Edit as follows:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
&lt;!-- Breadcrumb --&gt;
{if isset($smarty.capture.path)}{assign var='path' value=$smarty.capture.path}{/if}
&lt;div class=&quot;breadcrumb&quot; xmlns:v=&quot;http://rdf.data-vocabulary.org/#&quot;&gt;
	&lt;span typeof=&quot;v:Breadcrumb&quot;&gt;&lt;a href=&quot;{$base_dir}&quot; rel=&quot;v:url&quot; property=&quot;v:title&quot; title=&quot;{l s='Return to Home'}&quot;&gt;&lt;img src=&quot;{$img_dir}icon/home.gif&quot; height=&quot;26&quot; width=&quot;26&quot; alt=&quot;{l s='Home'}&quot; /&gt;&lt;/a&gt;&lt;/span&gt;
	{if isset($path) AND $path}
		&lt;span class=&quot;navigation-pipe&quot; {if isset($category) &amp;&amp; isset($category-&gt;id_category) &amp;&amp; $category-&gt;id_category == 1}style=&quot;display:none;&quot;{/if}&gt;{$navigationPipe|escape:html:'UTF-8'}&lt;/span&gt;
		{if !$path|strpos:'span'}
			&lt;span typeof=&quot;v:Breadcrumb&quot;&gt;
				&lt;span property=&quot;v:title&quot; class=&quot;navigation_page&quot;&gt;{$path}&lt;/span&gt;
			&lt;/span&gt;
		{else}
			{$path}
		{/if}
	{/if}
&lt;/div&gt;
&lt;!-- /Breadcrumb --&gt;
</pre>
<p><strong>Explanation:</strong> First, we told Google that the .breadcrumb div is our breadcrumb container. Then, we added a span around the homepage link, with <strong>typeof=&#8221;v:Breadcrumb&#8221;</strong> so that it know it&#8217;s dealing with part of the breadcrumb. Lastly, we added a <strong>rel</strong> and <strong>property</strong> attribute to the link pointing to the homepage. Then, we added the breadcrumb object and title property to the last item</p>
<p>At this point, we must use an override as Prestashop builds breadcrumbs in the <strong>Tools::getPath()</strong> method!</p>
<div class="separator"></div>
<h2>Adding Google Rich Snippets Breadcrumbs to Prestashop &#8211; The override</h2>
<p>Create a new override in <em>override/classes</em> and call it <em>Tools.php</em>. Add some regular override markup inside:</p>
<pre class="brush: php; title: ; notranslate">

class Tools extends ToolsCore
{

}
</pre>
<p>We need to override the getPath method, so open the original <strong>Tools.php</strong> class file that you find in your <em>classes/</em> directory, copy the whole <strong>getPath()</strong> method, and paste it inside the new override as follows:</p>
<pre class="brush: php; title: ; notranslate">

class Tools extends ToolsCore
{
	public static function getPath($id_category, $path = '', $link_on_the_item = false, $category_type = 'products', Context $context = null)
	{
		if (!$context)
			$context = Context::getContext();

		$id_category = (int)$id_category;
		if ($id_category == 1)
			return '&lt;span class=&quot;navigation_end&quot;&gt;'.$path.'&lt;/span&gt;';

		$pipe = Configuration::get('PS_NAVIGATION_PIPE');
		if (empty($pipe))
			$pipe = '&gt;';

		$full_path = '';
		if ($category_type === 'products')
		{
			$interval = Category::getInterval($id_category);
			$id_root_category = $context-&gt;shop-&gt;getCategory();
			$interval_root = Category::getInterval($id_root_category);
			if ($interval)
			{
				$sql = 'SELECT c.id_category, cl.name, cl.link_rewrite
						FROM '._DB_PREFIX_.'category c
						LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (cl.id_category = c.id_category'.Shop::addSqlRestrictionOnLang('cl').')
						WHERE c.nleft &lt;= '.$interval['nleft'].'
							AND c.nright &gt;= '.$interval['nright'].'
							AND c.nleft &gt;= '.$interval_root['nleft'].'
							AND c.nright &lt;= '.$interval_root['nright'].'
							AND cl.id_lang = '.(int)$context-&gt;language-&gt;id.'
							AND c.active = 1
							AND c.level_depth &gt; '.(int)$interval_root['level_depth'].'
						ORDER BY c.level_depth ASC';
				$categories = Db::getInstance()-&gt;executeS($sql);

				$n = 1;
				$n_categories = count($categories);
				foreach ($categories as $category)
				{
					$full_path .=
					(($n &lt; $n_categories || $link_on_the_item) ? '&lt;a href=&quot;'.Tools::safeOutput($context-&gt;link-&gt;getCategoryLink((int)$category['id_category'], $category['link_rewrite'])).'&quot; title=&quot;'.htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').'&quot;&gt;' : '').
					htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').
					(($n &lt; $n_categories || $link_on_the_item) ? '&lt;/a&gt;' : '').
					(($n++ != $n_categories || !empty($path)) ? '&lt;span class=&quot;navigation-pipe&quot;&gt;'.$pipe.'&lt;/span&gt;' : '');
				}

				return $full_path.$path;
			}
		}
		else if ($category_type === 'CMS')
		{
			$category = new CMSCategory($id_category, $context-&gt;language-&gt;id);
			if (!Validate::isLoadedObject($category))
				die(Tools::displayError());
			$category_link = $context-&gt;link-&gt;getCMSCategoryLink($category);

			if ($path != $category-&gt;name)
				$full_path .= '&lt;a href=&quot;'.Tools::safeOutput($category_link).'&quot;&gt;'.htmlentities($category-&gt;name, ENT_NOQUOTES, 'UTF-8').'&lt;/a&gt;&lt;span class=&quot;navigation-pipe&quot;&gt;'.$pipe.'&lt;/span&gt;'.$path;
			else
				$full_path = ($link_on_the_item ? '&lt;a href=&quot;'.Tools::safeOutput($category_link).'&quot;&gt;' : '').htmlentities($path, ENT_NOQUOTES, 'UTF-8').($link_on_the_item ? '&lt;/a&gt;' : '');

			return Tools::getPath($category-&gt;id_parent, $full_path, $link_on_the_item, $category_type);
		}
	}
}
</pre>
<p>We can now modify the code snippets that generate links. First off, locate:</p>
<pre class="brush: php; title: ; notranslate">
		if (!$context)
			$context = Context::getContext();

</pre>
<p>Right after it, add</p>
<pre class="brush: php; title: ; notranslate">
	$path = '&lt;span typeof=&quot;v:Breadcrumb&quot;&gt;&lt;span property=&quot;v:title&quot;&gt;'.$path.'&lt;/span&gt;&lt;/span&gt;';
</pre>
<p>This way we label the current page name as title in the breadcrumbs. Then:</p>
<pre class="brush: php; title: ; notranslate">
					$full_path .=
					(($n &lt; $n_categories || $link_on_the_item) ? '&lt;a href=&quot;'.Tools::safeOutput($context-&gt;link-&gt;getCategoryLink((int)$category['id_category'], $category['link_rewrite'])).'&quot; title=&quot;'.htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').'&quot;&gt;' : '').
					htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').
					(($n &lt; $n_categories || $link_on_the_item) ? '&lt;/a&gt;' : '').

</pre>
<p>Edit as follows</p>
<pre class="brush: php; title: ; notranslate">
					$full_path .=
					(($n &lt; $n_categories || $link_on_the_item) ? '&lt;span typeof=&quot;v:Breadcrumb&quot;&gt; &lt;a rel=&quot;v:url&quot; property=&quot;v:title&quot; href=&quot;'.Tools::safeOutput($context-&gt;link-&gt;getCategoryLink((int)$category['id_category'], $category['link_rewrite'])).'&quot; title=&quot;'.htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').'&quot;&gt;' : '').
					htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').
					(($n &lt; $n_categories || $link_on_the_item) ? '&lt;/a&gt; &lt;/span&gt;' : '').
</pre>
<p><strong>Explanation:</strong> as we did previously, we added a span around the link, and assigned a rel and property attributes to the inner link. <strong>Remember to close the span at the end!</strong>.</p>
<p>Lastly, let&#8217;s account for cms pages as well, find:</p>
<pre class="brush: php; title: ; notranslate">
			if ($path != $category-&gt;name)
				$full_path .= '&lt;a href=&quot;'.Tools::safeOutput($category_link).'&quot;&gt;'.htmlentities($category-&gt;name, ENT_NOQUOTES, 'UTF-8').'&lt;/a&gt;&lt;span class=&quot;navigation-pipe&quot;&gt;'.$pipe.'&lt;/span&gt;'.$path;
			else
				$full_path = ($link_on_the_item ? '&lt;a href=&quot;'.Tools::safeOutput($category_link).'&quot;&gt;' : '').htmlentities($path, ENT_NOQUOTES, 'UTF-8').($link_on_the_item ? '&lt;/a&gt;' : '');
</pre>
<p>And change it to:</p>
<pre class="brush: php; title: ; notranslate">
			if ($path != $category-&gt;name)
				$full_path .= '&lt;span typeof=&quot;v:Breadcrumb&quot;&gt; &lt;a rel=&quot;v:url&quot; property=&quot;v:title&quot; href=&quot;'.Tools::safeOutput($category_link).'&quot;&gt;'.htmlentities($category-&gt;name, ENT_NOQUOTES, 'UTF-8').'&lt;/a&gt; &lt;/span&gt; &lt;span class=&quot;navigation-pipe&quot;&gt; '.$pipe.' &lt;/span&gt; '.$path;
			else
				$full_path = ($link_on_the_item ? '&lt;span typeof=&quot;v:Breadcrumb&quot;&gt; &lt;a rel=&quot;v:url&quot; property=&quot;v:title&quot; href=&quot;'.Tools::safeOutput($category_link).'&quot;&gt;' : '').htmlentities($path, ENT_NOQUOTES, 'UTF-8').($link_on_the_item ? '&lt;/a&gt; &lt;span&gt;' : '');
</pre>
<p>We are done! Save, clear smarty cache/force compile so that changes take effect, then go to <em>cache/</em> and erase <strong>class_index.php</strong> so that the override can take place!</p>
<p>The final override:</p>
<pre class="brush: php; title: ; notranslate">

class Tools extends ToolsCore
{


	public static function getPath($id_category, $path = '', $link_on_the_item = false, $category_type = 'products', Context $context = null)
	{
		if (!$context)
			$context = Context::getContext();

		$path = '&lt;span typeof=&quot;v:Breadcrumb&quot;&gt;&lt;span property=&quot;v:title&quot;&gt;'.$path.'&lt;/span&gt;&lt;/span&gt;';

		$id_category = (int)$id_category;
		if ($id_category == 1)
			return '&lt;span class=&quot;navigation_end&quot;&gt;'.$path.'&lt;/span&gt;';

		$pipe = Configuration::get('PS_NAVIGATION_PIPE');
		if (empty($pipe))
			$pipe = '&gt;';

		$full_path = '';
		if ($category_type === 'products')
		{
			$interval = Category::getInterval($id_category);
			$id_root_category = $context-&gt;shop-&gt;getCategory();
			$interval_root = Category::getInterval($id_root_category);
			if ($interval)
			{
				$sql = 'SELECT c.id_category, cl.name, cl.link_rewrite
						FROM '._DB_PREFIX_.'category c
						LEFT JOIN '._DB_PREFIX_.'category_lang cl ON (cl.id_category = c.id_category'.Shop::addSqlRestrictionOnLang('cl').')
						WHERE c.nleft &lt;= '.$interval['nleft'].'
							AND c.nright &gt;= '.$interval['nright'].'
							AND c.nleft &gt;= '.$interval_root['nleft'].'
							AND c.nright &lt;= '.$interval_root['nright'].'
							AND cl.id_lang = '.(int)$context-&gt;language-&gt;id.'
							AND c.active = 1
							AND c.level_depth &gt; '.(int)$interval_root['level_depth'].'
						ORDER BY c.level_depth ASC';
				$categories = Db::getInstance()-&gt;executeS($sql);

				$n = 1;
				$n_categories = count($categories);
				foreach ($categories as $category)
				{
					$full_path .=
					(($n &lt; $n_categories || $link_on_the_item) ? '&lt;span typeof=&quot;v:Breadcrumb&quot;&gt; &lt;a rel=&quot;v:url&quot; property=&quot;v:title&quot; href=&quot;'.Tools::safeOutput($context-&gt;link-&gt;getCategoryLink((int)$category['id_category'], $category['link_rewrite'])).'&quot; title=&quot;'.htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').'&quot;&gt;' : '').
					htmlentities($category['name'], ENT_NOQUOTES, 'UTF-8').
					(($n &lt; $n_categories || $link_on_the_item) ? '&lt;/a&gt; &lt;/span&gt;' : '').
					(($n++ != $n_categories || !empty($path)) ? ' &lt;span class=&quot;navigation-pipe&quot;&gt; '.$pipe.' &lt;/span&gt; ' : '');
				}

				return $full_path.$path;
			}
		}
		else if ($category_type === 'CMS')
		{
			$category = new CMSCategory($id_category, $context-&gt;language-&gt;id);
			if (!Validate::isLoadedObject($category))
				die(Tools::displayError());
			$category_link = $context-&gt;link-&gt;getCMSCategoryLink($category);

			if ($path != $category-&gt;name)
				$full_path .= '&lt;span typeof=&quot;v:Breadcrumb&quot;&gt; &lt;a rel=&quot;v:url&quot; property=&quot;v:title&quot; href=&quot;'.Tools::safeOutput($category_link).'&quot;&gt;'.htmlentities($category-&gt;name, ENT_NOQUOTES, 'UTF-8').'&lt;/a&gt; &lt;/span&gt; &lt;span class=&quot;navigation-pipe&quot;&gt; '.$pipe.' &lt;/span&gt; '.$path;
			else
				$full_path = ($link_on_the_item ? '&lt;span typeof=&quot;v:Breadcrumb&quot;&gt; &lt;a rel=&quot;v:url&quot; property=&quot;v:title&quot;  href=&quot;'.Tools::safeOutput($category_link).'&quot;&gt;' : '').htmlentities($path, ENT_NOQUOTES, 'UTF-8').($link_on_the_item ? '&lt;/a&gt; &lt;span&gt;' : '');

			return Tools::getPath($category-&gt;id_parent, $full_path, $link_on_the_item, $category_type);
		}
	}

}
</pre>
<p>Time to test your page now! Here is one from my <a href="http://store.nemops.com" title="Prestashop modules store">Prestashop modules store</a>: <strong><a href="http://www.google.com/webmasters/tools/richsnippets?q=http%3A%2F%2Fstore.nemops.com%2Fseo%2F29-prestashop-seo-booster.html" target="_blank" rel="nofollow" title="Prestashop SEO Booster example">Prestashop SEO Booster example</a></strong></p>
<p>The post <a rel="nofollow" href="http://nemops.com/prestashop-rich-snippets-breadcrumbs/">Add Google Rich Snippets Breadcrumbs to Prestashop</a> appeared first on <a rel="nofollow" href="http://nemops.com">NemoPS</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nemops.com/prestashop-rich-snippets-breadcrumbs/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Add Google Rich Snippets to your Prestashop store</title>
		<link>http://nemops.com/prestashop-google-rich-snippets/</link>
		<comments>http://nemops.com/prestashop-google-rich-snippets/#comments</comments>
		<pubDate>Fri, 21 Dec 2012 13:51:58 +0000</pubDate>
		<dc:creator><![CDATA[Nemo]]></dc:creator>
				<category><![CDATA[Tips n Tricks]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[prestashop]]></category>
		<category><![CDATA[rich snippets]]></category>

		<guid isPermaLink="false">http://nemops.com/?p=838</guid>
		<description><![CDATA[<p>Adding Google Rich Snippets to your Prestashop store can definitely enhance your visibility in the SERP, and substantially increase your traffic over time. Want to stand out from the crowd? Read on. Version Used: Prestashop 1.5.2 Google Rich Snippets: an Introduction Since this article is about how to integrate Google Rich Snippets into Prestashop, I [&#8230;]</p>
<p>The post <a rel="nofollow" href="http://nemops.com/prestashop-google-rich-snippets/">Add Google Rich Snippets to your Prestashop store</a> appeared first on <a rel="nofollow" href="http://nemops.com">NemoPS</a>.</p>
]]></description>
				<content:encoded><![CDATA[<p>Adding Google Rich Snippets to your Prestashop store can definitely enhance your visibility in the SERP, and substantially increase your traffic over time. Want to stand out from the crowd? Read on.</p>
<p><span id="more-838"></span></p>
<ul>
<li>Version Used: <strong>Prestashop 1.5.2</strong></li>
</ul>
<h2>Google Rich Snippets: an Introduction</h2>
<p>Since this article is about how to integrate Google Rich Snippets into Prestashop, I will not dive deep into what they are or how they are structured, but in case you don&#8217;t have even the vaguest idea on what Rich Snippets are, take a look a the following picture:</p>
<p><div id="attachment_849" style="width: 535px" class="wp-caption aligncenter"><a href="http://nemops.com/wp-content/uploads/2012/12/rich-snippets_ex.png"><img src="http://nemops.com/wp-content/uploads/2012/12/rich-snippets_ex.png" alt="Google rich snippets" width="525" height="146" class="size-full wp-image-849" /></a><p class="wp-caption-text">Google rich snippets in SERP</p></div><br />
&nbsp;</p>
<p>See that nifty image in Google&#8217;s search results? See the reviews, and the info about the author? That result sure looks better than others, and stands out from the crowd. That&#8217;s what Rich Snippets are: richer content about the page linked in the search results. It can display all sort of stuff, increasing over time. At the moment, it&#8217;s images, song titles and duration, reviews, author bio and a couple of other things I&#8217;ll leave to you to uncover, here: <a href="http://support.google.com/webmasters/bin/answer.py?hl=en&#038;answer=99170" title="More information about google Rich Snippets">More information about Google Rich Snippets</a></p>
<h2>Adding Google Rich Snippets to Prestashop</h2>
<p>Now that you know what Rich Snippets are, can you see their power? Think of your products, and think of how attractive they are in the search results at the moment: you might have added a nifty Meta title, and an intriguing Meta Description. But that&#8217;s all there is to it, isn&#8217;t it? It&#8217;s like many other results. Now think on what they can be with rich snippets! Let&#8217;s get started.</p>
<p>First things first: Google only accepts rich snippets for pages which have a single product (for some reason I still have to discover, I didn&#8217;t know it before they directly contacted me about my own product list: &#8220;Product markup on listing pages is not supported&#8221;). Thus, we will be adding them for the product.tpl file only. Then, since you&#8217;re probably selling different products than the demo ones, I&#8217;ll try to keep it as generic as possible. Feel free to reference yourself at the official <a href="http://www.schema.org/docs/gs.html" title="Schema.org">Schema</a> for more infomation abouut the type of products you&#8217;re selling.</p>
<p><strong>PLEASE NOTE that the syntax highlighter plugin automatically adds &#8216;=&#8221;&#8221;&#8216; to the itemscope property. Whenever you find it, just add &#8216;itemscope&#8217; without the empty value!</strong></p>
<div class="separator"></div>
<p>&nbsp;</p>
<h3>Author information</h3>
<p>Even though the Product item type actually supports images, they&#8217;re not supported by the search results page in Google. Thus, to overcome this, it&#8217;s possible to show the author&#8217;s logo for each result, provided that you have a Google plus page to link. Open up the <strong>header.tpl</strong> file of your theme, and add the following snippet inside the &lt;head&gt; tag:</p>
<pre class="brush: xml; title: ; notranslate">
	&lt;link rel=&quot;author&quot; href=&quot;https://plus.google.com/118067945609961636215/posts&quot;&gt;
</pre>
<p>Of course, you will have to use your own Google plus profile for the href property.</p>
<div class="separator"></div>
<p>&nbsp;</p>
<h3>The overall container</h3>
<p>Open up <strong>product.tpl</strong>, located in your theme&#8217;s folder. regardless of the template you use, you should be able to locate the following code:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	&lt;div id=&quot;primary_block&quot; class=&quot;clearfix&quot;&gt;
</pre>
<p>It may have other stuff attached, depending on the theme you use. If you can&#8217;t find it, be sure to locate the product data main container within the file. Now, let&#8217;s tell Google that we are dealing with a product. Add the following code to that div.</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	&lt;div id=&quot;primary_block&quot; class=&quot;clearfix&quot; itemscope itemtype=&quot;http://schema.org/Product&quot;&gt;
</pre>
<div class="separator"></div>
<p>&nbsp;</p>
<h3>Adding the product name, image and description</h3>
<p>Now, Google knows that everything we put inside that block will be related to that single product. But still, it needs a name, right? Locate the product name. <strong>You can find it at about line 222 in the default template for prestashop 1.5.2</strong>. In any case, it should be wrapped in an h1 tag, like this:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	&lt;h1&gt;{$product-&gt;name|escape:'htmlall':'UTF-8'}&lt;/h1&gt;	
</pre>
<p>Wrap the name is a span tag the following way:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	&lt;h1&gt;&lt;span itemprop=&quot;name&quot;&gt;{$product-&gt;name|escape:'htmlall':'UTF-8'}&lt;/span&gt;&lt;/h1&gt;
</pre>
<p>Right after the product name, if you&#8217;re using the default template, you will notice the &#8220;short description&#8221; block. I suggest you use that for the snippets description: locate &lt;div id=&#8221;short_description_content&#8221; class=&#8221;rte align_justify&#8221;&gt;{$product->description_short}&lt;/div&gt;&lt;, and add <strong>itemprop=&#8221;description&#8221;</strong></p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	&lt;div id=&quot;short_description_content&quot; class=&quot;rte align_justify&quot; itemprop=&quot;description&quot;&gt;{$product-&gt;description_short}&lt;/div&gt;
</pre>
<p>Ok, our product has a name and description now. Let&#8217;s give our snippets some taste by adding the product image! This might a bit tricky for the non savvy: locate <strong>&lt;div id=&#8221;image-block&#8221;&gt;</strong>, at about line 176 in the default product.tpl. It should look like this:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	&lt;div id=&quot;image-block&quot;&gt;
		{if $have_image}
			&lt;span id=&quot;view_full_size&quot;&gt;
				&lt;img src=&quot;{$link-&gt;getImageLink($product-&gt;link_rewrite, $cover.id_image, 'large_default')}&quot; {if $jqZoomEnabled}class=&quot;jqzoom&quot; alt=&quot;{$link-&gt;getImageLink($product-&gt;link_rewrite, $cover.id_image, 'thickbox_default')}&quot;{else} title=&quot;{$product-&gt;name|escape:'htmlall':'UTF-8'}&quot; alt=&quot;{$product-&gt;name|escape:'htmlall':'UTF-8'}&quot; {/if} id=&quot;bigpic&quot; width=&quot;{$largeSize.width}&quot; height=&quot;{$largeSize.height}&quot; /&gt;
				&lt;span class=&quot;span_link&quot;&gt;{l s='View full size'}&lt;/span&gt;
			&lt;/span&gt;
		{else}
			&lt;span id=&quot;view_full_size&quot;&gt;
				&lt;img src=&quot;{$img_prod_dir}{$lang_iso}-default-large_default.jpg&quot; id=&quot;bigpic&quot; alt=&quot;&quot; title=&quot;{$product-&gt;name|escape:'htmlall':'UTF-8'}&quot; width=&quot;{$largeSize.width}&quot; height=&quot;{$largeSize.height}&quot; /&gt;
				&lt;span class=&quot;span_link&quot;&gt;{l s='View full size'}&lt;/span&gt;
			&lt;/span&gt;
		{/if}
	&lt;/div&gt;
</pre>
<p>See that first img tag? Add the following property to it: itemprop=&#8221;image&#8221;, so that it looks this way</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
		&lt;img itemprop=&quot;image&quot; src=&quot;{$link-&gt;getImageLink($product-&gt;link_rewrite, $cover.id_image, 'large_default')}&quot; {if $jqZoomEnabled}class=&quot;jqzoom&quot; alt=&quot;{$link-&gt;getImageLink($product-&gt;link_rewrite, $cover.id_image, 'thickbox_default')}&quot;{else} title=&quot;{$product-&gt;name|escape:'htmlall':'UTF-8'}&quot; alt=&quot;{$product-&gt;name|escape:'htmlall':'UTF-8'}&quot; {/if} id=&quot;bigpic&quot; width=&quot;{$largeSize.width}&quot; height=&quot;{$largeSize.height}&quot; /&gt;
</pre>
<div class="separator"></div>
<p>&nbsp;</p>
<h3>Brand and identifier</h3>
<p>This is where problems begin. You might have your product&#8217;s Brand set as a feature, or manufacturer, or supplier; or none of these. Google strongly recommends that you add brand and identifier information for your product snippets, therefore we have to find a way out of it.</p>
<p><strong>Case 1: manufacturer or supplier</strong></p>
<p>Since Prestashop won&#8217;t add manufacturer and supplier information in the product page, we have to add it ourselves. Locate a suitable place for it; if you use the default theme, I&#8217;d suggest right after the product name. For manufactuters, add the following code:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	{l s=&quot;by&quot;}&lt;span itemprop=&quot;brand&quot; itemscope itemtype=&quot;http://schema.org/Organization&quot;&gt; &lt;span itemprop=&quot;name&quot;&gt;{$product-&gt;manufacturer_name}&lt;/span&gt;&lt;/span&gt;
</pre>
<p>For suppliers:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	{l s=&quot;by&quot;}&lt;span itemprop=&quot;brand&quot; itemscope itemtype=&quot;http://schema.org/Organization&quot;&gt; &lt;span itemprop=&quot;name&quot;&gt;{$product-&gt;supplier_name}&lt;/span&gt;&lt;/span&gt;
</pre>
<p>You may leave the &#8220;by&#8221; part out if you don&#8217;t want it, of course. You might also need to adjust the h1&#8217;s bottom margin, depending on your theme. Note that Google wants you to add a new itemscope (Organization) if you add the brand. Keep it in mind!</p>
<p><strong>Case 2: feature</strong></p>
<p>If, on the other hand, you decided to use a feature to add your product&#8217;s brand, things are a bit tricky. Depending on where you&#8217;re displaying it, you might need some extra code. if you&#8217;re just printing it out alone in some place, you can simply wrap it in a span and add the itemprop=&#8221;brand&#8221;. If this is not the case, and you&#8217;re displaying it in the &#8220;data sheet&#8221; tab, locate the tab&#8217;s position in the product.tpl file (about line 514 in the default template) and change it this way.</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	{foreach from=$features item=feature}
        {if isset($feature.value)}
        	{if $feature.name == 'Brand'}
		  		&lt;li&gt;&lt;span&gt;{$feature.name|escape:'htmlall':'UTF-8'}&lt;/span&gt; &lt;span itemprop=&quot;brand&quot; itemscope itemtype=&quot;http://schema.org/Organization&quot;&gt;&lt;span itemprop=&quot;name&quot;&gt;{$feature.value|escape:'htmlall':'UTF-8'}&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
		  	{else}
		  		&lt;li&gt;&lt;span&gt;{$feature.name|escape:'htmlall':'UTF-8'}&lt;/span&gt; {$feature.value|escape:'htmlall':'UTF-8'}&lt;/li&gt;
		  	{/if}
        {/if}
	{/foreach}
</pre>
<p>Please notice that <strong>you will need to change that &#8220;Brand&#8221; in &#8220;$feature.name == &#8216;Brand'&#8221; to the name of your brand feature</strong>. Now that the brand is settled, we can take care of the identifier.</p>
<p>Depending on what you sell, you might want to use different product properties for this one. The product &#8220;reference&#8221; should be okay in most cases, so let&#8217;s add it as identifier. Luckily, Prestashop already displays the product reference in the page, at about line 317 of the default template. Change it the following way:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	&lt;span class=&quot;editable&quot; itemprop=&quot;sku&quot;&gt;{$product-&gt;reference|escape:'htmlall':'UTF-8'}&lt;/span&gt;
</pre>
<div class="separator"></div>
<p>&nbsp;</p>
<h3>Price and Currency</h3>
<p>This is perhaps the most important part, because Google may decide not to add rich snippets for your site, if something is wrongly setup here (as I discovered with my own errors!).<br />
Prices fall under the <strong>Offer</strong> itemscope, therefore we need to add a new schema reference. Locate the product&#8217;s main price, at about line 380 of the default template. It&#8217;s a bit messy, but this is what we are looking for:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	&lt;p class=&quot;our_price_display&quot;&gt;
	{if $priceDisplay &gt;= 0 &amp;&amp; $priceDisplay &lt;= 2}
		&lt;span id=&quot;our_price_display&quot;&gt;{convertPrice price=$productPrice}&lt;/span&gt;
		&lt;!--{if $tax_enabled  &amp;&amp; ((isset($display_tax_label) &amp;&amp; $display_tax_label == 1) OR !isset($display_tax_label))}
			{if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
		{/if}--&gt;
	{/if}
	&lt;/p&gt;
</pre>
<p>And here comes the trouble too. Prestashop currently displays the price as number and currency. <strong>This is bad for Google Rich Snippets.</strong> We need them split in order to add them to the snippet, both price and currency. Let&#8217;s start off by wrapping that item with the itemscope and itemprop:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	&lt;p class=&quot;our_price_display&quot; itemprop=&quot;offers&quot; itemscope itemtype=&quot;http://schema.org/Offer&quot;&gt;
	{if $priceDisplay &gt;= 0 &amp;&amp; $priceDisplay &lt;= 2}
		&lt;span id=&quot;our_price_display&quot;&gt;{convertPrice price=$productPrice}&lt;/span&gt;
		&lt;!--{if $tax_enabled  &amp;&amp; ((isset($display_tax_label) &amp;&amp; $display_tax_label == 1) OR !isset($display_tax_label))}
			{if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
		{/if}--&gt;
	{/if}
	&lt;/p&gt;
</pre>
<p>Now, Google knows it&#8217;s dealing with an offer (price). But it doesn&#8217;t exactly know where the price is yet. We have to use a bit of a trick. Change the previous code as follows:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	&lt;p class=&quot;our_price_display&quot; itemprop=&quot;offers&quot; itemscope itemtype=&quot;http://schema.org/Offer&quot;&gt;

	{$rightPrice = {convertPrice price=$productPrice}}

	{if $priceDisplay &gt;= 0 &amp;&amp; $priceDisplay &lt;= 2}
		{if $currencyFormat == 1 || $currencyFormat == 3}
			{$currencySign} &lt;span id=&quot;our_price_display&quot;&gt;{$rightPrice|regex_replace:&quot;/[\\{$currencySign}]/&quot;:&quot;&quot;}&lt;/span&gt;
		{else}
			&lt;span id=&quot;our_price_display&quot;&gt;{$rightPrice|regex_replace:&quot;/[\\{$currencySign}]/&quot;:&quot;&quot;}&lt;/span&gt; {$currencySign}
		{/if}	
		&lt;!--{if $tax_enabled  &amp;&amp; ((isset($display_tax_label) &amp;&amp; $display_tax_label == 1) OR !isset($display_tax_label))}
			{if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
		{/if}--&gt;
	{/if}
	&lt;/p&gt;
</pre>
<p><strong>Explanation:</strong> This probably left you more confused than ever. First off, since we need the whole formatted price with currency we assign it to a new variable. Then, the only way to have the price alone is to actually remove the currency using a regular expression (<a href="http://www.smarty.net/docsv2/en/language.modifier.regex.replace.tpl">Learn more about Regular Expressions in Smarty</a>), and we achieve it with this function:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	{$rightPrice|regex_replace:&quot;/[\\{$currencySign}]/&quot;:&quot;&quot;}
</pre>
<p>We are basically telling Smarty: Hey, if you find the currency character in that price, replace it with and empty string. Then, we have to deal with the way Prestashop formats currency. If you check the <strong>displayPrice</strong> method of the <strong>Tools</strong> class, you will see Prestashop can handle 5 types of currency formats: 2 with the sign before the price, 3 with the sign after it. We have to deal with this of course. Now, we tell Smarty to check the currency format code, if it&#8217;s 1 or 3, it means the format is &#8220;currency sign before the price&#8221;, else, it&#8217;s after.</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
		{if $currencyFormat == 1 || $currencyFormat == 3}
			{$currencySign} &lt;span id=&quot;our_price_display&quot;&gt;{$rightPrice|regex_replace:&quot;/[\\{$currencySign}]/&quot;:&quot;&quot;}&lt;/span&gt;
		{else}
			&lt;span id=&quot;our_price_display&quot;&gt;{$rightPrice|regex_replace:&quot;/[\\{$currencySign}]/&quot;:&quot;&quot;}&lt;/span&gt; {$currencySign}
		{/if}		
</pre>
<p>Lastly, let&#8217;s tell Google where the relevant information is:</p>
<pre class="brush: php; html-script: true; title: ; notranslate">
	&lt;p class=&quot;our_price_display&quot; itemprop=&quot;offers&quot; itemscope itemtype=&quot;http://schema.org/Offer&quot;&gt;
	{if $priceDisplay &gt;= 0 &amp;&amp; $priceDisplay &lt;= 2}
		{if $currencyFormat == 1 || $currencyFormat == 3}
			&lt;meta itemprop=&quot;priceCurrency&quot; content=&quot;{$currency-&gt;iso_code}&quot; /&gt; {$currencySign} &lt;span id=&quot;our_price_display&quot; itemprop=&quot;price&quot;&gt;{$rightPrice|regex_replace:&quot;/[\\{$currencySign}]/&quot;:&quot;&quot;}&lt;/span&gt;
		{else}
			&lt;span id=&quot;our_price_display&quot; itemprop=&quot;price&quot;&gt;{$rightPrice|regex_replace:&quot;/[\\{$currencySign}]/&quot;:&quot;&quot;}&lt;/span&gt; &lt;meta itemprop=&quot;priceCurrency&quot; content=&quot;{$currency-&gt;iso_code}&quot; /&gt; {$currencySign}
		{/if}	
		&lt;!--{if $tax_enabled  &amp;&amp; ((isset($display_tax_label) &amp;&amp; $display_tax_label == 1) OR !isset($display_tax_label))}
			{if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
		{/if}--&gt;
	{/if}
	&lt;/p&gt;
</pre>
<p>This way, we finally told big G which part is the price, and which the currency. And I thought this was okay&#8230;but! Then, I noticed that I was not getting the proper content for the price itemprop. I was still getting the currency! Why is that? It&#8217;s because Prestashop uses a pretty dumb way to replace prices with combination prices: thus, if you have attributes setup for the currenct product, the attribute combination price will be set with Javascript. Not so smart, we have to deal with it! <br />
Open up <strong>product.js</strong>, which you can find in the <em>/js/</em> folder of your theme. Locate the following code, at about line 400 on the default template:</p>
<pre class="brush: jscript; title: ; notranslate">
	$('#our_price_display').text(our_price);
</pre>
<p>This little brat is causing our currency to appear again. Just before this snippet, add the following:</p>
<pre class="brush: jscript; title: ; notranslate">
	var re = new RegExp(&quot;\\&quot;+currencySign, &quot;g&quot;);
	var signRemoved = our_price.replace(re, &quot;&quot;);

</pre>
<p>Again, we are dealing with price formatting, but this time with javascript. First, we create a regExp object to use our <strong>currencySign</strong> variable as a pattern for the regular expression, then we remove it from the actual price. In the end, let&#8217;s replace the our_price variable with our new, priceless one, so that we get this:</p>
<pre class="brush: jscript; title: ; notranslate">
	var re = new RegExp(&quot;\\&quot;+currencySign, &quot;g&quot;);
	var signRemoved = our_price.replace(re, &quot;&quot;);

	$('#our_price_display').text(signRemoved);
</pre>
<p>If you refresh the page now, you should still get one currency, instead of having it two times. Everything should look as before, but if you check the page source, you&#8217;ll notice our tags have been added.</p>
<div id="attachment_875" style="width: 680px" class="wp-caption aligncenter"><a href="http://nemops.com/wp-content/uploads/2012/12/google-microdata-added.jpg"><img src="http://nemops.com/wp-content/uploads/2012/12/google-microdata-added.jpg" alt="Google Microdata Added" width="670" height="170" class="size-full wp-image-875" /></a><p class="wp-caption-text">Google Microdata Added</p></div>
<div class="separator"></div>
<h2>Conclusion</h2>
<p>There is still much left with Google Rich Snippets, and the Product item type. I decided to leave things like &#8220;condition&#8221; and &#8220;lowPrice&#8221; behind, because they would have required major (and probably confusing) changes in the template. Think of this tutorial as a starting point to add more and more snippet stuff to your shop. And don&#8217;t forget <strong>the Product item type also supports Reviews</strong>. If you&#8217;re using the comments module, or any other module, be sure you add that microformat to your site, too!</p>
<p>In any case, here is the tutorial result on a demo shop, tested with the <a href="http://www.google.com/webmasters/tools/richsnippets" title="Rich Snippet Tool">Rich Snippet Tool</a>.</p>
<div id="attachment_858" style="width: 690px" class="wp-caption aligncenter"><a href="http://nemops.com/wp-content/uploads/2012/12/Google-Structured-Data-Testing-Tool.png"><img src="http://nemops.com/wp-content/uploads/2012/12/Google-Structured-Data-Testing-Tool-680x979.png" alt="Google Structured Data Testing Tool" width="680" height="979" class="size-large wp-image-858" /></a><p class="wp-caption-text">Google Structured Data Testing Tool</p></div>
<p>Note that i didn&#8217;t add the author information in the link, simply because I didn&#8217;t link my google profile to the page. Here is how it looks with the authorship information correctly added:</p>
<div id="attachment_887" style="width: 690px" class="wp-caption aligncenter"><a href="http://nemops.com/wp-content/uploads/2012/12/Nemos-Post-Scriptum-Stores-Rich-Snippet.png"><img src="http://nemops.com/wp-content/uploads/2012/12/Nemos-Post-Scriptum-Stores-Rich-Snippet.png" alt="Nemo&#039;s Post Scriptum Store&#039;s Rich Snippet" width="680" height="517" class="size-full wp-image-887" /></a><p class="wp-caption-text">Nemo&#8217;s Post Scriptum Store&#8217;s Rich Snippet</p></div>
<div class="separator"></div>
<p>&nbsp;</p>
<h3>Additional Resources</h3>
<ul>
<li><a href="http://support.google.com/webmasters/bin/answer.py?hl=en&#038;answer=99170" title="Google Rich Snippets Page">Google Rich Snippets Page</a></li>
<li><a href="http://www.google.com/webmasters/tools/richsnippets" title="Google Rich Snippets Tool">Google Rich Snippets Tool</a></li>
<li><a href="http://schema.org/" title="Schema.org">Schema.org</a></li>
</ul>
<p>The post <a rel="nofollow" href="http://nemops.com/prestashop-google-rich-snippets/">Add Google Rich Snippets to your Prestashop store</a> appeared first on <a rel="nofollow" href="http://nemops.com">NemoPS</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://nemops.com/prestashop-google-rich-snippets/feed/</wfw:commentRss>
		<slash:comments>92</slash:comments>
		</item>
	</channel>
</rss>
