Magento

First Impressions
The first impression of Magento is of a very clean very modern website. The first few versions (1.0,1.1 and 1.2) were quite slow in their page load times, but this is something that has been addressed with the 1.3 release. The functionally is absolutely superb, its easily customizable, FREE, SEO friendly and looks great.

There is quite a following on the internet for Magento, the Magento website has lots of useful information on it and some great extensions. If you cant find anything on the site then Google it!!

Introduction
Magento is an Open Source e-commerce platform that i found about 8 months ago. I have been very impressed with what i have seen on the website http://www.magentocommerce.com and the features that Magento has to offer. Before going live i have run Magento on both our test server 'in house' and also on our test Vhost at Positive Internet.

Requirements
* Supported Operating Systems: o Linux x86, x86-64 * Supported Web Servers: o Apache 1.3.x         o Apache 2.0.x          o Apache 2.2.x    * Supported Browsers: o Microsoft Internet Explorer 6 and above o Mozilla Firefox 2.0 and above o Apple Safari 2.x         o Google Chrome o Adobe Flash browser plug-in should be installed * PHP Compatibility: o 5.2.0 and above o Required extensions: + PDO_MySQL + simplexml + mcrypt + hash + GD               + DOM + iconv + SOAP (if Webservices API is to be used) o Safe_mode off o Memory_limit 32M or more * MySQL: o 4.1.20 or newer o InnoDB storage engine * SSL: o If HTTPS is used to work in the admin, SSL certificate should be valid. Self-signed SSL certificates are not supported * Server - hosting - setup: o Ability to run scheduled jobs (crontab) with PHP 5 o Ability to override options in .htaccess files

HOWTO: Fix Incorrect Pages Or Not Loading When Moving Server IP Address
Update the magento.core_config_data rows...

update magento.core_config_data set value = 'http://192.168.0.103/magento/' where config_id = '4'; update magento.core_config_data set value = 'http://192.168.0.103/magento/' where config_id = '5';

Delete the Magento Cache files...

sudo rm -rf /var/www/magento/var/cache/*

HOWTO: Move To Another Server
http://www.magentocommerce.com/wiki/groups/227/moving_magento_to_another_server

HOWTO: Fix Error: pdo_mysql missing
sudo aptitude install -y php5-mysql

HOWTO: Fix Possible Error: pdo + mysql
To anyone having problems with this ensure that the following library is installed:

libmysqlclient15-dev

via:

sudo apt-get install libmysqlclient15-dev

Then use:

sudo apt-get install pdo_mysql

Without the 'libmysqlclient15-dev' library you'll have problems with pdo.

Found these pages to be quite helpful:

http://pecl.php.net/bugs/bug.php?id=12141 http://ubuntuforums.org/showthread.php?t=474152

HOWTO: Fix: Cannot initialize the indexer process
http://dltr.org/blog/magento/114/magento-index-management-Cannot-initialize-the-indexer-process

HOWTO: Fix: Warning: Your Magento folder does not have sufficient write permissions
chown -R ftpuser:www-data www/

root@server:/var/www# ll drwxrwxr-x 5 ftpuser www-data 4.0K Sep 12 12:54. drwxr-xr-x 15 root   root     4.0K Sep 12 12:07 .. drwxrwxr-x 13 ftpuser www-data 4.0K Aug 12 10:33 magento -rw-r--r-- 1 ftpuser www-data   23 Jul 19 12:24 phpinfo.php

root@server:/var/www# grep 'www-data' /etc/apache2/envvars export APACHE_RUN_USER=www-data export APACHE_RUN_GROUP=www-data

http://stackoverflow.com/questions/16097724/warning-your-magento-folder-does-not-have-sufficient-write-permissions

Web Site Links
http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/installing_magento_ubuntu_9.04_server

http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/installing_magento_via_shell_ssh

http://ubuntuforums.org/showthread.php?t=1973005

http://davidtsadler.com/archives/2012/06/03/how-to-install-magento-on-ubuntu/

NEW: Installation Via PEAR
Version 1.8.0

October 2013

http://bit.ly/169sJqz

Pre Installation
Magento requires quite a few things from the server that it is loaded onto. To check that the server that you are going to us has the correct features installed follow this link (http://www.magentocommerce.com/knowledge-base/entry/how-do-i-know-if-my-server-is-compatible-with-magento), download the file to your desktop, then upload it to your webserver and navigate to the file. It will then return a page that shows what you have and what you need.

Once you have all of the correct features installed then move on....

Installation Via SSH
I used a program called Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/) to log into my sever via SSH

There is a very good installation guide on the Magento website that is updated every time they make a new release (http://www.magentocommerce.com/wiki/groups/227/installing_magento_via_shell_ssh)

There are so many things that can be done with Magento it is hard to know where to begin.....

Installation Via FTP / Web Interface
Here is the official guide to setting Magento up via FTP. Has worked for me when i have used it )http://www.magentocommerce.com/knowledge-base/entry/magento-installation-guide) When prompted to put in the BASE URL make sure you put http://www.yourdomain.com where yourdomain is your domain name

Configuration
The first thing to do is to do into the backend and get your settings correct. These setting will be for your default config ( shown in the top left) as and when you add more sites on this installation you can make changes to the settings in individual sites rather than all sites. It also means that new sites will take the default config settings until you change them to new settings.

So click on System | Configuration. Below you will see what values i suggest using.

User Guide
Community Edition 1.7 - http://info.magento.com/rs/magentocommerce/images/Magento_Community_1-7_User_Guide.pdf

General

 * Countries Options

Default Country - Select the country that you business is in Allow Countries - Here select all of the countries that you will ship to. To select more than one click and hold CTRL


 * Locale Options

Timezone - Select your timezone Locale - Select your Language First Day of the Week - Select your first day of the week. Normally Monday Weekend Days - Sunday and Saturday should already be selected

Web
I have changed nothing in this section to date.

Design

 * Package

Current Package Name - Here i have just left default


 * Themes

These are all blank for now but as you will ready further down this is where you can change the look of the site.


 * HTML Head

Change all the details to fit your company.


 * Header

Logo - Leave this as is for now, we can change this to your logo later. Logo Image Alt - Change to your company name Welcome Text - This will appear above the links to My Account | My Wishlist | My Cart | Checkout | Login   on your hompage.


 * Footer

Copyright - Change for your own websites copyright infomation Miscellaneous HTML - Im yet to use this so do not know what it is.


 * Product Image Watermark

Again this all looks pretty straight forward but is not something that i have wanted to use yet.

Currency Set Up

 * Currency Options

Base Currency - Chose your local currency Default Display Currency - Choose what you would like to show on your site, should be same as above Allowed Currencies - Not something that i have used yet.


 * Webservicex

This relates to the section below - Scheduled Import Settings


 * Scheduled Import Settings

This is if you are going to be using multiple currencies. It will automatically update the prices on your website based on the exchange rate. Not something i have used yet but very interesting.

Store E-mail Addresses
This is all pretty self explanatory.

Contacts

 * Contact Us

I have set this to yes


 * E-mail Options

Send E-mail To - Input here where you would like the e-mail to go when people fill in the contact us form on the website E-mail Sender - Your customer will also receive a copy of the e-mail, input here where you would like it to show as coming from E-mail Template - Leave as Default

HOWTO: Import Products
http://www.siteground.com/tutorials/magento/import-products.htm

http://www.magentocommerce.com/knowledge-base/entry/tutorial-using-magentos-import-export-profiles

http://www.magentocommerce.com/wiki/3_-_store_setup_and_management/import_export/export_tool

HOWTO: Change Label for SKU Variable
admin > catalogue > attributes > manage attributes

http://www.magentocommerce.com/boards/viewthread/5779/

HOWTO: Show Stock Level Quantity
http://www.woolleydesign.net/wp-content/uploads/downloads/2012/06/default.txt

http://www.woolleydesign.net/2012/06/magento-show-inventory-levels-on-product-pages/

Catalog

 * Product Reviews

I have not changed anything in this section to date as it all seems sensible so far.

Inventory
Again these are all self explanatory options so i have not changed any of them. Some you might like to change if you accept back order or if you do not want the stock to decrease if somebody places and order.

Google Sitemap
These options will affect how your google sitemap is generated later in the piece, i have left them all as is for now.

RSS Feeds
Not something that we have used yet, but something that i will get into sometime.

E-mail to a Friend
The only setting i have changed here is the Allow for Guests Setting which i have changed to Yes so that guests can sent e-mails to friends as well.

Newsletter
The only value i have changed it the e-mail address where the unsubscribe e-mail goes to. This is the top drop down box.

Customer Config
Nothing to change here for me

Wishlist
Leave all as is

Sales

 * Checkout Total Sort Order

Here you can select which values will appear higher up on the bottom of your invoices. The small the number in the boxes shown here the higher it will appear.


 * Invoice and Packing Slip Design

Here upload your logo using the specified sizes to appear on your invoices. Also input your address for the invoices.

Sales E-mails
This section details where different pieces of paper work will be e-mailed to. I have left them all as they are apart from the Order section where i have added a BCC to my Imap account that is synced to my iPhone so i know when we received orders.

PDF Printouts
I have left all 3 as yes as it seems a bit silly to change them to no.

Tax

 * Calculation

Catalog Prices include tax - here i have changed to yes as our prices on the site will be VAT inclusive.


 * Default Tax Origin

Country - Change to your country Post Code - Enter your postcode


 * Display

Display Cart / Order Prices - I have selected invluding tax otherwise it gets complicated for the consumers Dispaly full tax summary - This i have not tested yet. Display Shipping Prices - Again including tax to save confusing Display Product Prices - Again including tax to save confusing Display Zero Tax Subtotal - No

Checkout

 * Checkout Options

Disable Onepage Checkout - I have left at no for now Allow Guest Checkouts - If people do not need to register to buy things from you then leave this as yes Enable Terms and Conditions - Left as no, need to experiment with this one.


 * Shopping Cart

Left all as is


 * My Cart Link

Left all as is


 * Shopping Cart Sidebar

If you want the shopping cart to show in the sidebar so that customers can see what they have bought then leave as yet. I have set it to they see the last 5 products placed in the basket.


 * Payment Failed E-mails

Left all as is

Shipping Settings

 * Origin

Change details to your own


 * Options

If you can ship to multiple address's then select yes, if not then no

Shipping Methods

 * Flat Rate

Use this if you offer a flat rate shipping charge on all orders.

Enabled - Yes Title - You can change this if you want to something like standard shipping Method Name - fixed Type - Select if it is per order or per item. Price - enter the cost for shipping Calculate Handling fee - if you have a handling fee enter here how it is worked out handling fee - relates to the above drop down box. Display error Message - Change error message to your own Ship to applicable coutries - select which countries this option should be allowed to. Sort Order - If you are using more than one shipping method then put a number here. The lowest will appear at the top, largest at the bottom


 * Free Shipping

Enabled - Yes, only if you offer free shipping Title - Free shipping Method - Free Min Order Amount - Enter the minimum order amount that a customer has to order to get free shipping Countries - Select the countries that this applies to.

We do not use any of the other couriers so we have not played with this.

Google API

 * Google Analytics

Enable - Select yes if you have got an account with google. If not then http://www.google.com/analytics Account No. - here enter your google analytics code.


 * Google Base

Account login - google account login account password - google account password target country - your country update google base items when product is updated- yes

I have not yet tried any of the other Google bits, but checkout is something that i need to try.

PayPal Accounts
If you are going to be using paypal for payments then this is where you need to enter your details. Again we are not using this yet, but will try it soon.

Payment Methods

 * Saved CC

You can fill this lot in if you are happy with saving peoples data on your server. I have opted not to do this.


 * Zero Subtotal Checkout

Enabled - no

No need for this option in our business


 * Check / Money Order

Enabled - yes Title - Cheque New order status - left as pending so that we can change when we received the cheque. Payment allowed - all countries Make cheque payable to - your business name Address - your business address minimum order total - if you wont accept cheques below a certain value then change this.

If you want to use any of the other payment options then fill the details in for the relevant option.

You can also install other payment extensions. I will install SagePay later.

Magento Core API
left alone

Admin
Left all as is. If you want to show a different page than the dashboard when you log into Magento then you can select it here.

System

 * Currency - Select the currencies that you want to use.

Advanced
Left as is

Developer
Left all as is.

Right....now that the main settings are all done in the back end we can look at the more interesting bits.

Home Page
If you navigate to your home page as it is at the moment you will see that you have 4 boxes on the right, My Cart, Compare Products, back to School Image and a Poll.

Default Message
How to get rid of the default message above the links My Cart ect on the home page.

Navigate to  System | Configuration then to General | Design  and then to Hears. Here you can change the Welcom Text which is what shows up in your header. I have chosen just to delete this text.

Polls
The poll is not something that i want on my site so i need to remove it, easy.

Go into the backend and click on CMS | Poll manager here you will see the poll that is showing up on the website. Simply double click on the poll and then click delete in the top right and it will disappear. On the flip side if you would like to add a poll then here is where you can add a customized poll.

Home Page Look
It might be that you want these boxes on the right on your front page. I don't so i am going to get rid of them and then create my own front page in Dreamweaver. So in the backend select CMS | Manage Pages  then select Home Page. Here we can do what we like with the home page between the header and the footer.

General Info

 * Page Title

Change this to whatever you want it to be for your site, this will show in the very top bar of your browser.


 * SEF URL Identifier

I have left this as home as this seems quite sensible


 * Status

Here you can enable and disable pages, for the home page i would not need this but as you will see later on we will use it for other pages.


 * Contact

here you can add whatever html you want to make the page look the way you want it to. Take a look around the web to see what other people have done to get some ideas on what to do here.

Custom Design

 * Custom Theme

Left this as please select. Later on this could be used to change the home page look but no other page look if you were looking for a christmasy theme or so on.


 * Custom Theme From and To

You can automatically set the custom theme to work between certain dates which is very handy. It means you can plan for special season events months in advance and not forget to implement them. It also means you can test new pages online and then change back to default if there is a problem.


 * Layout

Now this is where we get rid of the boxes on the right of the home page.

2 columns with right bar - this means your html will appear on the left and the boxes stay on the right 2 columns with left bar - this means your html will appear on the right and on the left you will get a picture link box and a newsletter subscription box 3 columns - your html appears in the middle and then you get all the boxes either side. 1 column - your html takes up the full width of the site - THIS IS THE OPTION I HAVE GONE WITH SO I CAN FULLY CUSTOMIZE MY HOME PAGE.

You can of course control what appears in the right and left boxes if you want to, you will find the files you need to change in app/design/frontend/default/default/template/page

Meta Data
Self explanatory. Fill in keywords that you would use for your site and also a description.

Page View Optimization
Not something i have yet played with

About Us
To edit the about us page click CMS | Manage Pages  and then it is the same as the home page above to configure.

If you do change the identifier for the about us page then you will need to go into CMS | Static Blocks and change the link in the footer so that it works rather than sending you to a 404 Not Found Page.

404
Here you can alter the look of your 404 page the same as about us and home page.

Customer Service
Here you can alter the look of your customer service page the same as about us and home page.

Finding the right file to edit im magento can be a bit of an ass with so may folders and so many files to go through, but there is a nifty little button to help....

Backend

System | Confirguration

In the top left select Default Store View then clock developer at the bottom of the page then debug then untick the boxes that say template hints and add block names to hints and change to say yes. Then save. Now look at your front page and it will show you were every file is!!.

Magento Connect
Personally this is one of the things that i think makes Magento so much better than any other E commerce platform out there at the moment that i have seen. There is so much functionality with Magento before you even look at extensions.

I did have some trouble getting the Downloader working to start with because of a permissions issue. If you are going to use the web based Magento Connect then all folders need to have write permissions. These 2 links will tell you all you need to know about installing extensions:

http://www.magentocommerce.com/knowledge-base/entry/magento-installation-guide

http://www.magentocommerce.com/wiki/magento_filesystem_permissions

Recommended Extensions
There are a few extensions that i find very very useful, i have not as yet bought any extensions so these are all FREE extensions. Please follow the links below for full descriptions and download keys.

Delete Orders

http://www.magentocommerce.com/extension/873/delete-orders

This is fantastic because it means you can make all the test orders you like and then just get rid of them when you are finished ready for a fresh start.

SagePay

http://www.magentocommerce.com/extension/163/protx-direct-payment-module

SagePay used to be called Protx and are the payment solution that we have chosen (along with PayPal and hopefully google checkout) I believe there is some config work to do to get this working but i will update this wiki with how i get on when the time comes.

Blue Skin

http://www.magentocommerce.com/extension/519/blue-skin

A lovely looking Skin. I have tinkered with our a lot to make it look different, but still a very good base to work from.

Auto Cross Sell

http://www.magentocommerce.com/extension/524/auto-crosssell-products

I have just install this on our test server. This could save hours!!!!

Setting Up Products
It took rather a while to figure our how this all worked to be quite honest. It was rather frustrating, but when i had found the right wiki to look at it all made sense.

First of all lets go into System | Confirguration  and then manage stores.

Here we need to change a few things.

Under website name click on the link and change the name of your site.

Under Store Name do the same thing. You can leave the default category as is if you want but i have had some problems with this. So it is best to follow the steps below to create a Root Category and then change the drop down in the box to YOUR NEW ROOT CATEGORY.

Categories
Click Catalog in the backend and then Manage Categories.

Root Categories
Click on New Root Category in the top left and then fill in all of the details on the right. Once you have done this i would go back into System | Managed Store and click on the middle link and change the drop down box to your new ROOT CATEGORY.

Product Category
To great a product category under your root category simply click on your root category and then click new sub category in the top left, again fill in the details. Change enable to yes and then look at your home page and you will see your first product category appear at the top. Now add more and you will see them appear. You can also add sub categories to these to break down the products in that section.

Products
So setting up a product can take ages to start with because you need to make sure that you have all the right information in your first product and then from this we can import products via a spreadsheet.

Tax
This is quite tricky to get set up right. To be honest im not sure how i have managed it but i have. The following links might give you some help.

I will work out how i did it and then put pen to paper so to speak.

http://www.magentocommerce.com/knowledge-base/entry/what-are-tax-rules-and-how-do-i-use-them http://www.magentocommerce.com/knowledge-base/entry/how-do-i-define-tax-rates-per-product-tax-rules/

Right just found one thing which had me baffled for a while. I had set up the tax rules and then tried a test order but when i put the product in and then a shipping adress inside the UK it did not like it, it would take the tax off. The reason why....in the tax rule i had filled in the Postcode box which meant that only delivers to that postcode would be taxed. make sure you leave this as a * so that it works for all postcodes in your chosen country!

Creating a New User
To create a new user you click System | Permissions | Users

here you can add the details about new users, on the left the second tab says User Roles. This is addressed below

User Permissions
To set the user permissions you now need to click System | Permissions | Roles

Here you can create new role classes. So somebody you only want to allow to input order all you would lick would be the sales boxes so that they cannot do anything else. This way they cannot corrupt the data in other parts of the system.

Once you have selected the roles that you want go back to System | Permissions | Users and set each users permissions profile.

Forgot Passwords
http://www.magentocommerce.com/boards/viewthread/40405/

Log In Issues
After creating permissions and users I managed to get rid of the admin role, which meant that i could log in with the limited accounts but not as an admin so I couldn't do any config work. So to get round this your have to log into your MySql database and change some files.

The first you need to change is the admin_user file. Here you need to add a new user.

These are the details that you need:

The fist number is automatically assigned. Then First Name, Surname, E-mail ,Username, Password, Date of Creating of Account.

4 	Paul  	Smith     paul@yourdomain.co.uk   paully    password  2009-05-12 09:52:50  	2009-05-12 09:52:50  	2009-05-12 08:56:00  	1  	0  	1  	NULL

Now you need to access the table admin_role

Insert a new line with the following details.

The first number is role_id, this is automatically generated. Parent ID is reference to the group that you want that user to be a member of. So in this case the role_ide for Administrator is 1. So the parent_id for Paul will need to be 1. Tree level i have found that 2 works. Sort order leave as 0. role_type is set to U = user ( G = group ) then the role_name is the first name of the person in the admin_user file above, in this case Paul.

role_id 	parent_id 	tree_level 	sort_order 	role_type 	user_id 	role_name 1 	            0  	             1             1  	           G  	           0  	      Administrators 4 	            1  	             2  	   0  	           U  	           4  	           Paul

SagePay
http://www.magentocommerce.com/magento-connect/ebizmarts-sage-pay-suite-ce-sage-pay-approved.html

Installer Key

http://connect20.magentocommerce.com/community/Ebizmarts_SagePaySuite

Templates
http://www.magentocommerce.com/knowledge-base/entry/magentos-theme-hierarchy

http://www.magentocommerce.com/wiki/modules_reference/english/mage_adminhtml/system_config/edit/design

http://www.magentocommerce.com/wiki/4_-_themes_and_template_customization/0_-_theming_in_magento/package

http://www.magentocommerce.com/design_guide/articles/working-with-magento-themes

http://www.magentocommerce.com/design_guide/articles/how-magento-builds-content

NEW 2013-10-15

Downloadable Products
http://www.magentocommerce.com/wiki/3_-_store_setup_and_management/catalog/how_to_create_a_downloadable_product

HOWTO: Find Out Where Magento Is Installed
find /home/ -type f -name 'Mage.php'

HOWTO: See Which Magento Version
Just change the path to suit...

find /var/www/ -type f -name 'Mage.php' -print -exec egrep '\<'major'\>.*=>|\<'minor'\>.*=>|\<'revision'\>.*=>|\<'patch'\>.*=>' {} \;

INFO: Magento Security Updates
http://www.magentocommerce.com/blog/category/security-updates/

HOWTO: Fix: Magento install error - Exception printing is disabled
It's permissions on the var/cache folder.

HOWTO: Fix: Product Not Showing
Make sure...


 * 1) You have inventory option ticked
 * 2) You have a stock quantity number added
 * 3) You have 'item in stock' ticked

... :-)