Beware of zencart debug logger!

Posted in Tips & Tricks February 4th, 2012 by raine - Be the first to comment

In the recent versions of Zencart (I think starting from 1.3.9h) you will find that includes/extra_configures/enable_error_logging.php exists by default. This file will turn on the debug switch and will put the logs into your /cache folder. The problem is that it also puts lots of WARNINGS and such inside this, and ZC does generate lots of those. Within a short amount of time (depending on the number of visitors you have and number of warnings etc), this folder will be flooded with log files and will more than likely lead to many performance issues and such.

I recommend that you rename this to enable_error_logging.php.bak and only rename it backs when you want to check for an issue.

A hosted ecommerce solution

Posted in Zencart February 2nd, 2012 by raine - Be the first to comment

Working with many small to medium business owners as well as startup entrepreneurs we find that initial capital investment put into developing a new site can be rather intimidating. Even free opensource softwares such as Magento or Prestashop, Zencart, etc… requires a considerable amount of work put into it before it can be put into full use. Along with that, the extra work has to be put into researching (and understanding) hosting service, SSL certficates, regular backups as well as other stuffs lead to a steep learning curve which is rather unnecessary for business owners who have limited amount of time (and sometimes capital).

There are hosted solutions out there  of course such as the wonderful shopify.com with its nice and simple cart for startups. However, many hosted solutions have certain disadvantages:

  1. Most are closed-source, so you can not buyout your whole site at some point when you may have outgrown the service provider and want to fully customize and develop your cart on your own. Instead, you may have to struggle to develop a completely new site and find a way to import all your current data to the new one.
  2. Many lack certain important features such as multilanguage feature on shopify.com, and there is no easy way to add these features on your own, you have to wait for the service provider to upgrade their own core.
  3. Most are developed for general purpose, which mean if you are in a niche business it’s rather difficult to have the exact features you need (think about custom clothing stores or auto-part stores)

For all the above reasons, we are looking at creating a new solution that can help business owners who want to enter the online market that:

  1. Helps small business owners and startup entrepreneurs to reduce the risks by starting up with the minimum investment (our packages are expected to start from 20usd, which means you can setup a package and start selling right away in with only 20usd, not 2000usd after 2 months)
  2. Customized for your business: there will be different packages for the business you are in, and you can certainly use free or homebrew add-ons on the market. You will also have the option to buyout the whole store to grab the whole database and code and use it on your own.
  3. Developed for the mass: every technical setups and configurations should and will be done under the hood, the extra time that you would have to put into learning the technical stuffs will now be put again into your hand to do marketing researchs, networking with customers and susch,… Things that can help you grow your sales
  4. Fast and reliable: hosted on the clouds, developed with latest technologies under the hood, automatically back-up regularly, you will no longer have to worry about losing customers because of the site slow responsiveness, or loss of data because you forget to do backups.

We would love to know if you are interested in such a solution, and if you are, please take your time to fill in a short survey for this new project, we love to hear from you

 

A plugin framework system for Zencart

Posted in Zencart February 2nd, 2012 by admin - Comments (2)

It has been over 4 years since I have started working with Zencart and the system still doesn’t have a good system in place to support plugins. There is almost no standard, no rules, plugin/module developers have to place files all over the places, sometimes even overwrite core files and clean un-installation of plugins is too time consuming that it’s never done on most clients’ sites we have seen. After using the system for a while, most stores will be “blessed” with a mess of old and codes all over the place which makes upgrading more difficult than it’s already is.

While we have switched to Zenmagick on some projects (which is a powerful and modern system built on top of new technologies), Zenmagick still needs a few more months to reach its mature state, and also many of our clients are still with Zencart. In the past few weeks I have been working on a mini plugin framework system for Zencart which hopefully will help us make our future works on Zencart much easier and faster, my goals for the system are:

  1. A Plugin should be able to contain every (or at least 99%) of its files in a single package, which should make un-installation much easier and cleaner.
  2. Plugin should be be loaded upon request only, so on a page that does not use a certain plugin, no extra files should be loaded.

I could have use Zenmagick for my purpose (Zenmagick was designed so that it could be plugged into Zencart) but I felt that:

  1. Using Zenmagick for this simple purpose seems like an over-kill
  2. I wouldn’t have been able to learn at much as I did if I use a solution out of the box like that

So in any case, this plugin system was aimed to be used internally for our clients’ projects only, but I feel like this can help others as well, in developing modules for their own purposes, and so here it is on git, please feel free to report any issue or fork and develop it: Github

PS: the system lacks documents now, but I will soon add lots of comments into the code itself, and I will also add a test plugin.

Why ZenMagick is 1000 times better than ZenCart

Posted in eCommerce,Zencart April 29th, 2011 by admin - Be the first to comment

First, I will admit I might be a bit biased here, I know the core developer of ZenMagick personally, and have been using ZM on many of our recent projects (we no longer use ZenCart to build a new sites for our clients anymore). But I have also used ZenCart long enough to have a few opinions on it.

Modern technology

Zencart is like a 10-year old piece of software, and you know how much 10 year means in technology. Zenmagick, on another hand, is using the latest technologies in the PHP world in its framework, in fact you cannot run it without PHP 5.3 which is the latest stable version of PHP at the time this article is written. MVC, ORM, … you name them, ZM is utilizing them. ZM is also using a large part of the famous Symfony2 framework, and will allow you to use many of Symfony’s goodness inside ZM very very soon.

By utilizing just part of this power I have been able to convert and improve our 2 best modules to ZenMagick just in a few days. Yes, Ajax Onepage checkout and Simple Seo Url will be available on ZM soon, and totally free.

Open Development

Zencart is a closed open-source software, that means you have no way of knowing where it’s heading and when you will get it. We have been waiting for its 2.0 version for how long? Over 2 years perhaps, I lost track of time already. And there is no open repository, there is no way you can peek into its nightly code to see what’s going on at all. ZM is just the opposite of that, the project itself is totally open to the public on github:

https://github.com/DerManoMann/ZenMagick/

And it has its own bug tracker: http://dev.zenmagick.org/projects/zenmagick

You can watch what is being worked on, you can see the current project, you can even grab the nightly developed version that has not been released yet if it has something you need now (of course, you have to do so at your own risk). The beauty of using GitHub is: you can clone the project without waiting for any permission, modify it to fix bugs, add features etc then request the changes to be pulled into the core code. If your code pass the review process, it will be part of the core code itself, how nice is that?

Also, by decentralizing the repository, the project will never die since anyone can clone it and start their own branch(s) from there. (Obviously we still try to keep a core version for many good reasons)

ZM makes your life easier

For end users, using ZM cannot be easier, and it will get even much much more easier once it reaches its mature version, which is hopefully the 1.0 version. If you have gotten used to the compare and merge process of Zencart, I’m sorry but you will have to forget about it. Upgrading ZM itself and installing and upgrading plugins will be just a few simple clicks away. Even for modules that needs to inject content into the template, soon you will not have to edit anything for installation. Un-installation cannot be easier, just click and bam it’s gone with the wind :)

For developers, learning ZM is certainly more difficult than ZC because so much stuffs are done auto-magically behind the scene and there are not much documents at of now. However, you can get into the chatroom and ask questions. I will admit that it’s a bit lonely there in the chatroom for now, but due to our different time zones you will more than likely find someone active and ready to answer your questions any time you login. Of course the forum is also a good option if you don’t have urgent questions. Once you get to know ZM, believe me, developing plugins is just like icing on cake.

New feature for CSS Javascript Loader

Posted in Add Ons February 7th, 2011 by admin - Be the first to comment

While working on our Zencart modules which make use of jquery and its plugins extensively, I often run into this issue: one module which is released long ago is set to use 1.4.2 version while another module which has just been released is set to use 1.4.4 (or even 1.5.0). This results in multiple versions of jquery being loaded on the same page and slows down the site (or even stops certain things from working correctly).

To resolve that problem, I have added a new feature to our loader, this feature will greatly help in reducing the risk of loading the same library more than once. If you are a developer, feel free to grab the latest version from github and give it a try, you will find lots of sample code inside.

https://github.com/yellow1912/cjloader

We will continue working on this feature to refine it.

New Zencart/ZenMagick Admin UI

Posted in Zencart February 2nd, 2011 by admin - Comments (1)

As you may know already, we are working on the new admin UI, and we have 2 great news for you:

1. We are revising our design to make it even friendlier, we would really appreciate it if you can review and give us comments and advices on the design

2. The new admin ui will be coded for ZenMagick, but it might be possible to use for Zencart as well.

  • home-1.png: this file shows the new admin UI concept. First of all, we want to group everything under a “Start” just like Windows. Each important link has hotkey. At the bottom of the box, you can see a search box: since the menu can grow huge with tons of links this search box will help the users to quickly locate the link they need. On the right hand side of the header navigation bar are the links to the catalog, help and quick search (please view quick-search.png)
  • home-2.png is another variation
  • quick-search.png: users can search for orders/products/customers using the quick search link.
  • category-list.png
  • category-edit.png
  • product-list.png
  • product-edit.png
  • category-list2.png
  • category-edit2.png
  • attributes-manager.png
  • attributes-sets.png

You can view the current design here: http://dev.zenmagick.org/projects/zenmagick/wiki/ScratchPad (please scroll to the bottom of the page)

Update for our One Page Checkout module (Ajax Xcheckout)

Posted in Ajax Checkout January 15th, 2011 by admin - Comments (1)

We are working on a new version (v3) of this module, this new version is based on many suggestions sent to us by store owners who are using this module. There are 3 major changes in this new version:

  1. The shipping and billing method steps are merged into one step. The current checkout process will consist of 3 steps: shipping/billing address (which can be skipped by a setting in admin) -> shipping/billing method -> confirmation
  2. The checkout progress boxes is moved into a horizontal bar on the top so the customers can check their current process easier.
  3. When the users enter wrong coupon code, the module will print out a message but will not refresh the form so that the users can avoid having to re-enter other info.

We also made certain changes to design to make things look nicer, some major clean up in the css file so that you can locate things and edit the file faster, some minor bugs are also fixed. We are still working on the module, and screencaps and screenshot will be released soon.

Detour

Posted in News & Discussion September 28th, 2010 by admin - Be the first to comment

While I was working on our new cross sell module, I was kinda bugged by the way I have place files all over zencart (some files for database tables / filenames in the extra_datafiles folders both in admin and catalog site, classes files in various places as well as template files etc). How do I completely uninstall this module if I want to, I asked myself. The installation process is a long one: go to each folder and delete all the files the module uploaded, it just seems like there should be another way.

I ended up spending the time to rewrite/edit many modules so that I can place all module/plugin files in its single/separated folder for easy installation, distribution and uninstallation:

  1. Module manager to add news update feature (you will get the news via your admin page when one of our module has a new update)
  2. CJ Loader to support loading css/js files on admin side
  3. Module manager to support placing plugins’ files in their separated folders
  4. BlockManager to separate block feature from Ajax class

Due to this detour (as well as porting BlockManager to ZenMagick), I will have to delay the release of the new Cross Sell module a bit.

We also have some good news regarding the new Cross Sell: I have finished implementing the algorithm for suggesting top N products to a specific customer based on past orders info. The algorithm can be read in more details here:

http://glaros.dtc.umn.edu/gkhome/suggest/overview

Don’t forget to subscribe to our newsletter and rss feed, I promise this new cross sell will be the best tool ever available on Zencart to increase your sales.

Weekly update – cross promotion module

Posted in Add Ons September 23rd, 2010 by admin - Comments (1)

This week we have dedicated most of our time on working with GMap (for a special project related to store/voucher locator), YII (the php framework system) and the cross promotion module. We have install the module on the first site (http://www.thegemtree.com/), the installed version takes the products’ names and description, matches each product with the rest to find the top X products that related to a product A, stores them all in database sorted by relatedness’s score. The process also takes into account the “manual” cross sell set up by the store owner.

When a customer views a specific product, the cross sell module will then list the related products using the pre-built set of data. As you may have guessed, building the relatedness set can takes some time if your store has a large set of products, luckily this can be done once and then the set must be updated only when you make significant changes to products’ names/description or adding new product(s).

The next step would be to suggest items based on user’s past purchase process and item-based filtering. We will look into the user’s orders in the past to find a set of other users that may fall into the same group and use their preference to suggest items to this specific user. We will also use the past orders to figure out sets of related items and make suggestion based on this. Our concern right now is to make the suggestion system as useful as possible (for the customers) while balancing other factors such as performance and speed. We will keep you updated with the process, feel free to comment and let us know if you want to try this out on your store. We will be glad to install it for you at no cost.

Ultimate product cross promotion module

Posted in Add Ons September 11th, 2010 by admin - Comments (1)

We all know that cross promoting products is one of the win-win ways to help store owners to increase the total per sale as well as helping customers to quickly locate the items they need (and avoid the cases when they forget something and later have to place another order and pay the extra shipping fee).
One example is from my personal experience, just a few weeks ago I purchased my Ipod Touch, I was so excited by that and totally forgot about purchasing screen protection and cover for it. All those who use Iphone or Ipod Touch know too well how quickly these items can get dirty and covered in scratches without proper protection. I later had to go out to a near by store to buy them.

Who lost in this case? The online store missed the chance to sell more, and I wasted my time.

Given then importance of cross-selling, it’s surprising that the available cross-sell modules for zencart are limited and in 99% the cases done manually by store owners (cross selling the items they think related). There are several problems here, however:

  1. All this is manually inserted by store owners, which doesn’t really reflect exactly what the customers have in mind
  2. These cross sells are not individually oriented, customer A will see the exact items suggested to customer B. In reality, each customer has different reference and we all know that.
  3. For stores with thousands of products, manually cross selling them can be a mission-impossible task (well, not quite, but it does takes much of your precious time)

For all the reasons mentioned, we decided to work on a new cross sell system which we call our “ultimate product cross promotion module“. The goal is to have the system that automatically takes in various elements and then suggest the best items that matched the individual user’s needs

Our development process is broken in 3 phases:

Phase 1

Introducing the relevancy/relatedness scoring system: our old cross sell system allows you to manually insert related products, as well as giving them a manual “sort order” so that you can manually put one at higher position. With the new scoring system you will still have the ability to manually insert related products as well as manually set the position (since most of the time, the machine’s calculation cannot beat a human’s brain). However:
  1. The module now can automatically compare each product against others based on different elements such as: keywords it found in product name, description, meta description as well as other things such as tags to calculate a relevancy score between each pair of products.
  2. It will allow you to give a weight factor to each element (for example, title is most important for you so you give it a weight of 3 while tags only has weight of 1)….You can of course disregard certain element by giving it a weight of 0.
The good news is that phase 1 is basically finished and it will be free for all. We will send emails to our newsletter subscribers soon so that you can test out this new system, stay tuned.

Phase 2

Go far and beyond: we will not stop at static items like title, description, we will use dynamic elements such as the usually purchased together products, viewed together products (in the same session) as well as other elements.
This is the phase where the product suggestion will go to individual level, and each customer may see a different list of products suggested to them.

The final product of phase 2 will be an open-source commercial product, it will be reasonably priced as our products, well supported and will be worth it for the stores that need them (if your store has less than 100 products for example, you can utilize the free version with all the features listed in phase 1 and probably have no need for a more advanced version)

Phase 3

More tweaks, more analysis: this is the phase where we use all your feedbacks to tweak our scoring system as well and completing a detailed analysis in the backend. In the end, what is the use of this system if you don’t know exactly how good does it perform? Here you will know the % of customers click on the suggested products, the % customers that do add the suggested products to cart and then go through the checkout etc…. Various types of analysis data will be provided to you so that you can better understand your customers, tweak your cross sell listing, or make changes in your current stock to get more items that they want.

The final product of phase 3 (and after) will be an upgrade to phase 2, so if you own it, you are free to upgrade.

A few notes:

  • Performance: there is nothing to worry about performance, the score calculation process is not done per customer visit, it is set to be run automatically (using cron) at the best time on your store(late night, for example)
  • Multiple product promotion list: we have been talking about cross selling only, but how about simply suggesting products to customer individually? For example, Amazon.com can suggest new items I may be interested in each time I visit the store based on what I bought, reviewed, added to wishlists etc… That is something we consider adding either in phase 3 or 4.
Page 1 of 612345...Last »
We care about your Privacy. Copyright © 2009 RubikIntegration. Powered by Zen Cart and Wordpress