Archive for January, 2010
The Three Keys to Optimizing E-Commerce Revenue
Monday, January 25th, 2010
Introduction
No matter what you sell online, there are three core constituents to revenue: Traffic, Conversion Rate, and Average Order Size. In fact, it’s a cubic equation: Revenue = Traffic (#) x Conversion (%) x Average Order Size ($). So if you generate 21,000 visits in a month with a conversion rate of 3.00% and an average order size of $156.23, your revenue is $98,424.90 (21,000 x 3.00% x $156.23).
If you can analyze each of these variables effectively, the e-commerce world is your banana. I hope that by the end of this article series, you’ll understand the “sub-variables” that affect each of these core revenue variables, equipping you with the tools to optimize your e-commerce revenue. (btw, many of these principles apply to business in general, not just e-commerce)
This first article will relate to generating Traffic and the variables that affect it.
Keys to Traffic
Traffic is calculated according to the following equation: Unique Visitors x Average Visit Frequency
Keys to unique visitor traffic are Medium (where they found your site) and Presentation (what they experienced through the medium/media that made them visit). The key to repeat traffic is the Visit Experience (their evaluation of their visit retrospectively). Every single person that visits your site has a corresponding medium and presentation history, and if they visit the site more than once, they have an experience history as well.
Medium
The primary factors of a medium are relevance and accessibility.
The key relevance question: Is the medium used connecting with the kind of people that will see value in what you offer and need it now or at some point in the future, preferably in the near future?
The key accessibility question: Is it easy for the recipient of the message to take action in response to the message?
Presentation
Every presentation has a persuasive effect that depends on two variables: To WHOM it’s presented to and WHAT is presented. WHAT you communicate is worthless without the right audience (they need what you’re offering and they need it now or soon), and likewise, it doesn’t matter how targeted and ripe your audience is for what you’re presenting if WHAT you communicate is poorly constructed. In fact, it can do more harm than good to make a poor presentation to the right audience by appearing unprofessional and incapable to deliver quality.
The presentation variables depend heavily on the medium in question. If it is word-of-mouth, the presentation is what is being communicated by the referrer to the referee. What are they saying about your site and what you offer? If it’s search marketing, is what you’re communicating in your ad relevant and does it point to a highly relevant landing page? Are you using highly targeted keywords with ad copy that is tailored to those keywords? There are quality questions to ask for each medium, and they vary significantly. But all media should be based on the same quality questions: Are we communicating to the right audience? Are we communicating the right message to that audience to effect the desired behavior (click a link, request a quote, submit an e-mail address, buy a product, etc.).
Visit Experience
Experience is the single factor that determines whether a unique visitor becomes a repeat visitor. In short, visit experience, how a visitor evaluates their visit retrospectively, is defined by if the visitor:
1. Felt that the content was relevant to them
2. Felt that they could navigate and access what they wanted easily and intuitively
3. Has a compelling, memorable reason to return.
If these three criteria are met, the experience will likely develop into a repeat visit.
E-commerce traffic means nothing if you can’t convert that traffic into sales. In my next post, I’ll discuss the key to optimizing the conversion rate.
Tags: conversion, E-Commerce, optimization, revenue, traffic
Posted in E-Commerce, E-Commerce Optimization, General Business, Magento | 6 Comments »
Magento SEO Case Study
Monday, January 25th, 2010

We have seen dramatic increases in site traffic and better native search positioning for our clients, but we wanted to be sure that the SEO value of sites that had built great positioning through years of business would not be lost when switching to Magento and using 301 redirects. As Magento Professional Partners, we now have access to a whole new world of resources through Varien, so we asked them about what results they had seen. Here is a portion of their response, straight from one of Varien’s many clients:
“Yesterday I attended a very interesting presentation of the new Jack Wolfskin online shop (Globetrotter in Germany) based on Magento (yet community, next year enterprise). They seemed to be very happy with your product and increased traffic (+ customers) by 600% in 10 months just by moving to Magento (due to better SEO capabilities).”
While the results are not necessarily typical, we have seen dramatic results just by implementing Magento with 301 redirects. Long story short, if you are thinking about switching to Magento and you are concerned with the impact of the change, don’t be. The greatest concern you should have is the clients you are missing by not using the robust platform of Magento to enhance your SEO.
Posted in General Business, Magento | No Comments »
Creating Success – 5 Star Service
Monday, January 25th, 2010

Do you need to stand out from the crowd of competitors around you? Do you want to be remembered when your clients are deciding where to invest their hard earned resources?
Service is dying in the United States. Everywhere we look, an epidemic of apathy spreads its disease. Industries that traditionally emphasize service (eg. foodservice and customer service by phone) are continually adopting lower standards to accommodate lackluster performance. What is missing?
Service begins with the idea of active listening. Our era is focused around each of us having the ability to access information easily, but we can often feel that our voices are lost amidst the cacophony of voices around us. When was the last time that you felt that you were completely heard and understood? Listen to your clients. Listen to what they say, to what they mean. A huge piece of listening is to intentionally engage your mind with what your client is saying. Intentionally engage. If you are detached, they will feel your distance acutely, and you will lose effectiveness. Get rid of distractions, and focus your attention solely on them. Make them the most important thing in your world, if only for that moment. Your attentiveness to them will make a greater impact than you can imagine. People are used to being ignored and marginalized. The respect you give them when you make them your priority will resonate instantly with them.
Service requires a genuine desire to contribute. You must understand that your client is a valuable human being who is trusting you with an important piece of their life. Business decisions that they make will impact them personally. Value what they say. The desire to impact someone’s life positively is unusual to the point of extinction. I am not talking about putting up a façade of empathy. If you have ever seen a hypocrite, then believe me when I say if you come to the table trying to manufacture a mask of interest, you will be found out. There are very few things more detrimental to a relationship than phony interest. Suffice it to say; go genuine, or go home.
Service requires transparency. You must be willing to put yourself in a vulnerable position. I am not advocating placing unlimited trust in someone that you do not know, but honesty is always the best policy. Communicating in an open manner, especially when it is to your disadvantage to do so, will create a level of trust unobtainable in any other way. Please temper this statement with this caution: carefully weigh your words to ensure that they are palatable. Criticism is almost never an appropriate choice, whether it be directed toward competitor, co-worker, or client. Be generous with your praise towards the people around you, and very miserly with criticism.
Cultivate principles in yourself, and in your company, of honesty, valuing your clients, and transparency and wrap them all around a core of listening. Listen carefully and you will know what they want and what they need. Listen, and they will remember and feel that you heard them. Listen, and you will find the core of 5-star customer service.
World class customer interactions are central to our business model at Classy Llama Studios. This is the first of a series of five posts that I will be writing to relay aspects of our business development strategy specifically related to customer service and its vital role in crafting success for our clients. Since implementing this strategy we have been able to change the way that our clients interact with us, dynamically impacting both their satisfaction with our work and our ability to hear and apply their business vision effectively.
Tags: classy llama, clients, customer service, interaction, service, strategy, success
Posted in Magento | 2 Comments »
Add Magento Admin Account Using MySQL Script
Thursday, January 21st, 2010
Note: this script works on Magento CE 1.3.2.4 and 1.4.0.* but does not work in the Magento Enterprise Edition
As a Magento development company, we have a number of designers, developers, and project managers that need admin access to the sites that we build. As opposed to using one global admin account for our entire team, we believe it to be a much better practice to assign individual admin accounts to each team member who is going to be working on a project.
One of our developers, Matt Johnson, has developed a script to allow us to easily add an admin user to a Magento installation. Each member on our team that needs Magento admin access has a sql file that adds their admin account to Magento. When we start a new project, we run the sql script for the members of our team that are going to need access to the server. I hope you’ll find this snippet useful.
/* This is an example SQL script. You should replace all the UPPERCASED variables. The <USERNAME> variable can only be alphanumeric characters, and probably underscores (haven't tested) You can either generate a password hash using the PHP code below, or you can grab a password hash from the admin_user table from an existing Magento install for which you know the admin password. */ /* Use the following PHP script to generate a salted password hash. You can also use a straight md5 hash, but it's much more easily brute-forced <?php $password = 'PASSWORD'; $salt = 'GF'; echo $hash = md5($salt.$password).':'.$salt; ?> */ insert into admin_user select (select max(user_id) + 1 from admin_user) user_id, 'FIRST NAME' first_name, 'LAST NAME' last_name, 'EMAIL' email, 'USERNAME' username, 'HASH EXAMPLE: 178f29c8e4c6c801db90cd171e3b2b53:in' password, /* You can replace this value with an md5 hash */ now() created, NULL modified, NULL logdate, 0 lognum, 0 reload_acl_flag, 1 is_active, (select max(extra) from admin_user where extra is not null) extra; insert into admin_role select (select max(role_id) + 1 from admin_role) role_id, (select role_id from admin_role where role_name = 'Administrators') parent_id, 2 tree_level, 0 sort_order, 'U' role_type, (select user_id from admin_user where username = 'USERNAME') user_id, 'USERNAME' role_name |
Posted in Magento Development | 16 Comments »
Enable/disable template/block Hints Using MySQL
Friday, January 8th, 2010
When doing frontend development with Magento, there are many times when I want to turn on template/block hints for just one page load. I don’t like having to wait on the Magento admin to load up the System > Configuration > Developer page, switch to Website view, and then turn on template/path hints. I have written a couple of MySQL snippets that allow me to enable/disable hints with one query.
I wrote the scripts so that for clean Magento installs, they will insert the necessary records into the core_config_data table. For Magento installs that have had the hints enabled/disabled, the record will already be present in the config table, so the script will just update that record.
Enable template/block hints for the first* website
-- Enable template hints SET @template_hints = 1; INSERT INTO `core_config_data` ( `scope`, `scope_id`, `path`, `value`) VALUES ('websites','1','dev/debug/template_hints', @template_hints) ON DUPLICATE KEY UPDATE `value`=@template_hints; -- Enable block hints SET @template_hints_blocks = 1; INSERT INTO `core_config_data` ( `scope`, `scope_id`, `path`, `value`) VALUES ('websites','1','dev/debug/template_hints_blocks', @template_hints_blocks) ON DUPLICATE KEY UPDATE `value`=@template_hints_blocks; |
Disable template/block hints for the first* website
-- Enable template hints SET @template_hints = 0; INSERT INTO `core_config_data` ( `scope`, `scope_id`, `path`, `value`) VALUES ('websites','1','dev/debug/template_hints', @template_hints) ON DUPLICATE KEY UPDATE `value`=@template_hints; -- Enable block hints SET @template_hints_blocks = 0; INSERT INTO `core_config_data` ( `scope`, `scope_id`, `path`, `value`) VALUES ('websites','1','dev/debug/template_hints_blocks', @template_hints_blocks) ON DUPLICATE KEY UPDATE `value`=@template_hints_blocks; |
As I covered in this post, it is possible to turn on hints at a global level, which activates hints for all website and for the admin panel. This is useful if you’re making customizations to the admin panel, or if you have multiple websites for which you’re wanting to activate/deactivate hints at the same time. The following two snippets modify hints at a global level:
Enable template/block hints for the admin panel and ALL websites
-- Enable template hints SET @template_hints = 1; INSERT INTO `core_config_data` ( `scope`, `scope_id`, `path`, `value`) VALUES ('default','0','dev/debug/template_hints', @template_hints) ON DUPLICATE KEY UPDATE `value`=@template_hints; -- Enable block hints SET @template_hints_blocks = 1; INSERT INTO `core_config_data` ( `scope`, `scope_id`, `path`, `value`) VALUES ('default','0','dev/debug/template_hints_blocks', @template_hints_blocks) ON DUPLICATE KEY UPDATE `value`=@template_hints_blocks; |
Disable template/block hints for the admin panel and ALL websites
-- Enable template hints SET @template_hints = 0; INSERT INTO `core_config_data` ( `scope`, `scope_id`, `path`, `value`) VALUES ('default','0','dev/debug/template_hints', @template_hints) ON DUPLICATE KEY UPDATE `value`=@template_hints; -- Enable block hints SET @template_hints_blocks = 0; INSERT INTO `core_config_data` ( `scope`, `scope_id`, `path`, `value`) VALUES ('default','0','dev/debug/template_hints_blocks', @template_hints_blocks) ON DUPLICATE KEY UPDATE `value`=@template_hints_blocks; |
* If you have multiple websites, you’ll need to update the ‘1′ value set for the website field to reflect the ID of your website. If you have multiple websites, you can just turn on hints globally using the last two SQL snippets.
Posted in Magento Development | No Comments »