<?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>gj |</title>
	<atom:link href="https://blog.gaiterjones.com/category/marketing/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.gaiterjones.com/category/marketing/</link>
	<description>gaiterjones</description>
	<lastBuildDate>Wed, 31 May 2017 09:01:03 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.4.3</generator>
	<item>
		<title>WordPress MultiLanguage Support the Simple Way</title>
		<link>https://blog.gaiterjones.com/wordpress-multi-language-support/</link>
					<comments>https://blog.gaiterjones.com/wordpress-multi-language-support/#respond</comments>
		
		<dc:creator><![CDATA[PAJ]]></dc:creator>
		<pubDate>Fri, 14 Sep 2012 12:43:24 +0000</pubDate>
				<category><![CDATA[5 Minute Fix]]></category>
		<category><![CDATA[Language]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Wordpress Multi Language]]></category>
		<guid isPermaLink="false">http://blog.gaiterjones.com/?p=796</guid>

					<description><![CDATA[WordPress is a great multilanguage CMS, for a while I thought of it purely as a blogging tool but now I use it all the time when I need to...<a class="more-link" href="https://blog.gaiterjones.com/wordpress-multi-language-support/" title="Continue reading">Continue reading</a>]]></description>
										<content:encoded><![CDATA[<p><img decoding="async" class="hang-2-column     alignnone" title="Wordpress Multilanguage Support" src="http://www.ideecon.com/wp-content/uploads/2011/12/wordpresslanguages.png" alt="" width="180" height="180" />WordPress is a great multilanguage CMS, for a while I thought of it purely as a blogging tool but now I use it all the time when I need to build a quick and effective marketing site. If you find a theme that you like and is adaptable you can put together a professional, great looking site that is easy for you or your clients to maintain in very little time.</p>
<p>Getting WordPress to work well with multi language content isn&#8217;t so straight forward, there are a lot of plugins available that offer multi language solutions but these seemed to be over complex for what I wanted.</p>
<p>My WordPress marketing sites are relatively simple with just a few pages used as marketing landing pages and stepping stones to e-commerce sites. I already created a simple method in PHP of detecting browser language and matching language to content in my pages however the WordPress frontend language remained in the default language of the installation. I did not want to modify core template files within WordPress as this makes upgrading difficult so after wasting time with Plugins I developed a very simple solution that sets the WordPress interface language for each visitor based on their browser language.</p>
<p>The WordPress WP-CONFIG.php file holds the main configuration settings for your WordPress installation, a global PHP constant WPLANG is defined here that sets the admin and frontend interface language using standard <a href="http://www.gnu.org/software/gettext/manual/html_chapter/gettext_16.html#Country-Codes" target="_blank">country</a> and <a href="http://www.gnu.org/software/gettext/manual/html_chapter/gettext_16.html#Language-Codes" target="_blank">language </a>codes, the default if WPLANG is not specified is American English en-US.</p>
<p>WordPress language packs come in .mo files that are located in the WordPress wp-content/languages folder, they are named after the language code, i.e. en_US.mo, de_DE.mo etc.</p>
<p>By detecting the browser language of the visitor and then checking if a corresponding .mo file exists in the languages folder we can automatically switch the WordPress interface language to match the visitors browser language &#8211; nice!</p>
<p>Decide which languages you want to support and download the corresponding .mo files, you can find all the language files available in the WordPress language file repository here <a href="http://svn.automattic.com/wordpress-i18n/">http://svn.automattic.com/wordpress-i18n/</a> e.g. here are the German language files <a href="http://svn.automattic.com/wordpress-i18n/de_DE/branches/2.8/messages/" target="_blank">http://svn.automattic.com/wordpress-i18n/de_DE/branches/2.8/messages/</a></p>
<p>If your WordPress site does not have a wp-content/languages folder, create a new one and copy your language files into it. Note you should copy your default language file too.</p>
<p>Now edit the WP-CONFIG.php file in the root folder of your WordPress installation and find the WP-LANG constant definition and comment it out:</p>
<p>#define (&#8216;WPLANG&#8217;, &#8221;);</p>
<p>and below it paste in the following code</p>
<pre class="brush:php">/**
 * Set language and load language files
 */
function detectlanguage() {
    $langcode = explode(";", $_SERVER['HTTP_ACCEPT_LANGUAGE']);
    $langcode = explode(",", $langcode['0']);
    return $langcode['0'];
    }

function fileExists($fileName, $caseSensitive = true) {

    if(file_exists($fileName)) {
        return $fileName;
    }
    if($caseSensitive) return false;

    // Handle case insensitive requests            
    $directoryName = dirname($fileName);
    $fileArray = glob($directoryName . '/*', GLOB_NOSORT);
    $fileNameLowerCase = strtolower($fileName);
    foreach($fileArray as $file) {
        if(strtolower($file) == $fileNameLowerCase) {
            return $file;
        }
    }
    return false;
}	

$languageDefault='en_US';
$language = detectlanguage();

if (isset($_GET['set_lang'])) { $language = $_GET['set_lang']; }

$languageFile= 'wp-content/languages/'. str_replace('-','_',$language). '.mo';
$wpLanguageFile=fileExists($languageFile,false);

// check if WP language file exists for browser language
if ($wpLanguageFile) {
	$wpLanguageFile = basename($wpLanguageFile, '.mo');
	// language supported
	define ('WPLANG', $wpLanguageFile);
    //echo "Language - $language detected. Language file exists and is supported."; 
} else {
	// language not supported default to EN
    //echo "Language - $language detected. Language file does not exist - defaulting to $languageDefault."; 
	define ('WPLANG', $languageDefault);
}</pre>
<p>Save the file and test. You can force the language selection by specifying it in the URL, i.e. http://yourwordpresssite.com/?set_lang=de_DE which will force the interface language to German if you have the German language files installed. Uncomment the echo&#8217;s and you will see the language selection confirmed.</p>
<p>If all is working well the WordPress interface language will now switch to the browser language of your visitors.</p>
<p>Note that this will only change the language of the built in WordPress interface in the frontend or backend. Your content language will not change, you need to create a <a href="http://www.catswhocode.com/blog/how-to-make-a-translatable-wordpress-theme" target="_blank">translation system</a> for your content using portable object files, or alternatively use the Google translation tool.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gaiterjones.com/wordpress-multi-language-support/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Magento Get Customer Feedback, Reviews &#038; Ratings FREE Extension</title>
		<link>https://blog.gaiterjones.com/magento-get-customer-feedback-reviews-ratings-free-extension/</link>
					<comments>https://blog.gaiterjones.com/magento-get-customer-feedback-reviews-ratings-free-extension/#comments</comments>
		
		<dc:creator><![CDATA[PAJ]]></dc:creator>
		<pubDate>Fri, 25 Nov 2011 10:16:00 +0000</pubDate>
				<category><![CDATA[Free Magento Extensions]]></category>
		<category><![CDATA[Get Customer Feedback]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Ratings]]></category>
		<category><![CDATA[Reviews]]></category>
		<guid isPermaLink="false">http://blog.gaiterjones.com/?p=611</guid>

					<description><![CDATA[Products with good customer ratings and reviews improve Google search results and give customers more buying confidence but how do we encourage customers to complete product reviews? This Magento module...<a class="more-link" href="https://blog.gaiterjones.com/magento-get-customer-feedback-reviews-ratings-free-extension/" title="Continue reading">Continue reading</a>]]></description>
										<content:encoded><![CDATA[<p>Products with good customer ratings and reviews<a title="Rich Snippet Data for Magento Product Pages Improves Google Search Results" href="https://blog.gaiterjones.com/rich-snippet-data-for-magento-product-pages-improves-google-search-results/"> improve Google search results</a> and give customers more buying confidence but how do we encourage customers to complete product reviews?</p>
<p>This Magento module helps to get more Magento customer product feedback by giving customers the opportunity and incentives to complete reviews and ratings for products they have recently purchased.</p>
<h1><strong>HOW IT WORKS</strong></h1>
<p>The code in the module is called at checkout caching customer information and products ordered. The module then uses the Magento scheduling system to execute code that regularly checks the cached files to create a customised customer feedback email containing direct links to the review pages of the products the customer has ordered.</p>
<p>When configurable parameters, such as order status, or elapsed time since the order was placed are met the email is sent to the customer and the order status updated.</p>
<p>The customer feedback email allows you to directly follow up every customer order and offer incentives to the customer to complete product reviews and ratings. An example email is shown below.</p>
<figure id="attachment_1638" aria-describedby="caption-attachment-1638" style="width: 550px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="wp-image-1638 size-full" title="Example Magento Get Customer Feedback Email" alt="" src="https://blog.gaiterjones.com/wp-content/uploads/2011/11/get-customer-feedback-2017.jpg" width="550" height="593" /><figcaption id="caption-attachment-1638" class="wp-caption-text">Example Magento Get Customer Feedback Email</figcaption></figure>
<p>&nbsp;</p>
<figure id="attachment_626" aria-describedby="caption-attachment-626" style="width: 367px" class="wp-caption alignnone"><a href="https://blog.gaiterjones.com/wp-content/uploads/2011/11/getcustomerfeedbackorderstatusl.jpg"><img decoding="async" class="size-full wp-image-626" title="Customer Feedback Order Status" alt="Customer Feedback Order Status" src="https://blog.gaiterjones.com/wp-content/uploads/2011/11/getcustomerfeedbackorderstatusl.jpg" width="367" height="103" /></a><figcaption id="caption-attachment-626" class="wp-caption-text">Example of updated Magento order status showing customer feedback email has been sent.</figcaption></figure>
<p>&nbsp;</p>
<p>Tested with Magento CE 1.3-1.9.x</p>
<p>GIT &#8211; <a href="https://github.com/gaiterjones/magento-GetCustomerFeedback" target="_blank" rel="noopener noreferrer">https://github.com/gaiterjones/magento-GetCustomerFeedback</a> note &#8211; the latest code will always be available at the git hub for download.</p>
<p>Place an order in my <a title="gaiterjones dev store" href="http://dev.gaiterjones.com/magento" target="_blank" rel="noopener noreferrer">development </a>store to test the customer feedback email yourself.</p>
<p><strong>Updates</strong></p>
<p>This module was originally coded in 2013. I updated it in 2017 with some bug fixes, better translation options and a new responsive email template.<strong style="line-height: 15px; text-transform: uppercase;">INSTALLATION</strong></p>
<p>Prerequisites : PHP5.4+, Working Magento scheduling system, Magento CE 1.x</p>
<p>To install this module:</p>
<p><strong>Modman</strong></p>
<p>modman clone https://github.com/gaiterjones/magento-GetCustomerFeedback.git<strong></strong></p>
<p>Manual</p>
<p>1. Unzip the module and copy the contents of the modules app folder to the app folder of your Magento store installation.</p>
<p><strong>2</strong>. Ensure that the module /cache folder has write permission set to allow the WWW user group write access. The module caches customer and product information in this folder.</p>
<p><strong>3</strong>. Refresh the Magento Store cache</p>
<p><strong>4.</strong> Logout and login back into the admin backend, goto System &#8211; Configuration and locate the configuration settings under <em>My Extensions &#8211; Get Customer Feedback.</em></p>
<p><a href="https://blog.gaiterjones.com/wp-content/uploads/2011/11/getcustomerfeedbackconfig1.jpg"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-617" title="Get Customer Feedback" alt="" src="https://blog.gaiterjones.com/wp-content/uploads/2011/11/getcustomerfeedbackconfig1-440x431.jpg" width="440" height="431" srcset="https://blog.gaiterjones.com/wp-content/uploads/2011/11/getcustomerfeedbackconfig1-440x431.jpg 440w, https://blog.gaiterjones.com/wp-content/uploads/2011/11/getcustomerfeedbackconfig1-620x608.jpg 620w, https://blog.gaiterjones.com/wp-content/uploads/2011/11/getcustomerfeedbackconfig1.jpg 634w" sizes="(max-width: 440px) 100vw, 440px" /></a></p>
<h1><strong>CONFIGURATION</strong></h1>
<h3>Email body content:</h3>
<p>Enter the text that will form the main body of the customer email here, this text appears before the product information. You may use HTML.</p>
<p>For example for the offer shown in the example above I used the following HTML, remember you should replace special characters with <a href="http://www.w3schools.com/html/html_entities.asp">html entities</a>.:</p>
<pre class="brush:xml">&lt;p align="center"&gt;&lt;img src="/images/articles/comp_win50.jpg" width="650" height="130" align="middle" /&gt;&lt;/p&gt;
&lt;p align="left"&gt;Thankyou for your recent order, we hope you are very happy with your products. We value your opinion so simply tell us what you think about your purchases and you could win £50 to spend with us.&lt;/p&gt;</pre>
<h3>Email footer content:</h3>
<p>Enter the text that will form the footer of the customer email here, this text appears below the product information. You may use HTML.</p>
<h3>Email subject:</h3>
<p>Enter a custom subject for the feedback email, if left blank subject is <em>&#8220;STORENAME : Your Order # ORDERNUMBER&#8221;.</em></p>
<h3>Leave feedback icon URL:</h3>
<p>To specify your own Get Feedback icon image in the customer feedback email enter the image URL here. If no image url is specified the text &#8220;Leave Feedback&#8221; will be used.</p>
<h3>Send feedback request email :</h3>
<p>Specify when the email should be sent, immediately after the order completion or after a specific period of time to allow the customer time to receive the products and form an opinion. When order status check is set to YES, email will be sent X days after order status is set to complete.</p>
<h3>Check order status: YES/NO</h3>
<p>To only send customer feedback emails when the order status is &#8220;Complete&#8221; set this field to YES.</p>
<h3>Test mode enabled: YES/NO</h3>
<p>In test mode customer feedback emails are sent to the general email address of your store and not to the customer. When you are happy that the emails are formatted correctly set this option to NO and emails will be sent to the customer. Test mode is enabled by default.</p>
<p>To test your email and cron settings rename the test email file in the cache folder to GetCustomerFeedback.emailtest</p>
<p>The module will now send a test email to the general store address every time the cron scheduler runs. Delete or rename this file to stop the test emails.</p>
<h3>Use PHP email</h3>
<p>Send customer feedback emails using the Magento email system or directly via PHP. To BCC feedback emails use PHP email mode.</p>
<p>To test that you are receiving emails from the module rename the file GetCustomerFeedback.emailtestOFF in the cache folder removing the word OFF from the end. The module will send you an email every time the Magento cron.php runs. Note the default cron task is set to once per hour, you can manually change this in the module config files to a shorter period for testing if required. If you receive the test email you know the module cron task is running and email is functioning. Rename the control file again to turn off the test emails.</p>
<h3>URL Tracking tags:</h3>
<p>Specify Google UTM tags here to track traffic generated by customer feedback emails.</p>
<h3>Send alert emails: YES/NO</h3>
<p>The module will send alert emails to the general email address of the store when errors are detected, enable this option during testing and disable afterwards when the module is functioning correctly.</p>
<p><strong>Edit Locale Files for Translations<br />
</strong>In the root folder of the extension is an example locale file named translation_store_id_1.txt this will be used to translate phrases used by the extension that cannot be set in admin. If you have a multi language store a translation file should exist here for each store, i.e. if your store ID 1 is French and store ID2 is German then your translation_store_id_1.txt file should contain English to French translations and you should create a second file called translation_store_id_2.txt containing English to German translations.</p>
<p>&nbsp;</p>
<p><strong style="line-height: 15px; text-transform: uppercase;"><strong><strong><strong>ENABLE MAGENTO SCHEDULING</strong></strong></strong></strong></p>
<p>Magento uses a single file named <strong>cron.php</strong> to execute all its scheduled tasks –  cron.php should be executed regularly to allow configured background tasks in Magento to run and is also used by this module. For example to run cron.php every 5 minutes add the following or similar to your crontab (crontab -e):</p>
<p><em>*/5 * * * * /usr/bin/php -f  /PATH-TO-MAGENTO/cron.php</em></p>
<p>Alternatively for testing you can execute cron.php from your browser by browsing to</p>
<p><em>http://www.yourstore.com/cron.php</em></p>
<p>When you manually execute the cron job you may want to change the configured cron schedule from every hour to every minute by editing the config.xml module file otherwise your manual cron job will only run once per hour.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gaiterjones.com/magento-get-customer-feedback-reviews-ratings-free-extension/feed/</wfw:commentRss>
			<slash:comments>113</slash:comments>
		
		
			</item>
		<item>
		<title>Rich Snippet Data for Magento Product Pages Improves Google Search Results</title>
		<link>https://blog.gaiterjones.com/rich-snippet-data-for-magento-product-pages-improves-google-search-results/</link>
					<comments>https://blog.gaiterjones.com/rich-snippet-data-for-magento-product-pages-improves-google-search-results/#comments</comments>
		
		<dc:creator><![CDATA[PAJ]]></dc:creator>
		<pubDate>Fri, 18 Nov 2011 13:34:44 +0000</pubDate>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[META Tags]]></category>
		<category><![CDATA[Rich Snippet Data]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[microformat tags]]></category>
		<category><![CDATA[rich snippet data]]></category>
		<guid isPermaLink="false">http://blog.gaiterjones.com/?p=595</guid>

					<description><![CDATA[&#160; &#160; &#8220;Rich Snippets&#8221; are a standardised markup format used by Google to improve search results by including more specific or &#8220;rich&#8221; information relating to a web page, i.e. for...<a class="more-link" href="https://blog.gaiterjones.com/rich-snippet-data-for-magento-product-pages-improves-google-search-results/" title="Continue reading">Continue reading</a>]]></description>
										<content:encoded><![CDATA[<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&#8220;<a href="http://www.google.com/support/webmasters/bin/topic.py?topic=21997" target="_blank">Rich Snippets</a>&#8221; are a standardised markup format used by Google to improve search results by including more specific or &#8220;rich&#8221; information relating to a web page, i.e. for product pages, price and ratings info. Google says &#8220;(we try) to present users with the most useful and informative search results. The more information a search result snippet can provide, the easier it is for users to decide whether that page is relevant to their search.&#8221;</p>
<p>By editing Magento product page templates we can include the Rich Snippet markup data readable by Google and improve the organic Google search results for our product pages.</p>
<p>There are various standards available to markup Rich Snippet Data on web pages &#8211; microdata, microformats, RDFa etc. We are going to use the microformat markup, although it does not provide as many options as other formats it does fit more easily into Magentos existing default product page design.</p>
<h2><span class="Apple-style-span" style="font-weight: normal; line-height: 20px; text-transform: none;">This Rich Snippet data will not affect the look of our product page, microformats use the </span><code style="line-height: 20px; text-transform: none;">class</code><span class="Apple-style-span" style="font-weight: normal; line-height: 20px; text-transform: none;"> attribute in HTML tags (often </span><code style="line-height: 20px; text-transform: none;">&lt;span&gt;</code><span class="Apple-style-span" style="font-weight: normal; line-height: 20px; text-transform: none;"> or </span><code style="line-height: 20px; text-transform: none;">&lt;div&gt;</code><span class="Apple-style-span" style="font-weight: normal; line-height: 20px; text-transform: none;">) to assign brief and descriptive names to entities and their properties.</span></h2>
<p>We are going to use simple microformat conventions or entities to markup our product page html so that Google spiders can read Rich data from our product information such as the price, availability or review rating of a product from all our pages.</p>
<p>We will implement two main microformat entities, <strong>hproduct</strong> and <strong>hreview-aggregate</strong> coded within the correct sections of our product page html so that the microformat markup looks something like:</p>
<figure id="attachment_596" aria-describedby="caption-attachment-596" style="width: 244px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="nohang        " title="Rich Snippet product microformat tree" src="https://blog.gaiterjones.com/wp-content/uploads/2011/11/magento-rich-snippet-microformat.jpg" alt="" width="244" height="207" /><figcaption id="caption-attachment-596" class="wp-caption-text">Rich Snippet product microformat tree</figcaption></figure>
<p>&nbsp;</p>
<h1>How to Markup the Default Magento Theme with Rich Snippet Information</h1>
<p>&nbsp;</p>
<p>Lets start with the hproduct microformat tag. This needs to encapsulate the main product information, including product description, image, price etc. If we look at the structure of the default magento product page we can see that the html document division with the product-essential class contains all the product information that we need, so we will add the main hproduct microformat tag here by adding hproduct to the DIV class.</p>
<figure id="attachment_597" aria-describedby="caption-attachment-597" style="width: 440px" class="wp-caption alignnone"><a href="https://blog.gaiterjones.com/wp-content/uploads/2011/11/magento-product-wrapper-div.jpg"><img loading="lazy" decoding="async" class="nohang        " title="HTML document division containing Magento product information" src="https://blog.gaiterjones.com/wp-content/uploads/2011/11/magento-product-wrapper-div-440x263.jpg" alt="" width="440" height="263" /></a><figcaption id="caption-attachment-597" class="wp-caption-text">HTML document division containing Magento product information</figcaption></figure>
<p>&nbsp;</p>
<h2>hproduct</h2>
<p>Open up your Magento theme template folder, browse to  /template/catalog/product and open up view.phtml for editing. Here you will find the html document division with the class <strong>product-essential</strong>, we simply append the new <strong>hproduct</strong> microformat class to it to add the hproduct rich snippet tag.</p>
<pre class="brush:xml">&lt;div class="product-essential hproduct"&gt;</pre>
<h2>item fn</h2>
<p>Within our microformat markup tree we now want to markup the product item, price and image sections of our Magento product html.</p>
<p>Still looking at view.phtml within the product-essential div we will find the product-name division. Here we will add the<strong> item fn</strong> microformat tags to markup the product name.</p>
<pre class="brush:xml">&lt;div class="product-name item fn"&gt;</pre>
<h2>description</h2>
<p>Within view.phtml we can also add the markup for the microformat description tag. An ideal place for this is the quick overview html division where we can simply append the description tag to the existing DIV class.</p>
<pre class="brush:xml">&lt;div class="std description"&gt;&lt;?php echo $_helper-&gt;productAttribute($_product, nl2br($_product-&gt;getShortDescription()), 'short_description') ?&gt;&lt;/div&gt;</pre>
<h2>price</h2>
<p>To markup the product price open up price.html in the same folder. This template file is responsible for returning product pricing in all areas of the Magento frontend. You will notice that all the pricing document divisions already have the class name <strong>price. </strong>We don&#8217;t need to change anything here. However if you want to include the price-range microformat tag you can include it here by adding it to the divisions with the class name <strong>price-box</strong>.</p>
<h2>image</h2>
<p>To tag the product image navigate to the template/catalog/product/view folder and open up media.phtml for editing. Here you will see the product image html. The product image URL is specified within an IMG tag that has the ID &#8220;image&#8221;. Simply add a new class to the IMG tag with the name <strong>photo fn</strong>.</p>
<pre class="brush:xml">$_img = '&lt;img id="image" class="photo fn" src="'.$this-&gt;helper...</pre>
<h2>hreview-aggregate</h2>
<p>The most effective data we can microformat tag is the product review and rating data which will be displayed in Google search results showing our Magento product rating information. This data is encapsulated within the hreview-aggregate tag.</p>
<p>Navigate to the template/review/helper folder and you will see two files responsible for rendering review and rating html. summary.phtml and summary_short.phtml. Open up summary.phtml for editing.</p>
<p>First we need to add the hreview-aggregate tag to the html division that contains the rating data for the product. Here you will see the DIV with the class name ratings. Append the hreview-aggregate tag to this DIV class name.</p>
<pre class="brush:xml">&lt;div class="ratings hreview-aggregate"&gt;</pre>
<p>Next you will see that Magento already uses a division with a class name of rating. This will confuse Google as the microformat name we want to use is also &#8220;rating&#8221;. However there is a method to work around this using a SPAN class. Edit the existing rating division to include the new SPAN element as show below.</p>
<pre class="brush:xml">            &lt;div class="rating-box"&gt;
                &lt;div class="rating" style="width:&lt;?php echo $this-&gt;getRatingSummary() ?&gt;%"&gt;
					&lt;span class="value-title" title="&lt;?php echo number_format($this-&gt;getRatingSummary() / 20,1); ?&gt;"&gt;&lt;/span&gt;
				&lt;/div&gt;
            &lt;/div&gt;</pre>
<h2>count</h2>
<p>Now we markup the number of reviews the product has received with the <strong>count</strong> tag. Still within summary.phtml we add a SPAN element with the class name count to the existing code.</p>
<pre class="brush:xml">        &lt;p class="rating-links"&gt;
			&lt;a href="&lt;?php echo $this-&gt;getReviewsUrl() ?&gt;"&gt;&lt;span class="count"&gt;&lt;?php echo $this-&gt;getReviewsCount()?&gt;&lt;/span&gt;&lt;?php echo $this-&gt;__(' Review(s)') ?&gt;&lt;/a&gt;
            &lt;span class="separator"&gt;|&lt;/span&gt;
            &lt;a href="&lt;?php echo $this-&gt;getReviewsUrl() ?&gt;#review-form"&gt;&lt;?php echo $this-&gt;__('Add Your Review') ?&gt;&lt;/a&gt;
        &lt;/p&gt;</pre>
<h1>author</h1>
<p>Finally lets consider the author tag. To identify the author of a blog or article, Google checks for a connection between the content page (such as an article), an author page, and a <a href="http://www.google.com/profiles">Google Profile</a>. I am unsure if any real benefit will come from applying the author tag to your product content but for completeness one way to do it is to add the author tag to a link in the footer of your Magento pages. i.e.</p>
<pre class="brush:xml">&lt;p class="author"&gt;&lt;a rel="author" href="http://my.google.profile "&gt;g a i t e r j o n e s&lt;/a&gt; / &lt;?php echo $this-&gt;__('(ver. %s)', Mage::getVersion()) ?&gt;&lt;/p&gt;</pre>
<h1>Testing</h1>
<p>After saving all our edited files, we can check whether our product pages are returning rich snippet data using the <a href="http://www.google.com/webmasters/tools/richsnippets" target="_blank">Google Rich Snippet Testing Tool</a>. Goto the testing page and enter the URL of a product page from your Magento site.</p>
<figure id="attachment_598" aria-describedby="caption-attachment-598" style="width: 440px" class="wp-caption alignnone"><a href="https://blog.gaiterjones.com/wp-content/uploads/2011/11/rich-snippet-testing-tool-preview.jpg"><img loading="lazy" decoding="async" class="nohang        " title="Google Rich Snippet Testing Tool Magento Product Preview" src="https://blog.gaiterjones.com/wp-content/uploads/2011/11/rich-snippet-testing-tool-preview-440x103.jpg" alt="" width="440" height="103" /></a><figcaption id="caption-attachment-598" class="wp-caption-text">Google Rich Snippet Testing Tool Magento Product Preview</figcaption></figure>
<p>&nbsp;</p>
<p>The rich snippets testing tool will show you all the rich snippet data for your product page including information that comes from non microformat tags such as Meta tags or Facebook Open Graph tags. Make sure you are making best use of these tags too to ensure that Google is gleaning as much useful SEO information from your pages as possible.</p>
<h1> Conclusion</h1>
<p>The main question now is will Google use our Rich Snippet data in search results and how long will it take before the Rich Snippet data shows up* &#8211; SEE UPDATE BELOW!</p>
<p>I am still unsure if Rich Snippet data is being used across all Google search engines and countries at this moment. The data will certainly not show up until your site is spidered, and there is no guarantee it seems that even when Google has your RIch Snippet data if they will use it or not in search results &#8211; Google says &#8220;Note that there is no guarantee that a Rich Snippet will be shown for this page on actual search results.&#8221; The FAQ page which was written in 2010 seems to suggest the use of Rich Snippet Data is limited and suggests that interested users complete an &#8220;<a href="http://www.google.com/support/webmasters/bin/request.py?contact_type=rich_snippets_feedback" target="_blank">interested in Rich Snippets</a>&#8221; form. See the Rich Snippets Google <a href="http://knol.google.com/k/google-rich-snippets-tips-and-tricks#Frequently_Asked_Questions" target="_blank">FAQ </a>for more infomation.</p>
<p>If and when Rich Snippet data is widely used by Google in search results it certainly can&#8217;t do any harm to ensure your Magento product pages are ready!</p>
<p>* <span class="Apple-style-span" style="font-weight: bold; line-height: 15px; text-transform: uppercase;">UPDATE</span></p>
<p>I wrote this blog entry on 18th November 2011 and around the same time implemented rich snippet data in one of my webshops I just performed a Google search for one of our products today (8th December) and the rich snippet product review data is now being shown. So it took approximately three weeks for Google to pick up the new rich snippet data in our Magento products and reflect them in relevant search results.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gaiterjones.com/rich-snippet-data-for-magento-product-pages-improves-google-search-results/feed/</wfw:commentRss>
			<slash:comments>18</slash:comments>
		
		
			</item>
		<item>
		<title>Magento Automated Social Media Marketing FREE Extension &#8211; Twitter, Facebook</title>
		<link>https://blog.gaiterjones.com/magento-automated-social-media-marketing/</link>
					<comments>https://blog.gaiterjones.com/magento-automated-social-media-marketing/#comments</comments>
		
		<dc:creator><![CDATA[PAJ]]></dc:creator>
		<pubDate>Thu, 15 Sep 2011 11:33:16 +0000</pubDate>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Free Magento Extensions]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[marketing tweets]]></category>
		<category><![CDATA[Social Media Marketing]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[free magento extension]]></category>
		<category><![CDATA[Magento]]></category>
		<guid isPermaLink="false">http://blog.gaiterjones.com/?p=548</guid>

					<description><![CDATA[This Magento module provides an automated social media marketing solution by generating Magento product marketing social media posts to Twitter and Facebook when a customer places an order. How it...<a class="more-link" href="https://blog.gaiterjones.com/magento-automated-social-media-marketing/" title="Continue reading">Continue reading</a>]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="hang-2-column     alignnone" title="Magento Automated Social Media Marketing FREE Extension" src="https://blog.gaiterjones.com/wp-content/uploads/2011/03/buyxgeyfree-box.jpg" alt="Magento Automated Social Media Marketing FREE Extension" width="168" height="168" /><br />
This Magento module provides an automated social media marketing solution by generating Magento product marketing social media posts to Twitter and Facebook when a customer places an order.</p>
<h1><strong>How it Works</strong></h1>
<p>The code in the module is called at checkout and a random product is selected from products in  the customers cart. The information from this random &#8220;Top Seller&#8221; product is used to create a product marketing post, including a headline, short description and short Bit.ly URL to link to the product page. The built in Magento scheduling system is then used to regularly check for new marketing posts and send them to Twitter and Facebook.</p>
<figure id="attachment_17" aria-describedby="caption-attachment-17" style="width: 528px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-17" title="Example automated product marketing tweet" src="https://blog.gaiterjones.com/wp-content/uploads/2010/12/Image12.jpg" alt="Example automated product marketing tweet" width="528" height="102" srcset="https://blog.gaiterjones.com/wp-content/uploads/2010/12/Image12.jpg 528w, https://blog.gaiterjones.com/wp-content/uploads/2010/12/Image12-300x57.jpg 300w" sizes="(max-width: 528px) 100vw, 528px" /><figcaption id="caption-attachment-17" class="wp-caption-text">Example automated product marketing tweet</figcaption></figure>
<p>&nbsp;</p>
<p>To use this module you must enable the Magento scheduling system and will need a Twitter  account, and configured Twitter application, a Facebook account and configured Facebook application and a Bit.ly account, further information for setting these accounts up is detailed below.</p>
<figure id="attachment_565" aria-describedby="caption-attachment-565" style="width: 425px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-full wp-image-565" title="Magento Automated Social Media Marketing Facebook Example" src="https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-6.jpg" alt="Magento Automated Social Media Marketing Facebook Example" width="425" height="136" /><figcaption id="caption-attachment-565" class="wp-caption-text">Example automated Facebook post</figcaption></figure>
<p>&nbsp;</p>
<p>Tested with Magento CE 1.6.1</p>
<p>I am looking for <strong>extension testers</strong>, <a href="https://blog.gaiterjones.com/dev/extension.php?id=2f7ab7ec9e088352b822073749d6e7d0" target="_blank">download BETA version 0.26 (last updated 09-12-2011) of the extension <strong>here</strong></a></p>
<p><strong>Updates</strong></p>
<p>If you use this extension be sure to update to the latest version.</p>
<p>*  0.22 &#8211; First beta release. 15.09.2011<br />
*  0.23 &#8211; Developed Facebook integration and duplicate post control logic. 16.09.2011<br />
* 0.24 &#8211; Improved Facebook posting, added logic to exclude posts for products in specified categories. 19.09.2011<br />
* 0.25 &#8211; Added time range to stop being too <em>spammy</em> by restricting posts to specific hours of the day. 04.11.2011<br />
* 0.26 &#8211; Fixed grouped products not being posted due to hidden child simple products of the parent group product.</p>
<p><strong>Wishlist</strong></p>
<p>Implement logic to control the duplication of product Tweets. Done &#8211; v0.23<br />
Extend to other Social Media platforms, Facebook, etc. Facebook Support in v0.23<br />
Implement hash tags for Twitter.<br />
Add to Cart link in Facebook posts<br />
Add option to use Short or Long description text.</p>
<h1><strong>Installation</strong></h1>
<p>Prerequisites :</p>
<p>Enable Magento scheduling system<br />
Twitter Account<br />
Twitter Application<br />
Facebook Account<br />
Authorised Facebook Application</p>
<p>Bit.ly Account (optional)</p>
<p>To install this extension:</p>
<p><strong>1.</strong> Unzip the module and copy the contents of the modules app folder to the app folder of your Magento store installation.</p>
<p><strong>2</strong>. Ensure that the module /cache and /cache/Bitly folders have write permissions set to allow the WWW user group write access. The module stores the product Tweets and caches the Bit.ly short URLs in this folder.</p>
<p><strong>3</strong>. Refresh the Magento Store cache</p>
<p><strong>4.</strong> Logout and login back into the admin backend, goto System &#8211; Configuration and locate the configuration settings under My Extensions &#8211; Social Media Marketing.</p>
<h1><strong>Configuration</strong></h1>
<p>1. Configure the Twitter, Facebook and Bit.ly account, authorisation and API keys. See below for further information. If you do not want to use the Bit.ly short URL service set the enable option to no.</p>
<p>Twitter is enabled by default, Facebook is disabled by default.</p>
<p>2. Define a headline prefix for the product marketing text, the default if left blank is &#8220;Top Seller:&#8221; To disable this prefix enter NONE. For Facebook you can define the text to use for the post header. Define the &#8220;uniqueness&#8221; value for posts, this value will be used to check for if a product has already been posted in the last X posts, where X is the value you define here. This will help prevent duplicate posts. You can also configure a time range so that Social Media Marketing posts will only be made during the times selected.</p>
<p>3. Configure Google UTM tags for traffic tracking in Google analytics.e.g. ?utm_source=SocialMediaMarketing&amp;utm_medium=Top-Seller&amp;utm_campaign=MyCampaig</p>
<figure id="attachment_608" aria-describedby="caption-attachment-608" style="width: 620px" class="wp-caption alignnone"><a href="https://blog.gaiterjones.com/wp-content/uploads/2011/09/SocialMediaMarketingUTMTagsMagento.jpg"><img loading="lazy" decoding="async" class="size-large wp-image-608" title="Google Analytics Magento Social Media Marketing Revenue Report" src="https://blog.gaiterjones.com/wp-content/uploads/2011/09/SocialMediaMarketingUTMTagsMagento-620x95.jpg" alt="" width="620" height="95" srcset="https://blog.gaiterjones.com/wp-content/uploads/2011/09/SocialMediaMarketingUTMTagsMagento-620x95.jpg 620w, https://blog.gaiterjones.com/wp-content/uploads/2011/09/SocialMediaMarketingUTMTagsMagento-440x67.jpg 440w, https://blog.gaiterjones.com/wp-content/uploads/2011/09/SocialMediaMarketingUTMTagsMagento.jpg 1423w" sizes="(max-width: 620px) 100vw, 620px" /></a><figcaption id="caption-attachment-608" class="wp-caption-text">Example Google Analytics Magento Social Media Marketing Revenue Report</figcaption></figure>
<p>&nbsp;</p>
<p>4. Enable email alerts which will help you debug the module during testing.</p>
<p>5. Save the extension configuration settings and test.</p>
<h1><strong>Testing</strong></h1>
<p>Make a test order in your store to test the extension. Upon checkout completion the product marketing information will be written to the modules cache folder. At the next scheduled Magento task execution the text will be posted to Twitter (and Facebook if enabled) and the cached file deleted.</p>
<p>To force the Magento scheduler to run navigate to <strong>http://www.yourwebshop.com/cron.php</strong>. Check your Twitter and Facebook pages to confirm the marketing post has been submitted. Any errors that occur during this process will be emailed to the default store email address if you set email alerts enabled to <em>YES</em> in the configuration.</p>
<figure id="attachment_556" aria-describedby="caption-attachment-556" style="width: 440px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-medium wp-image-556" title="Magento Social Media Marketing - example product tweet" src="https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-4-440x70.jpg" alt="Magento Social Media Marketing - example product tweet" width="440" height="70" srcset="https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-4-440x70.jpg 440w, https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-4.jpg 533w" sizes="(max-width: 440px) 100vw, 440px" /><figcaption id="caption-attachment-556" class="wp-caption-text">example product tweet</figcaption></figure>
<h1></h1>
<h1><strong><strong><strong><strong>ENABLE MAGENTO SCHEDULING</strong></strong></strong></strong></h1>
<p>Magento uses a single file named <strong>cron.php</strong> to execute all its scheduled tasks –  cron.php should be executed regularly to allow configured background tasks in Magento to run and is also used by this module to check for marketing information to post. For example to run cron.php every 5 minutes add the following or similar to your crontab (crontab -e):</p>
<p><em>*/5 * * * * /usr/bin/php -f  /PATH-TO-MAGENTO/cron.php</em></p>
<p>Alternatively for testing you can execute cron.php from your browser by browsing to</p>
<p><em>http://www.yourstore.com/cron.php</em></p>
<p>&nbsp;</p>
<h1><strong><strong>TWITTER Configuration<br />
</strong></strong></h1>
<p>Folow the steps below to create a Twitter application that will be used by the module to access your Twitter account and post product marketing Tweets.</p>
<p>1. If you do not already have a Twitter account, create an account at <a href="http://www.tiwtter.com">http://www.tiwtter.com</a></p>
<p>2. Go to <a href="https://dev.twitter.com/">https://dev.twitter.com/</a> and login with your Twitter credentials.</p>
<p>3. Click the Create an App link.</p>
<p>4. Complete the first page of the application form with your application name, description and website address. A Callback URL is not required. Click the &#8220;Create your twitter app&#8221; button to continue.</p>
<figure id="attachment_552" aria-describedby="caption-attachment-552" style="width: 440px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-medium wp-image-552" title="Magento Social Media Marketing - configure a twitter application" src="https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-1-440x271.jpg" alt="Magento Social Media Marketing - configure a twitter application" width="440" height="271" srcset="https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-1-440x271.jpg 440w, https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-1-620x382.jpg 620w, https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-1.jpg 981w" sizes="(max-width: 440px) 100vw, 440px" /><figcaption id="caption-attachment-552" class="wp-caption-text">configure a twitter application</figcaption></figure>
<p>&nbsp;</p>
<p>5. Goto the application settings tab and ensure your application is set to <strong>Read and Write</strong> and click Update Setting to continue.</p>
<figure id="attachment_553" aria-describedby="caption-attachment-553" style="width: 440px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-medium wp-image-553" title="Magento Social Media Marketing - configure a twitter application" src="https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-2-440x151.jpg" alt="Magento Social Media Marketing - configure a twitter application" width="440" height="151" srcset="https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-2-440x151.jpg 440w, https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-2-620x213.jpg 620w, https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-2.jpg 637w" sizes="(max-width: 440px) 100vw, 440px" /><figcaption id="caption-attachment-553" class="wp-caption-text">ensure the application has read write access</figcaption></figure>
<p>&nbsp;</p>
<p>6. Click on the details tab and scroll down to the Create my access Token button, click it to create access tokens for the application. You will see the four main authentication tokens listed CONSUMER KEY, CONSUMER SECRET, ACCESS TOKEN and ACCESS TOKEN SECRET. Ensure that the access tokens have READ and WRITE access.</p>
<p>7. Copy each authentication token into the configuration settings of the module and click save.</p>
<p>If you do not want to use Bit.ly to shorten URLs in the marketing tweets you have the option of enabling t.co shortlinks in the application settings and you can disable Bit.ly in the extension settings.</p>
<p>You can confirm your application is enabled and has access to your Twitter account by going to account settings -&gt; applications in Twitter.</p>
<figure id="attachment_554" aria-describedby="caption-attachment-554" style="width: 440px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="size-medium wp-image-554" title="Magento Social Media Marketing - configure a twitter application" src="https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-3-440x95.jpg" alt="Magento Social Media Marketing - configure a twitter application" width="440" height="95" srcset="https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-3-440x95.jpg 440w, https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-3-620x134.jpg 620w, https://blog.gaiterjones.com/wp-content/uploads/2011/09/social-media-marketing-twitter-3.jpg 633w" sizes="(max-width: 440px) 100vw, 440px" /><figcaption id="caption-attachment-554" class="wp-caption-text">confirm application is enabled</figcaption></figure>
<h1></h1>
<h1>FACEBOOK CONFIGURATION</h1>
<p>Login to Facebook and then browse to</p>
<p><a href="http://developers.facebook.com/">http://developers.facebook.com/</a></p>
<p>Create an application that will be used to post marketing information to your Facebook page, this can be a normal profile page or a Business/Fan page. When complete note the application ID and application secret.</p>
<p>The application must be authorised for your Facebook page to work.</p>
<p>To authorise the application for your page edit the following URL and paste to your browser, replaceing YOURAPIKEY and YOURPAGEID..</p>
<p>facebook.com/connect/prompt_permissions.php?api_key=YOURAPIKEY&amp;v=1.0&amp;next=http://www.facebook.com/connect/login_success.html?xxRESULTTOKENxx&amp;display=popup&amp;ext_perm=publish_stream&amp;enable_profile_selector=1&amp;profile_selector_ids=YOURPAGEID</p>
<h1></h1>
<h1>BIT.LY CONFIGURATION</h1>
<p>To create a Bit.ly account goto <a href="http://bit.ly">http://bit.ly</a> and register an account. Once registered obtain your API key by clicking on Account -&gt; Settings. Configure your bit.ly username and API key in the configuration settings of the extension and save them.Bit.ly is enabled by default in the extension, If you do not want to use bit.ly you can disable it in the configuration settings.</p>
<p>&nbsp;</p>
<p><strong><strong><br />
</strong></strong></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gaiterjones.com/magento-automated-social-media-marketing/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>The Marketing Power of Facebook &#038; Lady Gaga</title>
		<link>https://blog.gaiterjones.com/the-marketing-power-of-facebook-and-lady-gaga/</link>
					<comments>https://blog.gaiterjones.com/the-marketing-power-of-facebook-and-lady-gaga/#respond</comments>
		
		<dc:creator><![CDATA[PAJ]]></dc:creator>
		<pubDate>Tue, 05 Jul 2011 08:57:54 +0000</pubDate>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Lady Gaga]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[Social Media Marketing]]></category>
		<guid isPermaLink="false">http://blog.gaiterjones.com/?p=473</guid>

					<description><![CDATA[The marketing power of Facebook is very interesting, take the Lady they call Gaga, she is the most popular female music artist on Facebook having accumulated so far almost 40...<a class="more-link" href="https://blog.gaiterjones.com/the-marketing-power-of-facebook-and-lady-gaga/" title="Continue reading">Continue reading</a>]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" decoding="async" class="hang-2-column    alignnone" title="The eCommerce Power of Lady Gaga on Facebook" src="https://blog.gaiterjones.com/wp-content/uploads/2011/07/lady-gaga-facebook.jpg" alt="The eCommerce Power of Lady Gaga on Facebook" width="282" height="148" />The marketing power of Facebook is very interesting, take the Lady they call Gaga, she is the most popular female music artist on Facebook having accumulated so far almost 40 million Facebook likes, almost 1.5 million people indicate their interest in her and her products (music) each week, and as you are reading this that number is raipdly rising.</p>
<p>Within 24 hours an update on her Facebook page will receive over 50,000 likes. This is the equivalent of handing out an advertising flyer to everyone in a packed out Wembley Stadium, each one reading it and indicating that they like what they have read, and it costs <em>absolutely nothing</em>.</p>
<p>These Facebook Like figures for a post are indicative of perhaps half a million to a million page views. In Marketing terms if Lady Gaga posts a link from her Facebook page to her own site advertising new music, products etc. the traffic generated would be astonishing and exceed anything you could pay Google for within the same time frame.</p>
<figure id="attachment_475" aria-describedby="caption-attachment-475" style="width: 359px" class="wp-caption alignnone"><a href="https://blog.gaiterjones.com/wp-content/uploads/2011/07/facebook-page-leaderboard1.jpg"><img loading="lazy" decoding="async" class="nohang         " title="Facebook page leaderboard 05.07.2011" src="https://blog.gaiterjones.com/wp-content/uploads/2011/07/facebook-page-leaderboard1.jpg" alt="Facebook page leaderboard 05.07.2011" width="359" height="193" /></a><figcaption id="caption-attachment-475" class="wp-caption-text">Facebook page leaderboard 05.07.2011</figcaption></figure>
<p>&nbsp;</p>
<p>Combine this with a Twitter update, she has 11 million Twitter followers, and the eCommerce power of social media networks in terms of marketing and potential exposure of new products is awesome.</p>
<p>Via Facebook and Twitter Lady Gaga has the power to instantly reach literally hundreds of thousands of customers (fans) within seconds creating the possibility to generate a <em>lot</em> of product awareness, exposure and most importantly revenue.</p>
<p>I would not like to estimate how much advertising power like this would cost to purchase. Celebrities like Lady Gaga, Eminem and Rhianna have created, quite unintentionally, the most powerful advertising vehicle on the Internet. Of course Facebook rides along on this success with its own advertising streams which also gives you an idea of how lucrative Facebook advertising can be.</p>
<p>Perhaps Lady Gaga, Rhianna and Eminem should sell update space on their Facebook sites? Now if you could promote your own products directly on Lady Gagas Facebook page, that would be pretty neat. I won&#8217;t buy her CD but I would pay for that!</p>
<p>&nbsp;</p>
<figure style="width: 640px" class="wp-caption alignnone"><img loading="lazy" decoding="async" class="hang-2-column          " title="Advertise to 90,000 people in seconds" src="http://upload.wikimedia.org/wikipedia/commons/thumb/7/79/Wembley_Stadium%2C_London.jpg/800px-Wembley_Stadium%2C_London.jpg" alt="" width="640" height="213" /><figcaption class="wp-caption-text">Advertise to 90,000 people in seconds</figcaption></figure>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gaiterjones.com/the-marketing-power-of-facebook-and-lady-gaga/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Magento Product Social Media Marketing Part 1 &#8211; the Facebook Like Button</title>
		<link>https://blog.gaiterjones.com/magento-social-media-marketing-facebook-like-button/</link>
					<comments>https://blog.gaiterjones.com/magento-social-media-marketing-facebook-like-button/#comments</comments>
		
		<dc:creator><![CDATA[PAJ]]></dc:creator>
		<pubDate>Wed, 23 Feb 2011 13:44:55 +0000</pubDate>
				<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Marketing]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[IFrame]]></category>
		<category><![CDATA[Like Button]]></category>
		<category><![CDATA[Open Graph]]></category>
		<category><![CDATA[Social Media Marketing]]></category>
		<category><![CDATA[XFBML]]></category>
		<guid isPermaLink="false">http://blog.gaiterjones.com/?p=121</guid>

					<description><![CDATA[What is Social Media Marketing? According to Wikipedia its &#8220;a means to gain customer and competitive insight, recruitment and retention of new customers/business partners, and a method of managing their...<a class="more-link" href="https://blog.gaiterjones.com/magento-social-media-marketing-facebook-like-button/" title="Continue reading">Continue reading</a>]]></description>
										<content:encoded><![CDATA[<p>What is Social Media Marketing? According to <a href="http://en.wikipedia.org/wiki/Social_media_marketing" target="_blank">Wikipedia </a>its &#8220;<em>a means to gain customer and competitive insight, recruitment and retention of new customers/business partners, and a method of managing their reputation online</em>.&#8221; It is a powerful way to create social exposure for your products and boost traffic to your site.</p>
<p><a href="http://www.twitter.com" target="_blank">Twitter</a>, <a href="http://www.facebook.com" target="_blank">Facebook </a>and <a href="http://www.youtube.com">Youtube </a>are the most popular social networking destinations, I&#8217;ve already looked at how to automatically generate <a href="https://blog.gaiterjones.com/automatic-magento-product-marketing-tweets-for-twitter/" target="_blank">product marketing Tweets for Twitter</a>, so let&#8217;s now turn our attention to Facebook and look at ways to integrate  product information from a Magento eCommerce store into the Facebook Social Graph by implementing the Facebook Like Button on all Magento product, category or cms pages.</p>
<p><img loading="lazy" decoding="async" class="alignleft size-full wp-image-206" style="margin: 5px;" title="Facebook Like Button" src="https://blog.gaiterjones.com/wp-content/uploads/2011/02/facebook_like_button.jpg.336x0.jpg" alt="" width="111" height="76" srcset="https://blog.gaiterjones.com/wp-content/uploads/2011/02/facebook_like_button.jpg.336x0.jpg 336w, https://blog.gaiterjones.com/wp-content/uploads/2011/02/facebook_like_button.jpg.336x0-300x203.jpg 300w" sizes="(max-width: 111px) 100vw, 111px" />You will have seen the Facebook Like Button everywhere, but what exactly is it? <a href="http://developers.facebook.com/docs/reference/plugins/like/">Facebook </a>calls the Like Button a <em>Social Plugin</em> that &#8220;&#8230;lets a user share your content with friends on Facebook. When the user clicks the Like button on your site, a story appears in the user&#8217;s friends&#8217; News Feed with a link back to your website.&#8221;  The Like Button is both simple and powerful. The concept is simple, Facebook users click the Like button to &#8220;like&#8221; something and indicate its cool to their friends. Their friends see the link they have liked in their Facebook news feed and are therfore also encouraged to click it. When the Like Button is integrated into your eCommerce store, the Facebook user (customer) indicates their confidence, satisfaction etc in your products by clicking the Like Button creating a great marketing opportunity for you by sharing your products with all of their friends. But there is more to it than that, because clicking the like button also integrates your product page into the Facebook &#8220;Open Graph&#8221; database.  Facebook says &#8220;If you include Open Graph tags on your Web page, your page becomes <em>equivalent to a Facebook page</em>. This means when a user clicks a Like button on your page, a connection is made between your page and the user. Your page will appear in the &#8220;Likes and Interests&#8221; section of the user&#8217;s profile, and you have the ability to <em>publish updates </em>to the user. Your page will show up in same places that Facebook pages show up around the site (e.g. search), and you can target ads to people who like your content.&#8221; Facebook is attempting to assimilate the Internet into its own Database ultimately turning all Internet pages into Facebook Open Graph objects. With a user base of around 400 million, whether you are a Facebook fan or not this marketing opportunity should not be neglected!</p>
<p>On Sunday 27th February 2011 Facebook altered the functionality of the Like button to replace the functionality of the Share button. The &#8220;Share&#8221; button will see no further development according to Facebook Spokeswoman Malorie Lucich. The company will continue to support the Share button but Like is the “recommended solution moving forward.” The main difference users will now see is that likes to external content are shown in profiles and news streams as &#8220;user likes a link TO EXTERNAL CONTENT&#8221; instead of &#8220;user likes EXTERNAL CONTENT&#8221;. The latter still applying for content hosted on Facebook.</p>
<p>Implementing the Like Button with Magento is relatively simple and there are <a href="http://www.magentocommerce.com/magento-connect/filter/all?query=facebook" target="_blank">extensions </a>available from Magento Connect (even a free one!) the most important aspect of implementing the Like Button is getting the Open Graph data right to ensure that your products are &#8220;assimilated&#8221; correctly into Facebook with a unique and constant URL,  product title, image and meaningful SEO rich description. Check out the extensions with that in mind, if you want to implement the Like Button yourself within Magento 1.3, 1.4 or 1.5 here&#8217;s how I did it. I strongly <em>recommend </em>you develop your Facebook Like button on a development server and not your live site!</p>
<h2>Go Canonical</h2>
<p>The Like Button requires a unique URL to identify your product page in the Facebook Open Graph database.  Magento is notorious for creating duplicate content, generating mulitple URLs for the same product content so it is also good SEO practice to implement the <a href="http://yoast.com/canonical-url-links/" target="_blank">canonical URL</a> tag within the header of your site to tell search engines which URL they <em>should</em> use for your products to avoid duplicating search engine content. The canonical URL is perfect for the Facebook Open Graph URL tag. In Magento 1.4.x and above Canonical URLs are included in the core code, for Magento 1.3.x use the <a href="http://yoast.com/" target="_self">Yoast </a>canonical URL extension its free and installs quickly and easily. Here&#8217;s how to install the extension under 1.3.</p>
<p><strong>Magento Community Edition 1.3.x</strong></p>
<p>You can find the Yoast canonical URL extension on <a href="http://www.magentocommerce.com/magento-connect/Yoast/extension/906/canonical-url-s-for-magento">Magento Connect</a> <span style="text-decoration: underline;">note</span> there are <a href="http://yoast.com/tools/magento/canonical/" target="_blank">issues </a>with this extension if you already use the Fooman Speedster module that you need to workaround.</p>
<p>I installed it under Magento 1.3.x using the command line <em>PEAR </em>installer :</p>
<pre class="brush:plain">dev/magento1-3-3-dev# ./pear mage-setup
Running initial setup...
config-set succeeded
Channel "connect.magentocommerce.com/core" is already initialized
Channel "connect.magentocommerce.com/community" is already initialized

dev/magento1-3-3-dev# ./pear install magento-community/canonical_url-1.3
downloading canonical_url-1.3.tgz ...
Starting to download canonical_url-1.3.tgz (3,866 bytes)
....done: 3,866 bytes
install ok: channel://connect.magentocommerce.com/community/canonical_url-1.3</pre>
<p>Refresh the Magento cache to enable the extension.</p>
<p><strong>Magento Community Edition 1.4.x, 1.5.x</strong></p>
<p>Magento 1.4 and 1.5 now support the canonical tag &#8220;out of the box&#8221;. To enable the tag for the category and product pages go to: <em>System=&gt;Configuration=&gt;Catalog=&gt;Search Engine Optimization</em> and enable: <em> </em><em>Use Canonical Link Meta Tag For Products</em> (and if you want &#8211; <em>Use Canonical Link Meta Tag For Categories</em>) : <em> </em></p>
<figure id="attachment_136" aria-describedby="caption-attachment-136" style="width: 518px" class="wp-caption alignnone"><a href="https://blog.gaiterjones.com/wp-content/uploads/2011/02/Image4.jpg"><img loading="lazy" decoding="async" class="hang-1-column      " style="border: 1px solid #dddddd;" title="Enable canonical Meta Tag in Magento 1.4, 1.5" src="https://blog.gaiterjones.com/wp-content/uploads/2011/02/Image4.jpg" alt="Enable canonical Meta Tag in Magento 1.4, 1.5" width="518" height="136" /></a><figcaption id="caption-attachment-136" class="wp-caption-text">Enable canonical Meta Tag in Magento 1.4, 1.5</figcaption></figure>
<p><strong>Confirm the Canonical Tag is correct<br />
</strong></p>
<p>Check the Canonical Tag is working by browsing to a product and checking the source HTML. In my demo store with Magento 1.3.x or with the Canonical Tag option deactivated in Magento 1.4, 1.5 the Nokia 2610 product page shows the category/product url <strong><em>http://dev.webshop.com/electronics/cell-phones/nokia-2610-phone.html</em></strong>, with the Yoast extension or canonical Meta Tags activated there is a more SEO friendly canonical link URL :</p>
<p>&lt;link rel=&#8221;canonical&#8221; href=&#8221;<strong><em>http://dev.webshop.com/nokia-2610-phone.html</em></strong>&#8221; /&gt;</p>
<h2>Configure the Open Graph Meta tags</h2>
<p>Now we have a static canonical URL for our products we need to configure the Open Graph meta tags Facebook will use to convert our page into a Facebook Open Graph object. Facebook says &#8220;The (Open Graph Meta) tags allow you to specify structured information about your web pages. The more information you provide, the more opportunities your web pages can be surfaced within Facebook today and in the future.&#8221;</p>
<p>Before we can add the meta tags we need to add the <em>xmlns:fb -attribute</em> to the xml name space element in our HTML header, this is so that Internet Explorer browsers can understand the Open Graph tags.</p>
<p>Locate the main <em>/template/page</em> folder for your Magento theme, for the default theme this is located in <em>app/design/frontend/base/default/template/page</em> for Magento 1.4.x, 1.5.x and <em>app/design/frontend/default/default/template/page</em> for Magento 1.3.x.</p>
<p>Open the main HTML <em>template phtml</em> file for your theme e.g. 2columns-right.phtml and locate the line of code with the opening HTML element:</p>
<pre class="brush:plain">&lt;html xmlns="http://www.w3.org/1999/xhtml" xml:lang="&lt;?php echo $this-&gt;getLang() ?&gt;" lang="&lt;?php echo $this-&gt;getLang() ?&gt;"&gt;</pre>
<p>Change this to</p>
<pre class="brush:plain">&lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" xmlns:og="http://opengraph.org/schema/" xml:lang="&lt;?php echo $this-&gt;getLang() ?&gt;" lang="&lt;?php echo $this-&gt;getLang() ?&gt;"&gt;</pre>
<p>Now in the <em>template/page/html</em> folder open the <em>head.phtml</em> file and add the following code and Open Graph meta tags for your version of Magento directly under the existing META tags.  (Double click the code boxes and and use CTRL-C to copy the code.)</p>
<p><strong>Magento Community Edition 1.3.x with Canonical URL Extension</strong></p>
<pre class="brush:php">&lt;?php
/**
 * Facebook Open Graph meta tags Magento 1.3
 *
 */
?&gt;
&lt;!--Default OG Meta tags--&gt;
&lt;meta property="og:site_name" content="My eCommerce Store"/&gt;
&lt;meta property="og:street-address" content="1 THE High Street"/&gt;
&lt;meta property="og:locality" content="London"/&gt;
&lt;meta property="og:postal-code:" content="SW1"/&gt;
&lt;meta property="og:country-name:" content="United Kingdom"/&gt;
&lt;meta property="og:phone_number" content="00441234567890"/&gt;
&lt;meta property="og:latitude" content="00.00000000000000"/&gt;
&lt;meta property="og:longitude" content="00.00000000000000"/&gt;
&lt;?php // ***** Detect product or category page ?&gt;
&lt;?php if (Mage::registry('current_category')): ?&gt;
&lt;?php $cat=Mage::registry('current_category') ?&gt;
&lt;?php $catLevel=$cat-&gt;getLevel() ?&gt;
&lt;?php $catId=$cat-&gt;getId()  ?&gt;
&lt;?php $_id= Mage::app()-&gt;getRequest()-&gt;getParam('id', false)  ?&gt;
&lt;?php if($_id!=$catId):  ?&gt;
&lt;?php // Product page ?&gt;
&lt;!--Product page OG Meta tags--&gt;
&lt;meta property="og:title" content="&lt;?php echo trim(Mage::registry('current_product')-&gt;getName())?&gt;"/&gt;
&lt;meta property="og:type" content="product"/&gt;
&lt;?php if ($this-&gt;getHeadProductUrl()): ?&gt;
&lt;meta property="og:url" content="&lt;?php echo $this-&gt;_data['urlKey'] ?&gt;"/&gt;
&lt;?php endif; ?&gt;
&lt;meta property="og:description" content="&lt;?php echo strip_tags(str_replace("&lt;br /&gt;",", ",substr(Mage::registry('current_product')-&gt;getDescription(), 0, strpos(Mage::registry('current_product')-&gt;getDescription(), '.')+1))) ?&gt;"/&gt;
&lt;meta property="og:image" content="&lt;?php echo Mage::helper('catalog/image')-&gt;init(Mage::registry('current_product'), 'small_image')-&gt;resize(100,100);?&gt;"/&gt;
&lt;?php else: ?&gt;
&lt;?php // Category page ?&gt;
&lt;!--Category page OG Meta tags--&gt;
&lt;meta property="og:title" content="&lt;?php echo trim(Mage::registry('current_category')-&gt;getName())?&gt;"/&gt;
&lt;meta property="og:type" content="product"/&gt;
&lt;meta property="og:url" content="&lt;?php echo $this-&gt;helper('core/url')-&gt;getCurrentUrl() ?&gt;"/&gt;
&lt;meta property="og:description" content="&lt;?php echo htmlspecialchars($this-&gt;getDescription()) ?&gt;"/&gt;
&lt;?php if(trim(Mage::registry('current_category')-&gt;getImageUrl()=="")): ?&gt;
&lt;meta property="og:image" content="CATEGORY HAS NO IMAGE CONFIGURE MANUAL LINK TO A GENERIC CATEGORY IMAGE"/&gt;
&lt;?php else: ?&gt;
&lt;meta property="og:image" content="&lt;?php echo trim(Mage::registry('current_category')-&gt;getImageUrl())?&gt;"/&gt;
&lt;?php endif; ?&gt;
&lt;?php endif; ?&gt;
&lt;?php endif; ?&gt;
&lt;?php // ***** Detect CMS page ?&gt;
&lt;?php if(Mage::getSingleton('cms/page')-&gt;getIdentifier() == 'home'  &amp;&amp; Mage::app()-&gt;getFrontController()-&gt;getRequest()-&gt;getRouteName() == 'cms' ) : ?&gt;
&lt;!--Home page OG Meta tags--&gt;
&lt;meta property="og:title" content="THIS IS THE MAIN CMS HOME PAGE"/&gt;
&lt;meta property="og:type" content="product"/&gt;
&lt;meta property="og:url" content="&lt;?php echo $this-&gt;helper('core/url')-&gt;getCurrentUrl() ?&gt;"/&gt;
&lt;meta property="og:description" content="MY DESCRIPTION"/&gt;
&lt;meta property="og:image" content="MANUAL LINK TO A GENERIC IMAGE"/&gt;
&lt;?php endif; ?&gt;</pre>
<p>&nbsp;</p>
<p><strong>Magento Community Edition 1.4.x, 1.5.x</strong></p>
<pre class="brush:php">&lt;?php
/**
 * Facebook Open Graph meta tags Magento 1.4, 1.5
 * updated 16.05.2011
 */
?&gt;
&lt;!--Default OG Meta tags--&gt;
&lt;meta property="og:site_name" content="My eCommerce Store"/&gt;
&lt;meta property="og:street-address" content="1 THE High Street"/&gt;
&lt;meta property="og:locality" content="London"/&gt;
&lt;meta property="og:postal-code:" content="SW1"/&gt;
&lt;meta property="og:country-name:" content="United Kingdom"/&gt;
&lt;meta property="og:phone_number" content="00441234567890"/&gt;
&lt;meta property="og:latitude" content="00.00000000000000"/&gt;
&lt;meta property="og:longitude" content="00.00000000000000"/&gt;
&lt;?php // ***** Detect product or category page ?&gt;
&lt;?php if (Mage::registry('current_category')): ?&gt;
&lt;?php $cat=Mage::registry('current_category') ?&gt;
&lt;?php $catLevel=$cat-&gt;getLevel() ?&gt;
&lt;?php $catId=$cat-&gt;getId()  ?&gt;
&lt;?php $_id= Mage::app()-&gt;getRequest()-&gt;getParam('id', false)  ?&gt;
&lt;?php if($_id!=$catId):  ?&gt;
&lt;?php // Product page ?&gt;
&lt;!--Product page OG Meta tags--&gt;
&lt;meta property="og:title" content="&lt;?php echo trim(Mage::registry('current_product')-&gt;getName())?&gt;"/&gt;
&lt;meta property="og:type" content="product"/&gt;
&lt;?php if ($this-&gt;helper('catalog/product')-&gt;canUseCanonicalTag()): ?&gt;
&lt;meta property="og:url" content="&lt;?php echo trim(Mage::registry('current_product')-&gt;getProductUrl()) ?&gt;"/&gt;
&lt;?php endif; ?&gt;
&lt;meta property="og:description" content="&lt;?php echo strip_tags(str_replace("&lt;br /&gt;",", ",substr(Mage::registry('current_product')-&gt;getDescription(), 0, strpos(Mage::registry('current_product')-&gt;getDescription(), '.')+1))) ?&gt;"/&gt;
&lt;meta property="og:image" content="&lt;?php echo Mage::helper('catalog/image')-&gt;init(Mage::registry('current_product'), 'small_image')-&gt;resize(100,100);?&gt;"/&gt;
&lt;?php else: ?&gt;
&lt;?php // Category page ?&gt;
&lt;!--Category page OG Meta tags--&gt;
&lt;meta property="og:title" content="&lt;?php echo trim(Mage::registry('current_category')-&gt;getName())?&gt;"/&gt;
&lt;meta property="og:type" content="product"/&gt;
&lt;meta property="og:url" content="&lt;?php echo $this-&gt;helper('core/url')-&gt;getCurrentUrl() ?&gt;"/&gt;
&lt;meta property="og:description" content="&lt;?php echo htmlspecialchars($this-&gt;getDescription()) ?&gt;"/&gt;
&lt;?php if(trim(Mage::registry('current_category')-&gt;getImageUrl()=="")): ?&gt;
&lt;meta property="og:image" content="CATEGORY HAS NO IMAGE CONFIGURE MANUAL LINK TO A GENERIC CATEGORY IMAGE"/&gt;
&lt;?php else: ?&gt;
&lt;meta property="og:image" content="&lt;?php echo trim(Mage::registry('current_category')-&gt;getImageUrl())?&gt;"/&gt;
&lt;?php endif; ?&gt;
&lt;?php endif; ?&gt;
&lt;?php endif; ?&gt;
&lt;?php // ***** Detect CMS page ?&gt;
&lt;?php if(Mage::getSingleton('cms/page')-&gt;getIdentifier() == 'home'  &amp;&amp; Mage::app()-&gt;getFrontController()-&gt;getRequest()-&gt;getRouteName() == 'cms' ) : ?&gt;
&lt;!--Home page OG Meta tags--&gt;
&lt;meta property="og:title" content="THIS IS THE MAIN CMS HOME PAGE"/&gt;
&lt;meta property="og:type" content="product"/&gt;
&lt;meta property="og:url" content="&lt;?php echo $this-&gt;helper('core/url')-&gt;getCurrentUrl() ?&gt;"/&gt;
&lt;meta property="og:description" content="MY DESCRIPTION"/&gt;
&lt;meta property="og:image" content="MANUAL LINK TO A GENERIC IMAGE"/&gt;
&lt;?php endif; ?&gt;</pre>
<p>First we add the site default OG Meta Tags including two Facebook tags to identify the Facebook admininstrator ID for this content and an associated Application ID. Add your Facebook account ID and app ID here. To register a Facebook application simply login to Facebook,  goto <a href="http://www.facebook.com/developers/apps.php">http://www.facebook.com/developers/apps.php</a> and click on the &#8220;Set up new app&#8221; button. Give your app a name and set the domain name for the app &#8211; the domain name must match the domain the Like button is installed on for it to work, and save it. In the application settings or on the MyApp page you will see your Application ID number.</p>
<p>The information in these tags will be used by Facebook when they &#8220;scrape&#8221; your page the first time someone clicks on a product page Like Button.</p>
<p>Then we specify the Open Graph tags that will appear when we detect a product, category or cms pages. For CMS pages you need check for each CMS page name you wish to place a like button on, i.e. in the code example we are checking for a page called &#8220;home&#8221;. For CMS pages you need to also manually set the URL to an image. For category and sub category pages we can check for a configured category image, if non exists then use a manually configured default image. For products we will take the default image from the product. Bundled products are not currently being detected, will need to work on a solution for that&#8230;</p>
<p>If you want to include specific OG Meta tags for a page with a specific url then use.</p>
<pre class="brush:php">&lt;?php if($this-&gt;helper('core/url')-&gt;getCurrentUrl() === 'http://www.mystore.com/my-specific-page-url.htmll') : ?&gt;
&lt;!-- Specific Page OG Meta--&gt;
&lt;meta property="og:title" content="SPECIFIC PAGE OG CONTENT TITLE"/&gt;
&lt;meta property="og:type" content="product"/&gt;
&lt;meta property="og:url" content="&lt;?php echo $this-&gt;helper('core/url')-&gt;getCurrentUrl() ?&gt;"/&gt;
&lt;meta property="og:description" content="SPECIFIC PAGE CONTENT DESCRIPTION"/&gt;
&lt;meta property="og:image" content="http://www.mystore.com/myimage.jpg"/&gt;
&lt;?php endif; ?&gt;</pre>
<p>Edit the open graph data for your own requirements and add or remove more tags as you wish. The name, description and URL tags for product and category pages can be populated automatically. The URL for products comes from our canonical URL extension and the product description uses the same method I used for <a title="Magento SEO – Generate META Description Tags Automatically" href="https://blog.gaiterjones.com/magento-seo-generate-meta-description-tags-automatically/">SEO description meta tags</a>, to create a meaningful description to use within Facebook from the product long description text. The same method could be used for category pages too, for CMS pages you may need to manually enter the description for each CMS page you want a Like Button to appear on, and check for the page name using the code above.</p>
<p>More information on the Open Graph tags can be found <a href="http://developers.facebook.com/docs/opengraph/" target="_blank">here</a>.</p>
<p>Save your files and refresh a product page. Check the source HTML to check that the Open Graph tags have been populated correctly for product, category, sub category and cms pages i.e. :</p>
<pre class="brush:xml">&lt;!--Default OG Meta tags--&gt;
&lt;meta property="og:site_name" content="My eCommerce Store"/&gt;
&lt;meta property="og:street-address" content="1 THE High Street"/&gt;
&lt;meta property="og:locality" content="London"/&gt;
&lt;meta property="og:postal-code:" content="SW1"/&gt;
&lt;meta property="og:country-name:" content="United Kingdom"/&gt;
&lt;meta property="og:phone_number" content="00441234567890"/&gt;

&lt;meta property="og:latitude" content="00.00000000000000"/&gt;
&lt;meta property="og:longitude" content="00.00000000000000"/&gt;
&lt;!--Product page OG Meta tags--&gt;
&lt;meta property="og:title" content="Nokia 2610 Phone"/&gt;
&lt;meta property="og:type" content="product"/&gt;
&lt;meta property="og:url" content="http://dev150.webshop.com/nokia-2610-phone.html"/&gt;
&lt;meta property="og:description" content="The Nokia 2610 is an easy to use device that combines multiple messaging options including email, instant messaging, and more."/&gt;
&lt;meta property="og:image" content="http://dev150.webshop.com/media/catalog/product/cache/1/small_image/100x100/9df78eab33525d08d6e5fb8d27136e95/n/o/nokia-2610-phone-2.jpg"/&gt;</pre>
<h2>Add the Magento Facebook Like Button &#8211; XFBML or IFrame?</h2>
<p>Now we are all prepared to add our Like Button. You can render the Like Button and javascript code using two methods, XFBML or Iframe. There are pros and cons to both and you might already be averse to using Iframes on your pages. They both achieve the same result with the main difference being that the XFBML is slightly more versatile (and also perhaps quicker) allowing for a comment to be left after you have clicked the button, and also providing methods to trigger actions after the click.</p>
<p>Best practice recommends using XFBML but there is another reason for using the Iframe version that might interest you. If you sell the same product in multiple stores for example a Retail and a Wholesale store and the stores have different domains then using XFBML will result in two entries for the same product within Facebook because the domain name in the URL for the product must match the domain name of the page that executes the XFBML code. Using the Iframe method allows us to specify the domain ourselves and due to the nature of an Iframe Facebook has no way of confirming if it matches  the domain of the parent page of the Iframe or not. Another way to illustrate this is that if you develop your XFBML Facebook Like button on your development server and make test &#8220;Like&#8221; clicks on product X, Facebook will see this as <em>http://your.develeopment.server/productX</em> when you move the code to your live server, your &#8220;Likes&#8221; will be lost because Facebook will now register a new Open Graph object at <em>http://your.live.server/productX</em>. Whereas using the Iframe we can specify<em> http://your.live.server/productX</em> as the URL both on the live and development server.</p>
<h2>Magento Facebook XFBML Like Button</h2>
<p>Lets implement the XFBML version first. To add the Like Button to our product pages we need to locate <em>view.phtml</em> in the <em>/template/catalog/product</em> folder of our theme. Open <em>view.phtml</em> and look for the element or div that renders the product-name, around about line 50. We can locate the Facebook like button directly under the product name in the default theme, or you can locate it where you wish on your themes product page either by moving the code or positioning the button using a CSS class. Add the following code first :</p>
<pre class="brush:php">&lt;div id="facebook_like_product_button"&gt;&lt;fb:like ref="product_page" layout="button_count" show_faces="false" colorscheme="light" width="500"&gt;&lt;/fb:like&gt;&lt;/div&gt;</pre>
<p>This defines how our button looks and there are various options that you can experiment with to get the button you want. Note the DIV ID (or class) can be changed/added to whatever you want to style or move the button within the page. Take a look at <a href="http://developers.facebook.com/docs/reference/plugins/like/">http://developers.facebook.com/docs/reference/plugins/like/</a> to experiment with the different button style options available. This is what they look like with <em>standard</em>, <em>button count</em> or <em>box count</em> layout styles :</p>
<figure id="attachment_125" aria-describedby="caption-attachment-125" style="width: 324px" class="wp-caption alignnone"><a href="https://blog.gaiterjones.com/wp-content/uploads/2011/02/Image2.jpg"><img loading="lazy" decoding="async" class=" " style="border: 1px solid #DDDDDD;" title="Examples of different Like Button render options" src="https://blog.gaiterjones.com/wp-content/uploads/2011/02/Image2.jpg" alt="Examples of different Like Button render options" width="324" height="161" /></a><figcaption id="caption-attachment-125" class="wp-caption-text">Examples of different Like Button render options</figcaption></figure>
<p>Now we need to pull the Javascript SDK code from Facebook. <a href="http://developers.facebook.com/docs/reference/javascript/" target="_blank">Facebook </a>says &#8220;The most efficient way to load the SDK in your site is to load it  asynchronously so it does not block loading other elements of your page.   This is particularly important to ensure fast page loads for users and  SEO robots/spiders.&#8221; To access the SDK requires your Facebook application ID from Facebook. We can set the Like Button language with a locale code, add a translation for <em>en_US</em> to your Magento language files to change the language to match your store i.e. <em>de_DE</em> for German.</p>
<p>Add the following code next with your Facebook APP id, you can add it directly after the Button code on your product page if you will only be using like buttons on product pages. Or add it to your<em> header.phtml </em>template file to load it with every Magento page.</p>
<pre class="brush:xml">&lt;!-- Facebook Like Product Button BEGIN - load the SDK asynchronously --&gt;
	&lt;div id="fb-root"&gt;&lt;/div&gt;
		&lt;script&gt;
		/* &lt;![CDATA[ */
			window.fbAsyncInit = function() {
			FB.init({appId: 'YOUR FACEBOOK APP ID', status: true, cookie: true,
				xfbml: true});
		};
		(function() {
			var e = document.createElement('script'); e.async = true;
			e.src = document.location.protocol +
			'//connect.facebook.net/&lt;?php echo $this-&gt;__('en_US') ?&gt;/all.js';
			document.getElementById('fb-root').appendChild(e);
		}());
		 /* ]]&gt; */
		&lt;/script&gt;
&lt;!-- Facebook Like Product Button END --&gt;</pre>
<p>Notice that the Javascript code performs a protocol check to ensure that the link to Facebook matches the protocol of the page, i.e. HTTP or HTTPS, this is important when linking to external content to avoid browsers security errors when using an SSL connection.</p>
<h2>Testing</h2>
<p>Save your changes and refresh your product page to see your shiny new Like Button. Remember you should test all the popular browsers to ensure the code is working and the button displays correctly. Your browser tests should include, Internet Explorer, Firefox, Chrome, Opera and Safari and remember to test HTTPS access too. I also recommend that you <a href="http://www.asymptoticdesign.co.uk/cgi-bin/check-url.pl " target="_blank">check how your page looks to crawlers like Google Bot,</a> an error in the header of your page may render ok for normal browsers but not for a crawler bot. You can also do a page fetch test from within <a href="http://www.google.com/webmasters/tools" target="_blank">Google Webmaster Tools</a>. I learned this the hard way with a site becoming deindexed in Google due to a error in the header PHP code that was only being triggered by crawler Bots!</p>
<figure id="attachment_124" aria-describedby="caption-attachment-124" style="width: 518px" class="wp-caption alignnone"><a href="https://blog.gaiterjones.com/wp-content/uploads/2011/02/Image11.jpg"><img loading="lazy" decoding="async" class="hang-1-column    " style="border: 1px solid #dddddd;" title="Like Button - Magento 1.3.x Product Page Example" src="https://blog.gaiterjones.com/wp-content/uploads/2011/02/Image11.jpg" alt="Like Button - Magento 1.3.x Product Page Example" width="518" height="299" /></a><figcaption id="caption-attachment-124" class="wp-caption-text">Like Button - Magento 1.3.x Product Page Example</figcaption></figure>
<p>Go ahead and click on it (if you like it!) This will trigger Facebook to scrape your page and the &#8220;Like&#8221; should appear in your Facebook profile feed with the image, and title from your Open Graph tags.</p>
<figure id="attachment_196" aria-describedby="caption-attachment-196" style="width: 472px" class="wp-caption alignnone"><a href="https://blog.gaiterjones.com/wp-content/uploads/2011/02/liked-it1.jpg"><img loading="lazy" decoding="async" class="hang-1-column      " style="border: 1px solid #dddddd;" title="Facebook Marketing Like - example news feed post" src="https://blog.gaiterjones.com/wp-content/uploads/2011/03/facebook-like-example-updated.jpg" alt="Facebook Marketing Like - example news feed post" width="472" height="163" /></a><figcaption id="caption-attachment-196" class="wp-caption-text">Facebook Marketing Like - example news feed post</figcaption></figure>
<p>To add the Like Button to a category page add the same Button code above to locate <em>view.phtml</em> in the <em>/template/catalog/category </em>folder of your theme. Open <em>view.phtml</em> and look for the element or div that renders the category-name and add the code just below it. Note that depending on your theme there will be multiple occurences of the category name for different category views in this file.</p>
<figure id="attachment_322" aria-describedby="caption-attachment-322" style="width: 417px" class="wp-caption alignnone"><a href="https://blog.gaiterjones.com/wp-content/uploads/2011/02/magento-facebook-like-button-category-page1.jpg"><img loading="lazy" decoding="async" class="hang-1-column      " style="border: 1px solid #dddddd;" title="Magento Facebook Like button category page example" src="https://blog.gaiterjones.com/wp-content/uploads/2011/02/magento-facebook-like-button-category-page1.jpg" alt="Magento Facebook Like button category page example" width="417" height="205" /></a><figcaption id="caption-attachment-322" class="wp-caption-text">Magento Facebook Like button category page example</figcaption></figure>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Remember for Facebook to scrape your page the URL must be valid and accessible from the Internet, so if you are working on a development server it must be also accessible from the Internet. It can take a while for the Open Graph data to be collected and to appear correctly in Facebook. If you want to manually check that your Open Graph data is accessible use the Facebook Lint tool at <a href="http://developers.facebook.com/tools/lint">http://developers.facebook.com/tools/lint</a>. Enter the canonical URL of a product page and Facebook will return the scraped Open Graph meta data for you to verify.</p>
<figure id="attachment_134" aria-describedby="caption-attachment-134" style="width: 520px" class="wp-caption alignnone"><a href="https://blog.gaiterjones.com/wp-content/uploads/2011/02/Image32.jpg"><img loading="lazy" decoding="async" class="hang-1-column    " style="border: 1px solid #DDDDDD;" title="Verify Open Graph meta data with the Facebook Lint Tool" src="https://blog.gaiterjones.com/wp-content/uploads/2011/02/Image32.jpg" alt="Verify Open Graph meta data with the Facebook Lint Tool" width="520" height="323" /></a><figcaption id="caption-attachment-134" class="wp-caption-text">Verify Open Graph meta data with the Facebook Lint Tool</figcaption></figure>
<h2>Magento Facebook IFrame Like Button</h2>
<p>For completeness lets also look at implementing the Like Button using an IFrame, remember this can be useful because it allows <em>cross domain Like buttons</em>, i.e. buttons for the same content that will work when served from different website domains.</p>
<p>Unlike the XFBML code, the IFrame must specify the Like URL within the IFrame element so for Magento 1.3.x we need to generate the IFrame code in the header so that we can call the Canonical URL extension code. Add the following code at the end of <em>head.phtml </em>for <strong>Magento 1.3.x</strong></p>
<pre class="brush:xml">&lt;?php if (Mage::registry('current_product')) : ?&gt;
&lt;script type="text/javascript"&gt;
function fbLike(){
        return '&lt;iframe src="http://www.facebook.com/plugins/like.php?href=&lt;?php echo str_replace($this-&gt;getBaseUrl(),"http://www.YOUR-DOMAIN.com/",$this-&gt;_data['urlKey']) ?&gt;&amp;locale=&lt;?php echo $this-&gt;__('en_US') ?&gt;&amp;layout=button_count&amp;show_faces=false&amp;width=150&amp;action=like&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:150px; height:21px;" allowTransparency="true"&gt;&lt;/iframe&gt;';
    }
&lt;/script&gt;
&lt;?php endif; ?&gt;</pre>
<p>For <strong>Magento 1.4.x and 1.5.x </strong>you can either add the IFrame code directly to<em> view.php</em> or call it with the Javascript function in <em>head.phtml</em>. To use the Javascript function add the following to <em>head.phtml</em></p>
<pre class="brush:xml">&lt;?php if (Mage::registry('current_product')) : ?&gt;
&lt;script type="text/javascript"&gt;
function fbLike(){
        return '&lt;iframe src="http://www.facebook.com/plugins/like.php?href=&lt;?php echo str_replace($this-&gt;getBaseUrl(), "http://www.YOUR-DOMAIN.com/", trim(Mage::registry('current_product')-&gt;getProductUrl())); ?&gt;&amp;locale=&lt;?php echo $this-&gt;__('en_US') ?&gt;&amp;layout=button_count&amp;show_faces=false&amp;width=150&amp;action=like&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:150px; height:21px;" allowTransparency="true"&gt;&lt;/iframe&gt;';
    }
&lt;/script&gt;
&lt;?php endif; ?&gt;</pre>
<p>This code generates the IFrame html using a Javascript function that is called from the product page. Note that to keep the URL constant we replace the base host and domain name to be used for the Like Button with the domain name of the host site (or whatever we want). Edit www.YOUR-DOMAIN.com to match the URL of your site/store.</p>
<p>Now open up <em>view.phtml</em> and as with the XFBML solution add the following code after the product name, or wherever you want within the product view page of your theme.</p>
<pre class="brush:xml">&lt;!-- Facebook Like Button BEGIN --&gt;
&lt;div id="fb-root"&gt;&lt;/div&gt;
&lt;script type="text/javascript"&gt;
document.write(fbLike());
&lt;/script&gt;
&lt;!-- Facebook Like Button END --&gt;</pre>
<p>This simply calls the Javascript function created in <em>head.phtml</em> which returns the HTML for the IFrame. For Magento 1.4, 1.5 you can also replace the script code directly with the IFrame code in <em>view.phtml</em>:</p>
<pre class="brush:xml">&lt;!-- Facebook Like Button BEGIN --&gt;
&lt;div id="fb-root"&gt;&lt;/div&gt;
&lt;iframe src="http://www.facebook.com/plugins/like.php?href=&lt;?php echo str_replace($this-&gt;getBaseUrl(), "http://www.YOUR-DOMAIN.com/", trim(Mage::registry('current_product')-&gt;getProductUrl())); ?&gt;&amp;locale=&lt;?php echo $this-&gt;__('en_US') ?&gt;&amp;layout=button_count&amp;show_faces=false&amp;width=150&amp;action=like&amp;colorscheme=light&amp;height=21" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:150px; height:21px;" allowTransparency="true"&gt;&lt;/iframe&gt;
&lt;!-- Facebook Like Button END --&gt;</pre>
<p>Refresh the product page to see the IFrame version of the Like Button.</p>
<h2>Positioning the Facebook Like Button</h2>
<p>To style the button or to adjust its position on the product view page wrap the Facebook code in a DIV i.e. &#8220;<em>facebook_like_product_button</em>&#8221; and create a matching style CSS ID or class. For example to pad the button out a little add the following to your CSS:</p>
<pre class="brush:css">/*Facebook Like Button*/
#facebook_like_product_button {
padding-top: 1em;
}</pre>
<h2>Like Button for your facebook page</h2>
<p>If you want your main home page like button to Like an existing Facebook page simple modify the Like button code to include the URL of your Facebook page:</p>
<pre class="brush:xml">&lt;fb:like href="http://www.facebook.com/YOUR.FACEBOOK.PAGE" ref="product_page" layout="button_count" show_faces="false" width="120"&gt;&lt;/fb:like&gt;</pre>
<h2>Conclusions</h2>
<p>Now that the like button is working you will want to check which products are receiving button clicks, use the Facebook Insight tool to look at the statistics for your product page Likes &#8211; <a href="http://www.facebook.com/insights/">http://www.facebook.com/insights/</a> You may need to first click the green &#8220;statistics for your domain&#8221; button to link your domain to your Facebook profile. You can also integrate reporting into Google Analytics, see the blog post below. Topics for another post include how to target customers that have liked your products individually by sending them specific product updates via Facebook.</p>
<p>Note that the code posted here was tested with <strong>Community Editions</strong> of Magento only.</p>
<p>In part two of this Social Media Marketing for Magento tutorial we will  integrate <a title="Magento Product Social Media Marketing Part 2 – the AddThis Toolbar" href="https://blog.gaiterjones.com/magento-product-social-media-marketing-addthis-toolbar/">300+ more Social Marketing destinations</a> into Magento product pages using the <em>AddThis</em> toolbar.</p>
<h1><strong>More Reading</strong></h1>
<p><a href="http://www.saschakimmel.com/2010/05/how-to-capture-clicks-on-the-facebook-like-button/">http://www.saschakimmel.com/2010/05/how-to-capture-clicks-on-the-facebook-like-button/<br />
</a><a href="http://developers.facebook.com/docs/reference/plugins/like/"><br />
http://developers.facebook.com/docs/reference/plugins/like/</a></p>
<p><a href="http://developers.facebook.com/docs/best-practices/">http://developers.facebook.com/docs/best-practices/</a></p>
<p><a href="http://www.websharedesign.com/blog/how-do-i-track-that-little-facebook-like-button-in-google-analytics.html">http://www.websharedesign.com/blog/how-do-i-track-that-little-facebook-like-button-in-google-analytics.html</a></p>
<p><a href="http://developers.facebook.com/docs/opengraph/">http://developers.facebook.com/docs/opengraph/</a></p>
<p><a href="http://garethhooper.com/articles/social-media/45-integration/158-how-to-correctly-add-the-facebook-social-plugins-to-your-website.html">http://garethhooper.com/articles/social-media/45-integration/158-how-to-correctly-add-the-facebook-social-plugins-to-your-website.html</a></p>
<p>Updated Facebook Like Button</p>
<p><a href="http://soshable.com/facebook-like-butto">http://soshable.com/facebook-like-butto</a></p>
<p><a href="http://www.techi.com/2011/02/why-the-facebook-like-button-change-is-a-bait-and-switch/">http://www.techi.com/2011/02/why-the-facebook-like-button-change-is-a-bait-and-switch/</a></p>
<p><a href="http://davehiren.blogspot.com/2010/08/detect-product-page-in-magento.html">http://davehiren.blogspot.com/2010/08/detect-product-page-in-magento.html</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.gaiterjones.com/magento-social-media-marketing-facebook-like-button/feed/</wfw:commentRss>
			<slash:comments>33</slash:comments>
		
		
			</item>
	</channel>
</rss>
