March 13, 2007

Is ZenMagick for you?

Filed under: General — DerManoMann @ 12:42 am

Something I’ve been wanting to write about for quite some time…

To answer this question we first need to get a good understanding of what ZenMagick actually is. ZenMagick is:

  • An object oriented API that allows to access most of zen-carts data in an abstract way, so the caller does not need to know anything about the underlying database structure
  • It also is/contains an alternative templating/theme system. This does behave similar to what zen-cart has to offer with a few exceptions:
    • ZenMagick theme files do use the ZenMagick API - there is never going to be SQL in a template file!
    • Due to the fact that the API is used, there is no need to require/include back and forth to make business logic
      available to theme files, making them much smaller and easier to write
    • ZenMagick does not support all of zen-carts options to configure the look&feel

There are a few other things like pretty links, product features or Ajax support, but basically that’s it.

It is worth to note that is is perfectly legal to use the ZenMagick API within zen-cart templates. As we will see, this is the first step of migrating to ZenMagick (if desired).

Another way of putting things is by listing the reasons for ZenMagick:

  • The current zen-cart template files are hard to read, have lots of dependencies to module files and other templates
  • Personally, I find it hard to iterate over three- or four- dimensional arrays
  • SQL and other business code in templates (sometimes even cut’n paste)
  • To access other data than what was originally intended, it is neccessary to modify zen-cart files (module and other)
  • sideboxes have separate controller that prepare the data
  • upgrading patched/modified/overwritten zen-cart files is a pain

Based on the above lists we can conclude that ZenMagick is mostly there to make it easier to:

  • Create really custom store layouts based on custom templates (HTML/CSS) rather than depending on admin options
  • Implement new features by using the existing ZenMagick API
  • upgrade zen-cart (even at the costof having to upgrade ZenMagick too)

In other words (again), ZenMagick is not for people that just want to drop some code on a server, replace the logo and be done with it. It is, however, for people that want a custom store that doesn’t look like the zen-cart (or ZenMagick) default store and know how to implement their design using HTML and CSS.

ZenMagick is also useful to add functionallity to existing sites. It is easy to disable the ZenMagick theme code and use the API from within existing zen-cart templates.

I hope this might be useful for people to make up their mind. If you think there is something missing or disagre, please leave a comment!

Ah, one final thing: It is never advisable to install new software on a production system to try them! I know this seems obvious, but it isn’t.

2 Comments »

  1. Excuse me for asking the obvious- i presume with zenMagick you can optimise better for search engines than the basic zen cart? i see very few php pages with any page rank?
    we have our own shop at http://www.verdecoffee.com but now want to stop re-inventing the wheel and use an off the peg solution - after a lot of investigation i came down to pinnacle and zen cart but everyone seems polarisied in their opinion of the 2 solutions so one doesnt seem able to get a straight answer -anyway ithink that zen is the correct way forward BUT what functionality is lost by using zenMagick - i see reference that not everything is brought accross but not a list or have i missed it i.e say multicurrency billing etc.

    Comment by andrew porter — July 6, 2007 @ 11:52 am

  2. Andrew,

    please have a look at my latest post ‘What ZenMagick is not’. Hopefully that should answer your question. If you have more specific questions about features, feel free to keep bugging me.

    Comment by DerManoMann — July 8, 2007 @ 11:26 pm

RSS feed for comments on this post. TrackBack URI

Leave a comment

You must be logged in to post a comment.