News & Nonsense

Stay up to date on our company news or stop by occasionally to read our blatherings. You may find something new and interesting, you may not, but we’ll do our best to keep you coming back.

Journal Categories

Most Recent Entries

Monthly Archives

Grab Our Feed

RSS
Atom
Follow Us on Twitter

Share This Article

del.icio.us Digg Facebook Google LinkedIn Live Ma.gnolia NewsVine Slashdot StumbleUpon Technorati YahooMyWeb

Enjoy this post? Share it with others.

Wednesday, December 03, 2008

Magento or Mag-er-pain-in-the-ento

Any way you look at them, whether from a design standpoint or a development standpoint, shopping cart platforms suck.

I recently implemented one of the newer entries into the shopping cart market, Magento, on a low-budget client project. I had done my forum research prior to digging into the platform to get an idea what I was in for. In the end, I found that Magento’s reputation among designers is well deserved.

Magento is billed as the “designers” cart solution. Supposedly, Varien, designed their “robust e-commerce software application to be simple to customize.” Depending on your perspective, or rather your need for control over the platforms you utilize for your projects, this statement is somewhat true or utter hogwash.

First of all, I approached this project from a designers perspective. I am not a code-monkey and I chose 16toads’s CMS, Expression Engine, because it is, in fact, architected in a manner that permits my feeble mind to grasp it’s core templating. Oddly enough, the Magento web site is supposedly built using EE, so one would think Varien would take a few cues from EllisLab. Not so.

Here’s what I found and please keep in mind, this isn’t a technical discussion.

As long as your web site is built in a manner that it can be adapted to “fit” into the rigid templating system of Magento, skinning the cart to look like your site is not a terrible experience. It’s not easy, but tolerable when you figure out how to add a custom theme, locate the CSS files, and understand basically how their convoluted file structure is organized. Why didn’t I dive in and mess with the templates? I don’t know PHP and XML from Swahili and Magento makes heavy use of both in it’s templates.

I was lucky that the design of this site was a perfect fit for Magento’s basic structure. In other words, I had a basic header with logo, a horizontal navigation bar, a big content area, and a footer.

The “customization” was limited to changing the background, adding a logo, adjusting the header area, adding a couple image buttons to the main nav, color changes, and adding a couple blocks (modules) to the Home page. Nothing was done to adjust the base templates. All of the Magento templates require making changes to at least two files: a .php file and a .phtml file. The .phtml files are generally where layout changes are made.

Skinning
The basic CSS adjustments were fairly straightforward, just find the element and tweak. CSS docs are located in skin>>frontend>>(yourdirectory)>>(yourtheme)>>css>>allCSSfiles. I had to add a few CSS attributes to make everything work, but all in all this part of the process went smoothly. Even so, skinning the cart took about two days.

The fun part began when I needed to add a couple image buttons to the main navigation bar in order to improve usability. The navigation file is located in design>>frontend>>(yourdirectory)>>(yourtheme)>>template>>catalog>>navigation>>top.html. Follow that? This is pretty much how deep every single file you will ever need to find is buried. And, they are all located in different places. Even this wasn’t too much trouble, just a lot of digging and re-uploading the CSS file(s) once the code was adjusted.

Layout Adjustments
Onward ... templating. It took me a little while to wrap my head around the concept of “blocks” and how to implement them. The whole idea behind Magento is that is it “easy” to customize.  Well, it sort of is ... as long as you do one of two things. (1) Don’t try to hack their templates or (2) hire a whiz-bang programmer to handle the job. I didn’t have the latter option.

Magento gives users the option of selecting from a number different content layouts (the area below the header and above the footer) - Empty, 1 column, 2 column left bar, 2 column right bar, or 3 column (left and right bars). The important thing to understand with each of these choices is that the area you have to “customize” is the column area, not the bars, or the header, or the footer. The areas designated as “bars” are where the cart modules and callouts are automatically placed by Magento.

Once you have selected your layout. You can add your custom content in the CMS tab in the “Content” field under “General Information”.  Varien calls this “content management”, but it requires knowing HTML in order to “customize”. In other words, your clients won’t be able to update the “customizations”.

Magento Control Panel

It is important to understand that elements placed in the CMS Pages or Static Blocks are independent of the cart layouts (templates) unless you add the necessary code snippets. I wasn’t able to find any archive of available code snippets.

The Home Page
The Home Page is not auto-populated with ANY information, products, or even pictures of gnomes. After you go through the process of creating Categories, Attributes, adding products, and selecting the correct display criteria in the System settings, you will find a blank Home Page when you test your work. WTF?

This is point when Magento gets really frustrating.

First of all, there is no clue in the Design Guide explaining how to get products to appear on the home page. I referred to the Demo Site to see how the Home Page was configured. It is set in the CMS Page configuration as a 2 column format with a right bar. What I found was somewhat astonishing ... the Home page (found under  the CMS tab) was completely hand-coded. The Demo sample content wasn’t tied into the Cart at all. The side bar was, but the content was not. Now, imagine the fun it will be explaining to my client that they will not be able to easily swap out the home page graphics ...

After digging through the forums, I found the basic code snippet required to display content on the Home page:

{{block type="catalog/product_new" name="home.catalog.product.new" alias="product_homepage" template="catalog/product/new.phtml"}}.

This worked, but not quite what I was hoping for.

Eventually, I found a relatively simple method of adding a “featured products” module to the home page that required adding an attribute, a .php document, and a phtml document. I also added a “brands” module to the home page that displayed the content of another custom attribute. I had to wade through implementing a few solutions for each problem before finding two that actually worked.

So, at this stage, I had successfully added two new modules to the Demo code of the home page. Now, I thought, how the hell do I change the five “ad” blocks? On the demo page, there are two ad blocks that appear in the left column, two that appear in the content column, and one that appears in the right column. The “shoes”, “camera”, “sale”, “shipping”, and “back to school” blocks.

All of these images are hard-coded into the page. If you choose the 3 column layout (and, don’t use the Demo as a sample), the “back to school” and “dog” graphics are automatically added to the left and right columns. In order to remove or change them, you have to locate their code references in two separate files or comment out code in a third (catalog.xml). For reference, the side “ads” are referred to in Magento parlance as “callouts”.

I succeeded in adjusting the templates to create block elements out of the “right callout” and “left callout”. This allows an admin to adjust the code for each graphic / space in the CMS >> Blocks tab rather than having to dig through multiple folders, templates, and code. Or, by FTPing a new image. Keep in mind, that knowledge of html is still required for these changes.

And, that is the rub
In order to swap or remove any of these images, it requires revising code in multiple template files, manually uploading a new image, or making html changes to “custom” blocks.

The Home Page content area is, for all intents, a free-standing entity. You will note that even if you choose to use the most “automated” layout, 3 columns, the content area must be hand-coded.

The whole concept of Blocks is flawed. For example, it is relatively simple to add or remove a block, such as the Sony Ericsson ad, that appears above the products on the Demo Cell Phone page as long as that block is attached to a Category. Which is the boast behind Magento’s “ease of customization” claim. With the caveats, that it only applies to categories and works well if you don’t mess with the underlying page structure. So, if hand-coding is still required for the most important sales page on an eCommerce site, the Home Page, what’s the point of being able to swap blocks easily on the internal pages?

To clarify, the navigation bar is constructed from Categories, therefore each nav link (category) connects to a Category Page. The Home Page is a CMS page and is NOT linked in any way to categories, nor for that matter are any “pages” you create in the CMS >> Pages tab. Static Blocks don’t apply to CMS pages.

Important Configuration Note:
Do NOT delete the “Default Categories” root category when you begin adding your own categories. ALL new categories MUST be added as children of the Default Category or “root” category. If you delete this and have to start from scratch, you can find instructions in the forums how to rebuild the category structure and enable the correct settings in the System section. It’s a pain and I recommend simply not deleting the “root” category to begin with.

Note: The “root” category can be renamed. The sole purpose of a “root” category is to provide separation between multiple “stores”.

Conclusion
For designers, Magento does not fulfill the “built for designers” claim. It’s a good system. It’s one-page checkout is really nice and developers may swoon at it’s back-end.  But, Magento is a designer’s black hole.  At least, it was for the shirt I lost implementing this shopping cart platform.

Long long story short. Magento is, indeed, robust. Probably more robust than most businesses will ever need. It is a server hog. And, it is easy to customize ... as long as you don’t change the templates and your client doesn’t ever have a need to swap out Home Page graphics.

I wasn’t reduced to tears ... but ... geez ... and, I still have to hook up a payment gateway.

Posted by 16toads on 12/03/08 at 08:20 PM in Blatherings • (19) Comments

Comments

#1. Posted by Angie on December 09, 2008

Great review. I hopped over here from the comment you left at the EE forum. For a client site we did earlier this year we did have a programmer available and while he got it to work perfectly with he got pretty frustrated with it (as did I whenever I would get into it). There just isn’t an ecmmerce package out there that is as easy to customize as EE or as flexible in that same regard. I’d agree that Magento’s backend and functionality is better than most but their claim that it’s easy to customize is far from being true. Again, nice job and nice site. smile

#2. Posted by .(JavaScript must be enabled to view this email address) on December 09, 2008

Thanks Angie. I’m still suffering from a bit of a Magento hangover ...

#3. Posted by Angie on December 09, 2008

Yeah, I hear ya. I had one of those too. Takes a while to get over. wink

#4. Posted by Steve | trade show displays on December 14, 2008

hi Paul,
From the length and detail of this post, I might think you owned stock in Magneto, except for the end, well, and many parts of it…  I set up Agora Cart for our website estore a few years ago. I was happy with it, but can’t remember much and it’s been static since. So what shopping cart solution DO you recommend?
~ Steve, Pinnacle Trade Show Displays
PS. I have lost a shirt or two in my time too…

#5. Posted by .(JavaScript must be enabled to view this email address) on December 14, 2008

Owned stock? I wish. I simply have a problem with brevity.
At this time, I can’t recommend any shopping cart platform. As I stated, they all suck to one degree or another.  I’ve heard positive reviews of Interspire, but their license cost is prohibitive for most small to medium sized businesses.

#6. Posted by Steve | trade show displays on December 15, 2008

hey Paul,
When I was researching what shopping cart to use, in addition to how easy it was to set up and configure, the user experience was very important to my decision. It amazes me when I come across online stores that either require a shopper to register with the website before adding anything to the cart, or to enter a credit card before they can see the cost of shipping. At least those kinds of estores don’t seem to be very common anymore.
~ Steve, Pinnacle Trade Show Displays

#7. Posted by .(JavaScript must be enabled to view this email address) on December 15, 2008

Register-to-play is typically a decision of the eComm store owner and not a default setting of the shopping cart platform.  But, I agree that requiring a customer to register simply to browse an online catalog or obtain a shipping quote is simply a bad idea.  Registration should only be requested at the time of checkout and, even then, my personal opinion is that it should be optional.

#8. Posted by Travis on January 05, 2009

Thanks for the detailed insight into integrating Magento.  I’m doing research on ecommerce systems for EE, and this is really helpful in a boots-on-the-ground way.

#9. Posted by .(JavaScript must be enabled to view this email address) on January 05, 2009

Not a problem Travis, glad to impart experiential knowledge when I can. 
At this time, FoxEE is the only system that “integrates” with EE.  I’ve been playing with this module for some time and have found it to be good, but not an “enterprise-level” solution at present. I have high hopes the boys at HCC will eventually have FoxEE competing with Magento’s feature set. 
You may also check out Interspire. If you have the budget, this cart has gotten relatively high marks across the board - especially for design and templating.

#10. Posted by z warez on January 06, 2009

This is exactly what I was looking for. Thanks for sharing this great article! That is very interesting smile I love reading and I am always searching for informative information like this! You are bookmarked!
Thx

#11. Posted by Mike Hahn on January 15, 2009

Hi Paul, thanks for the FoxEE mention and support. We have been working night and day adding improvements to FoxEE and just released a new build (109) which offers several new features and fixes, one of which is better pricing options and inventory tracking per product option. We are also working with FoxyCart on integrating a user API that will provide seamless integration between EE and Foxycart servers, automatically create accounts in both directions and share user information such as billing address etc.. We are also going to be adding the ability to take donations and several other new features. So hang tight, lots of good things to come with FoxEE in the near future.

#12. Posted by .(JavaScript must be enabled to view this email address) on January 15, 2009

No problem Mike.  I appreciate your work on FoxEE as well as your technical assistance in the HCC forum. 
I’m looking forward to the API.  “Seamless integration” is music to my ears and the vastly improved integration for user accounts will be fantastic.  That said, I’m hopefully wrapping my first subscription-based FoxEE install next week.

#13. Posted by Document Imaging Software on January 21, 2009

Nice review! Thanks for your information. I need more information about this.

#14. Posted by Malaysia seo web designer on January 30, 2009

Hmm… this is helpful, but it would be great if the documentation or help manual can be updated in more detail way.

#15. Posted by .(JavaScript must be enabled to view this email address) on May 06, 2009

Great piece of work!!! Paul you did excellent job just carry on please.

#16. Posted by .(JavaScript must be enabled to view this email address) on May 07, 2009

Please don’t take this the wrong way but:
As promising as FoxEE is, it is not ready for prime time. The function of this module is going to get better, no doubt so I don’t mean to sound harsh. However for any application beyond membership, subscription, it just falls short. I am told by the FoxEE team a promised new version, 110, that addresses some of the shortcomings that keep FoxEE being a professional implementation, so I hold out hope that they will bring it up to snuff, soon. EE needs this module. I will go so far to say I would pay twice what FoxEE is charging for something that functioned at the dependability and ease of implementation in which EE functions. Right now I am feeling like I paid to figure out what is wrong with it.

As mentioned above Documentation is abstract at best, with some examples of the code in the forum being directly contradictory to what actually works.  As far as finding examples of code, you are best to find someone using the module and ask them. User frustration is high in the FoxEE forum. I am sorry Mike, you have a great product coming, but you are asking people to pay for it, so it needs to deliver. Right now FoxEE is a 2 out of 5, but with a better effort by the FoxEE team to not depend on the user base to debug and provide examples of working code, this will be a strong addition to the EE family. I look forward to the upcoming improvements.

#17. Posted by .(JavaScript must be enabled to view this email address) on May 07, 2009

Thanks for the comment Bill and I agree with every point you make regarding FoxEE ... and stand by my earlier post where I stated that “FoxEE is not an enterprise level solution at this time”.

In fact, you will find quite a few of my rather pissy posts on the HCC FoxEE forum.

#18. Posted by .(JavaScript must be enabled to view this email address) on May 07, 2009

Hi Paul, nice site BTW! Did not mean to be redundant and I felt hard empathy reading all your comments at HCC, they were right on target! (we cheered you in our production meeting yesterday, well the designers did anyway!) Just letting people know what I should have found out, before proposing this cart to my customer. In the end as always, if I had done better homework…

#19. Posted by .(JavaScript must be enabled to view this email address) on May 07, 2009

Thanks for compliment and no worries ... I can forgive redundancy for a few unsolicited cheers on my behalf. 

Truth be told, I made the same mistake and the resulting experience lead to a significant loss of income and the article that spawned this discussion. 

The big problem with so many of the 3rd party modules - for any CMS or cart paltform - is that they are developed by small shops who release products long before they are ready for the market.  I paid for a product I expected to work.  End of story.  Unfortunately, the story didn’t end and I have yet to use FoxEE for a commercial project.  I have high hopes for the module but I am not happy that I was basically a test guinea pig for their initial release.  I wasted an untold number of hours on FoxEE before realizing it simply wasn’t going to work.

Comments are moderated. If you are here to plug your company, don't waste our time.

Name:

Email:

Remember my personal information

Notify me of follow-up comments?

Comments:

Enter this word:

Here:

stop work for hire