Setting Up Magento: So you want a REAL store and not a demo?

Last modified by golden_twinkles on Sat, August 18, 2012 06:51
Source|Old Revisions  

This is an old revision of the document!

Unfortunately, Magento is not a turnkey solution. Out of the box, Magento is a demo. Your site and emails are, by default, splattered with references to “demo store”, which is sure to uninspire confidence with your customers.

This article is a rough attempt at documenting everything that is required to remove the “Demo” references, and get a store production ready. If you find any mistakes, feel free to correct them.

Magento has come a long way in this regard since the original posting of this article. Magento 1.4 fixes the worst of the original issues. As a result, only Magento 1.4 (and above) are covered by this article now.

Eventually, this article can (and SHOULD) be eliminated. I’ve included a roadmap at the end listing what is required for this to happen.

Installing Magento

This article covers the post-installation setup, not the installation itself. Magento installation is covered sufficiently in Chapter 2 of The Magento User's Guide. If you haven’t installed Magento yet, you will need to do that first.

Initial Configuration Changes

There is no shortage of information on setting up your configuration, so this article mostly ignores that. You should really go through each item, one by one, and decide what you want. This is just a checklist of places you should MAKE SURE are properly configured, so you don’t get embarrassed:

  • System
    • Permissions: Make sure that you have users set up for anybody that should be allowed to access the admin area. Click here for help with this.
    • Config
      • General→Store Information: This information is used in some subtle places, like emails.
      • Web→Url Options→Redirect to Base URL if requested URL doesn’t match it: This is a new option in 1.4, and it makes sense. Unfortunately, it seems to work incorrectly causing otherwise functional URLs to inexplicably redirect to the home page, usually because the “www-ness” didn’t match your configuration. Set this to “No” until it is fixed. (It seems to be an .htaccess thing)
      • Web→Secure→Base URL: Make absolutely certain that you are using HTTPS before you make your site publicly available. You will need an SSL certificate for this. Talk to your web guy if you need help with that.
      • General→Design: Everything in the HTML Head, Header, and Footer sections.
        • Make sure that “Display demo store notice” is set to “No”
      • General→Store Email Addresses
        • Ensure that the emails are set for General, Sales, and Customer.
        • Make sure that the email addresses exist, and can receive emails.
      • General→Contacts: You will likely want to disable the Contact Us page, unless the store is your entire site. If you don’t disable it, make sure the email address works.
      • Customer→Customer Configuration→Create New Account Options: Make sure that the default email domain is set to your domain.
      • Sales→Sales→Invoice and Packing Slip Design: Make sure you have YOUR address in there.
      • Sales→Tax: Check everything to make sure it is right for your country.
      • Sales→Shipping Settings→Origin: Make sure this uses YOUR location
      • Sales→Shipping Methods: Make sure you set up a method, and have it properly configured. The default (flat rate) might work for some people, but if you take that route, you probably want to change the amount to something more business like (for example, $6.95.)
        • If you changed shipping methods, test it to make sure everything works as expected.
      • Sales→Google API: It is most likely that you want to enable Google Analytics. If you don’t know what this is, Google it, use it, love it.
      • Sales→Payment Methods: Make sure you select something other than the default, and configure it. You will most likely need to get one of the modules from Magento Connect.
        • Make sure your payment method is properly tested by running at least 1 test transaction.
        • After testing, make sure that your payment method is NOT in debug mode. Some (most?) processing modules will drop the payment if it is in debug or test mode.

Disable Likely Useless modules

In the admin configuration, the ADVANCED tab under ADVANCED, you might want to turn off module output for the following things:

  • Mage_Newsletter : Newsletter
  • Mage_Poll : Poll

Cron Jobs

If you are using any feature that functions at intervals, you will need to make sure your cron jobs are set up. First, change the settings in System→Configuration→Advanced→System. Next, set up the cron job on your server. How (and if) you can do this depends on where your store is hosted.

More details on cron jobs, how they work, and how to set them up can be found in How to Setup a Cron Job.

Terms and Conditions

It is likely that you will need to ensure your customers agree to your Terms and Conditions before you take their money.

First, go to System→Config→Sales→Checkout→Checkout Options and enable the Terms and Conditions.

Second, go to Sales→Terms and Conditions. Add a new condition. Everything is fairly straightforward except for the Content Height. If you put the full text of your terms and conditions in here, leave it alone. If your “content” was only a link to the place on your site where you keep terms and conditions, you will want to set the height to ‘1.2em’.

Eliminating Magento Logos

You will want to use your logo in the emails and elsewhere, not the Magento logo. To do this right, you will need to create your own skin. For now this skin is really basic.

  • Open your FTP client, or whatever you use to manipulate files on your server.
  • Go to store/skin/frontend/default.
  • Add a new folder and give it the name of your skin
  • Inside your new folder
    • Add your own favicon. (Add an icon file with your logo. It should be named favicon.ico)
    • Add a sub-folder named images
      • In the images folder add your logo. You will need your logo for each of the following files:
        • logo.gif
        • logo_email.gif
        • logo_print.gif
      • Replace the so called “No Picture” images with something that doesn’t include the Magento logo. These images are:
        • catalog/products/placeholder/image.jpg
        • catalog/products/placeholder/small_image.jpg
        • catalog/products/placeholder/thumnbail.jpg
  • Go to System→Configuration→General→Design→Themes and change skin to the name you used for the folder. This is usually case sensitive, so be careful. Remember to save your changes.
  • Go to System→Cache Management. Next to “All Cache” select “Refresh” and click “Save Cache Settings”.

Real Emails

Emails are one of those places that took a giant leap forward in 1.4. If you need help with earlier versions of Magento, instructions are visible in the history of this article. You should still review the email content to make sure you like all the default emails.

To view and/or edit your templates, go to Admin > System > Transactional Emails. Click ‘Add new template’ and you will be able to load, modify, and save any email templates you need.

If you save any modified templates, you will need to set the proper configuration options. Go to System→Configuration. Here you will point various options to the new email templates. Here is a list of emails you may be likely to change:

  • Customers→Newsletter
    • Unsubscription Email Template = Newsletter unsubscription success
    • Success Email Template = Newsletter subscription success
    • Confirmation Email Template = Newsletter subscription confirmation (This email has a reference to demo store in Jun 10, 2010)
  • Customer→Customer Configuration
    • Create New Account Options
      • Default Welcome Email = New account
      • Confirmation Link Email = New account confirmation key (This email has a reference to demo store in Jun 10, 2010)
      • Welcome Email = New account confirmed
    • Password Options
      • Forgot Email Template = New password (This email has a reference to demo store in Jun 10, 2010)
  • Customer→Wishlist
    • Share Options
      • Email Template = Share Wishlist (This email has a reference to demo store in 02/06/10)
  • Sales→Emails
    • Order
      • New Order Confirmation Template = New Order (This email has a reference to store hours in PST time in Jun 10, 2010)
      • New Order Confirmation Template For Guest = New Order For Guest
    • Order Comments
      • Order Comment Email Template = Order Update
      • Order Comment Email Template For Guest = Order Update For Guest
    • Invoice
      • Invoice Email Template = New Invoice
      • Invoice Email Template For Guest = New Invoice For Guest
    • Invoice Comments
      • Invoice Comment Email Template = Invoice Update
      • Invoice Comment Email Template For Guest = Invoice Update For Guest
    • Shipment
      • Shipment Email Template = New Shipment
      • Shipment Email Template For Guest = New Shipment For Guest
    • Shipment Comments
      • Shipment Comment Email Template = Shipment Update
      • Shipment Comment Email Template For Guest = Shipment Update For Guest
    • Credit Memo
      • Credit Memo Email Template = New Credit Memo
      • Credit Memo Email Template For Guest = New Credit Memo For Guest
    • Credit Memo Comments
      • Credit Memo Comment Email Template = Credit Memo Update
      • Credit Memo Comment Email Template For Guest = Credit Memo Update For Guest

A Real Home Page

The default home page is...empty. This is likely not what you want for your customers, so we’ll make a quick change.

[N/A after version 1.1 for community] First, go to System→Magento Connect→Magento Connect Manager. Log in, and install the Bestsellers Module (visit the link to get the extension key.)1)

Next, go to System→Configuration→Catalog→Bestsellers. Change the number of displayed products to something appropriate, like 6, and the list mode to list. Grid mode can also be made to work right, but it requires either a 3 column layout, or some theme hacking.

Now, go to CMS→Manage Pages. Click the entry with the identifier “home”. Switch to the Custom Design tab, and set the Layout Update XML to:

  1. <reference name="content">
  2.   <block type="bestsellers/list" name="home.bestsellers.list" alias="product_homepage" template="catalog/product/list.phtml"/>
  3.   <!--
  4.   <block type="catalog/product_new" name="" alias="product_new" template="catalog/product/new.phtml" after="cms_page">
  5.     <action method="addPriceBlockType">
  6.       <type>bundle</type>
  7.       <block>bundle/catalog_product_price</block>
  8.       <template>bundle/catalog/product/price.phtml</template>
  9.     </action>
  10.   </block>
  11.   -->
  12.   <block type="reports/product_viewed" name="home.reports.product.viewed" alias="product_viewed" template="reports/home_product_viewed.phtml" after="product_new">
  13.     <action method="addPriceBlockType">
  14.       <type>bundle</type>
  15.       <block>bundle/catalog_product_price</block>
  16.       <template>bundle/catalog/product/price.phtml</template>
  17.     </action>
  18.   </block>
  19.   <block type="reports/product_compared" name="home.reports.product.compared" template="reports/home_product_compared.phtml" after="product_viewed">
  20.     <action method="addPriceBlockType">
  21.       <type>bundle</type>
  22.       <block>bundle/catalog_product_price</block>
  23.       <template>bundle/catalog/product/price.phtml</template>
  24.     </action>
  25.   </block>
  26. </reference>
  28. <reference name="right">
  29.   <action method="unsetChild">
  30.     <alias>right.reports.product.viewed</alias>
  31.   </action>
  32.   <action method="unsetChild">
  33.     <alias>right.reports.product.compared</alias>
  34.   </action>
  35. </reference>

Lastly, seed your home page with a dummy order containing anything you need to show up. If you prefer, you can use the most viewed products mod instead, and seed it by viewing a few products.

An alternative way to get content onto the home page quickly is to simply point the Default Web URL for your site to the product category or product you most want people to see. Find the URL you want (for example, from the Catalog→URL Rewrite Management page) then enter it in System→Configuration→Web→Default Pages→Default Web URL. Check that the Current Configuration Scope at the top left is set to the site you want to change, and press Save Config.

And another alternative, check out, A very simple tutorial on this very issue.

Unleash the Dog (A.K.A. No More School)

First, the easy part. The 404 error page has a block that we don’t want. Just like with the home page, go to CMS→Manage Pages. Select the entry with the identifier “no-route”. Remove the following line from the end of the content: <p><img src=”404_callout1.jpg” style=”margin-right:15px;”/><img src=”404_callout2.jpg” /></p>

Now for the hard part. To do this right, you will need to create a new layout. (This is a simplistic example. Most sites will want their own theme. See Designing for Magento for a full tutorial on good Magento themes.)

  • Open your FTP client, or whatever you use to manipulate files on your server.
  • Go to store/app/design/frontend/default.
  • Add a new folder and give it the same name you gave your skin
  • Add a subfolder named layout
  • Create a new file named local.xml
  • Open local.xml in notepad
  • paste the following into notepad:
  1.       <?xml version="1.0" encoding="UTF-8"?>
  2.       <layout>
  3.           <default>
  4.               <remove name="right.permanent.callout"/>
  5.               <remove name="left.permanent.callout"/>
  6.           </default>
  7.       </layout>
  • Save the edited file in notepad
  • Use your FTP editor to send local.xml up to the server. (Place it in your new layout directory.)
  • Go to System→Configuration→General→Design→Themes and change layout to the name you used for the folder. This is likely case sensitive, so be careful. Remember to save your changes.
  • Go to System→Cache Management. Next to “All Cache” select “Refresh” and click “Save Cache Settings”.

Error on the 404

Earlier versions of this article completely missed a major instance of the “Magento Demo Store.” Imagine my horror when I found this on the 404 error page after our own store had been live over two months! Fortunately, you need not go through the embarrassment of having a customer report the problem to you. From CMS→Manage Pages you can reach the 404 error page (we did this for the dog, remember?) You’ll want to revise the last half of the text to match your specific site’s needs. Make sure to hit save after making your changes.

Community Poll

Last, but not least, there is a Community Poll which has nothing to do with anything, and needs serious revision or removal.

Go to CMS→Poll Manager and click on the poll you see there. Delete the poll. If you DO have a substantial question to ask your visitors, go ahead and create a new one; but, deleting the old one first will remove the temptation to emulate it, ensuring that your new poll doesn’t feel canned.

More Test Data to Remove

  • Tags [Catalog → Tags]: Even if you remove all the products in the store, the associated tags remain. Simply go to Catalog → Tags in the admin, select all and perform the DELETE mass action (on the right).
  • Searches [Catalog → Search]: These are probably search results irrelevant to your store.

How This Tiresome Process Can Be Avoided

I believe this article should be obsolete. To eliminate it, the following additional features/fixes/changes would be needed in Magento

  • A single System→Configuration pane with all of the vital options mentioned here. This pane should be called Quick Setup, or something similar.
  • Adequately detect when one of the vital items mentioned has not been changed, and warning the user in the admin area. This is already done with a few things, but there is no concern for most of the stuff that would be embarrassing if missed.
  • Integrating bestseller or similar functionality into the home page by default. Alternatives would include most viewed products, an option to “Show this product on the home page” or including the contents of the root category in the default home page template. The use of New Products was an interesting idea, but it fails miserably when all or none of the products are “new” which is common in most small and/or new stores.
  • Remove the dog and “Back to School” from the default template. Place them in a demo template instead. You could still install the store so it uses the demo template until you change it (and warn them if they haven’t), but at least it would be much easier to remove them. After all, they look great, but nobody will want them in a production store.
1) This module is not supported any more. Please, take look to Enterprise version of this module