Monthly Archives: February 2010

Magento-Moving Upselling products from content to right column

A simple solution to display upselling products in right column rather than at content part by default. Follow this steps.

step 1:

go to catalog.xml

Hide this block as

<!–<block type=”catalog/product_list_upsell” name=”product.info.upsell” as=”upsell_products” template=”catalog/product/list/upsell.phtml”>
<action method=”setColumnCount”><columns>4</columns></action>
<action method=”setItemLimit”><type>upsell</type><limit>4</limit></action>
</block>–>
————————————
step 2:

Add the following code

<block type=”catalog/product_list_upsell” name=”product.info.upsell” before=”-” template=”catalog/product/list/upsellright.phtml” />

after this code
<block type=”catalog/product_list_related” name=”catalog.product.related” before=”-” template=”catalog/product/list/related.phtml”/>
————————————-

step 3:
go to catalog/product/view.phtml

then remove the following line or commend it
<?php echo $this->getChildHtml(‘upsell_products’) ?>
like this <?php //echo $this->getChildHtml(‘upsell_products’) ?>
————————————

step 4:

create upsellright.phtml in catalog/product/list folder
and paste the following code fully

<?php if(count($this->getItemCollection()->getItems())): ?>
<div class=”box base-mini mini-related-items”>
<div class=”head”>
<h4><?php echo $this->__(‘Upselling Products’) ?></h4>
</div>
<div class=”content”>

<ol>
<?php foreach($this->getItems() as $_item): ?>
<li<?php if($_item->isComposite() || !$_item->isSaleable()): ?> class=”super-products”<?php endif; ?>>
<div class=”product-images”>
<a href=”<?php echo $_item->getProductUrl()?>” style=”margin-left:0px;”><img src=”<?php echo $this->helper(‘catalog/image’)->init($_item, ‘thumbnail’)->resize(50) ?>” alt=”<?php echo $this->htmlEscape($_item->getName()) ?>” width=”50″ height=”50″ /></a>
</div>
<div class=”product-details” style=”margin-left:70px;”>
<a href=”<?php echo $_item->getProductUrl() ?>”><?php echo $this->htmlEscape($_item->getName()) ?></a>
<?php echo $this->getPriceHtml($_item, true) ?>
<?php if ($this->helper(‘wishlist’)->isAllow()) : ?>
<a href=”<?php echo $this->getAddToWishlistUrl($_item) ?>” class=”link-cart”><?php echo $this->__(‘Add to Wishlist’) ?></a>
<?php endif; ?>
</div>
</li>
<?php endforeach ?>
</ol>
</div>
</div>
<?php endif ?>
———————————
and thats all. Simple to displaying upselling products at right column.

Tags:, ,

Magento SEO

1. Basic technical optimization

1.1. General Configuration

Magento is one of the most search engine friendly e-commerce platforms straight out of the box, but there are several known issues that can be taken care of to optimize your Magento SEO. The first step is to get the most recent release, 1.2.1. Then, to get started, enable Server URL rewrites. You will find this setting under System => Configuration => Web => Search Engines Optimization. Another good thing to configure now you are on this screen is “Add store Code to Urls” under “Url Options”. In most cases it is better to set this functionality to “No”.

1.1.1. WWW vs non-WWW

Under “Unsecure” and “Secure” you can find the Base URL, where you can set the preferred domain. You can choose between the www and the non-www version of the URL. With changing the setting you don’t create a redirect from www to non-www or non-www to www but set only the preferred one. Therefore it is a good idea to create a 301 redirect through .htaccess with mod_rewrite. Besides solving the WWW vs non-WWW problem this redirect prevents Magento from adding the SID query to your URLs, like ?SID=b9c95150f7f70d6e77ad070259afa15d. Make sure the Base URL is the same as redirect. When editing the .htaccess file you can add the following code to redirect index.php to root.

RewriteBase / RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.mydomain.com/ [R=301,L]

Or, when your Magento install is not in the root but in the sub-directory

http://www.mydomain.com/magento/:

RewriteBase /magento/ RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /magento/index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.mydomain.com/magento/ [R=301,L]

1.2. Header Settings

By default your Magento install has the title “Magento Commerce”. For your Magento shop to get the traffic it deserves you should keep at your mind:

  • Search engines put more weight on the early words, so if your keywords are near the start of the page title you are more likely to rank well.
  • People scanning result pages see the early words first. If your keywords are at the start of your listing your page is more likely to get clicked on.

First of all you should get rid off the default title “Magento Commerce”. Go to Configuration => Design => HTML Head. Choose a good and descriptive title for your website. This title will be used for several non-content pages without custom title, e.g. “Contact Us” and the “Popular Search Terms”.

To add your store name to all page titles, including categories and products, put your store name in “Title Suffix”. It is a better idea to keep the Prefix empty, for the reasons mentioned above. Also keep “Default Description” and “Default Keywords” empty. For a non-production environment, to prevent indexing of the site, it may be useful to set “Default Robots” to “NOINDEX, NOFOLLOW” but for all other applications make sure it is set to “INDEX, FOLLOW”.

Now we are optimizing the <head> of your web-store pages it is a good idea to add the new canonical tag. You can install the Canonical URL’s for Magento Module to add them to your head and improve your Magento SEO.

For some reason Magento turns non-set meta robots into a meta tag in this style:

<meta name="robots" content="*" />

This can result in some very strange behavior in the search engines, so we’ll remove it. To remove this empty metas from your code install the Yoast MetaRobots Module.

1.3. CMS Pages

At first sight Magento may lack some descent CMS functionality, but for most uses it will be flexible and powerful enough. One of the benefits of this simple CMS is that you can control each aspect of the pages. Once you’ve given each CMS page some decent content, pick a SEF URL Identifier and page title, (while keeping in mind the points under 1.2), and go to the Meta Data tab to write a description for each CMS page that you actually want to rank with.

You can keep the “Keywords” empty. The description has one very important function: enticing people to click, so make sure it states what’s in the page they’re clicking towards, and that it gets their attention. Thus, the only well written description is a hand written one, and if you’re thinking of auto generating the meta description, you might as well not do anything and let the search engine control the snippet…

If you don’t use the meta description, the search engine will find the keyword searched for in your document, and automatically pick a string around that, which gives you a bolded word or two in the results page.

1.4. Category optimization

Magento gives you the ability to add the name of categories to path for product URL’s. Because Magento doesn’t support this functionality very well – it creates duplicate content issues – it is a very good idea to disable this. To do this, go to System => Configuration => Catalog => Search Engine Optimization and set “Use categories path for product URL’s to “no”.

Now it’s time to set the details for each category. Go to Catalog => Manage Categories. The most important fields are:

  • Meta Description: put an attractive description here; Keep in mind that people will see the description in the result listings of search engines.
  • Page Title: keep this empty to use the category name including parents categories. When you customize it, the title will be exactly like your input, without the parent category.
  • URL Key: try to keep a short but keyword rich URL. Removing stop words like “the”, “and”, “for” etc. is usually a good idea. Also note that you can set this only for all store views, for a multi-language store you should keep it language independent.

For each store view you can specify the Name, Description, Page Title and Meta data. For multi-language stores this is really a great feature.

1.5. Products optimization

Optimization of the Products pages is similar to Categories. An often-overlooked aspect of Magento SEO is how you handle your images. By for instance writing good alt tags for images and thinking of how you name the image files, you can get a nice bit of extra traffic from the different image search engines.
By default the images will be renamed to the product title, the same for titles and alt tags. With some extra effort you can set the titles and alt tags for each product image. Under the tab “Images” of the Product Information you can set the label for each product image, this value will be used for the alt and title tag. You can do this for each specified Store View.

2. Magento Template Optimization

2.1. Optimized Blank Template

The default Magento skins like “Default Theme”, “Blue Skin” and “Modern Theme” don’t do a very good job in the use of headings, so from an SEO perspective, there is a lot of room for improvement there. To make it easy on you, we have developed a Blank Magento SEO Theme, based on the core Magento Blank Theme, which incorporates all the things we’ve outlined below.

2.2. Headings

By default the logo is an <h1>, which is should only be on the front page, and on all other pages it should be no more than an <h3>. The most important thing is to get the title of the content in an <h1> tag, e.g. for a category page should it be the category name and for a product the product name.

The next step is to clean up the over usage of headings. It’s a good idea to get rid off the header usage in the side columns, or make the text relevant to the shop (ie. include keywords). There is no reason to add “static” and keyword less titles with an <h4>. It is, for instance, better to change all the <h4> tags in <div> to <strong> tags. Now it is time to optimize your content, at the category pages put the product names in a <h3> and the category name in a <h1>. On product pages, you should put the product name in an <h1>.

2.3. Clean up your code

All that javascript and CSS you might have in your template files, move that to external javascripts and css files, and keep your templates clean, as they’re not doing your Magento SEO any good. This makes sure your users can cache those files on first load, and search engines don’t have to download them most of the time.

2.4. Aim for speed

A very important factor in how many pages a search engine will spider on your shop each day, is how speedy your shop loads.

You can do two things to increase the speed of your Magento install:

  1. Enable caching. Go to System => Cache Management and enable all caching features.
  2. The importance of a good host and server config. With MySQL and PHP opcode cache you can improve the speed of Magento dramatically.

NOTE: there is a rumor that with the 1.3 release of Magento new functionality will be added with huge performance improvements.

Another thing to look for is the number of external files. For each file you make people download, their browser has to create another connection to the webserver. So it is a very good idea to reduce the number of external files and combine several external files into one. By default Magento already combines (almost) all javascript files into one file.

It doesn’t do this for stylesheets though: the default template has 6 different stylesheet files. You can combine the content of these stylesheets into one new one, except for the print.css file, or you can use the Fooman Speedster module. Besides combining files, this module also compresses and caches your javascript and stylesheet files. (Please note the requirements for Speedster: mod_rewrite has to be enabled & and your server needs to have .htaccess support.

3. Advanced Magento SEO and Duplicate Content

Once you have done all the basic stuff you will find the rest of the problems amount to one simple thing: duplicate content. Loads of it in fact. For products you have, at least, the following URLs with exact the same content:

  • domain.com/product.html
  • domain.com/category1/product.html
  • domain.com/catalog/product/view/id/1/
  • domain.com/catalog/product/view/id/1/category/1/

Besides that you have pages like the product review pages with almost the same content. Another problem are categories, you get a load of duplicate content with layered navigation and the sorting options. In essence that means that, worst case scenario, a product is available on 4 pages at least next to the page where it should be available.

We’re going to get rid of all those duplicate content pools, by still allowing them to be spidered but not indexed and fixing the sorting options and layered navigation for categories.

3.1. Noindex, follow for non-content pages

Install the Yoast robots meta module and make sure the settings prevent indexing of all non-content pages.

Now the search engine will follow all links on these pages but it won’t show those pages in the index.

3.2. Nofollowing unnecessary links

Another easy step to increase your Magento SEO is to stop linking to your login, checkout, wishlist, and all other non-content pages. The same goes for your RSS feeds, layered navigation, add to wishlist, add to compare etc. Still there is no plugin for Magento to work this around. You had probably have to go into your template files to add nofollow to those links by hand.

3.3. Canonical URLs

To help search engines to understand the duplicate content of your pages you can suggest the preferred version of the URL for each page, using the new canonical URL tag, so you should install the Canonical URL’s for Magento module.

3.4. XML Sitemaps

XML Sitemaps are an easy way of letting search engines know where your content is, it won’t help you rank, but it might help you get indexed faster. You can create an XML sitemap manually by going to Catalog => Google Sitemap => Add Sitemap, choosing a filename, path and store view, and then pressing “Save & Generate”.

You can then simply put the following code in your robots.txt file to point the search engines to your sitemap.xml file:

Sitemap: /sitemap.xml

As your inventory changes, you’ll have to re-generate XML sitemaps.

Tags:, , , ,

Paypal updated it’s policy due to recent regulations from Indian government

Paypal updated it’s policy due to recent regulations from Indian government. The changes in policy is effective from March 10, 2010 stated in their upcoming policy changes. Interestingly, this is not available in PayPal, India website (www.paypal.com/in), available in US website (www.paypal.com/us). Here is the list of changes:

Amendment to the PayPal User Agreement

Section 8 (Fees) of the User Agreement is amended to state that you may not send a Personal Payment to a recipient in India. Any payment sent to India must be for a Purchase Payment and will be charged the Purchase Payment fees.

Amendment to the PayPal User Agreement

The following will be added to section 11.7 (newly numbered 11.5) as an additional example of transactions not eligible for seller protection:

“Items that are not shipped to the recipient’s shipping address on the Transaction Details Page. If you originally ship the item to the shipping address on the Transaction Details Page but the item is later redirected to a different address, you will not be eligible for seller protection. We therefore recommend not using a shipping service that is controlled by the buyer.”

Amendment to Section 13 (Protection for Buyers) of the PayPal User Agreement

Section 13.3 (Eligibility of Item Purchased on eBay) has been amended. Eligibility for PayPal Buyer Protection is now based on whether the PayPal or eBay buyer protection message is included in the eBay listing. Previously eligibility had been based only on whether a PayPal Buyer Protection message was shown.

Amendment to the PayPal Student Account Agreement

1. The following language is added to section 3.c (Parent Control):

x.: “Marketing Promotions. If the Parent Account has opted-in to receiving marketing notifications in its Account Profile, then we may send such notifications to the Child as well.”

2. The following language is added to section 3.d (Child Control):

x.: “Marketing Promotions. The Student may participate in marketing promotions or campaigns offered from time to time.”

3. The last paragraph of section 4 (Liability) will read:

“Any online agreements that are accepted by the Child, including terms and conditions of any promotion the Child participates in, are accepted by the Parent as if the Parent had taken the action. The Parent is responsible for educating the Child on internet safety.”

Amendment to the PayPal Acceptable Use Policy

Beginning March 10, 2010 the PayPal Acceptable Use Policy is being amended under the Activities Requiring Approval section to add airlines and scheduled or non-scheduled charters/jets/air taxi operators as services that require pre-approval.

Source: https://cms.paypal.com/us/cgi-bin/?&cmd=_render-content&content_ID=ua/upcoming_policies_full&locale.x=en_US

Tags:, , , ,

Immediate things to do – PayPal Halts Personal Payment Transactions From And To India

We can do what we can do which we can, things can not be done/improved which is out of our control at the moment.

Objective to anyone: Keep our business run (Do not spend much time in worrying, use the time effectively into productive).

What We can Do:

  • Use Buy Now buttons/Billing system to get the funds. This will not be reversed. (But do not initiate withdrawal of funds using Bank accounts until you come to know the withdrawal problems with RBI are solved)
  • Importantly, arrange funds to live your life this month, assuming you will get your money at the end of this month, also prepare the backup plan for next month.
  • Start keep contacting the clients to whom the money is sent back, get in touch with them, explain the situation, create a buy now buttons for them, ask them to make the payment such way. (In this case only, you will come to know what the client situation exactly now, are they willing to pay back (do not run away), whether they got the funds back etc). It is your responsibility to keep in touch with your customers, keep updated them about the issue, they should not be in a confused state. Now, most of our customers (to whom the money was sent), feels we, Indians are not good enough, doing personal business which are not legal, for that reason, PayPal is doing such things. We need to talk to the client & explain, we are legal, doing business in a good manner, saying, this is the glitch with PayPal. This will ensure the customer confidence on your business. (No one realizes indirectly it affects our customers confidence, trust towards our services). Because, they are from US/UK/somewhere, they do not have any problem with PayPal. so, they may think, we are not doing good.
  • Funds withdrawal: All the withdrawals are reversed to PayPal account at the moment. You can initiate a withdrawal using “eCheck option”. This is valid & you can get your money. Please note that “You can’t encash your payment directly. You need to deposit into your account & collect them”. This process will take 8-10 days completely.
  • Also try to promote the issue “PayPal holds our money, deposited into our account that is worth of millions”, not the issue ‘PayPal do the reversals’. The way media looks/projects two issues in a different way (If you say Someone ICICI/SBI/PayPal do not give us the money that is in our account, holds all the customers money due to their glitch, the total amount is worth of 1K crores, definitely, the media will turn their attention.) If We talk about reversals, the media will feel, it is happening within the bank policy changes, that we can’t do much. Promote “PayPal holds 1K crores & not responding to the customers”, it will certainly get the attention of media.

What we can’t do:

  • Reversals are happening (note that the reversal time taken depends on the queue in the system & the timezone of the payment made). This is not the fault in the PayPal system. PayPal officially do this without any announcement. No matter whether it is business/premier/personal accounts,if you are from India, it happens. No matter which method you use (Service, goods, eBay, shipping address etc). The only thing the reversal do not happen is “if the payment made using Buy now buttons/billing system”.
  • All the withdrawal initiated after Jan 28th is on hold by PayPal India. The funds are cleared from PayPal US & arrived to PayPal India. Due to the problem between RBI & PayPal India regarding, PayPal India can’t transfer the funds to customers account using NEFT. (This is how PayPal withdraw works: PayPal US releases the funds to PayPal India using Federal Bank in US. As soon as it is done, “the status will be changed automatically to “Completed”. This will take 24 hours maximum. PayPal India releases the funds using NEFT to corresponding Indian banks). The reason of Jan 28/29/30/31 are delayed is, they arrived to PayPal India on or before 31st. But, due to holidays of 30th & 31st, unfortunately, they can’t process on Feb 1st which is the official date of RBI to stop such processes. Update: All the funds are reversed back to PayPal account.
Tags:, , , , ,