Made of Everything You're Not

Personal blog of PHP programmer Eric Lamb.
  • Blog
  • Portfolio
« Should We Use OpenCart?
hResume hKit Profile »

A Closer Look At Avactis

Avactis is another in a long line of e-commerce web applications written in php (similar to OpenCart and PrestaCart), this one a little different in that Avactis has different versions, each with different features, depending on how much you're willing to spend. Avactis is a full featured product with all the bells and whistles any ambitious store would need (and then some more features stacked on top for good measure) combined with a very php like integration methodology. Unfortunately, the dated administration interface combined with a lack of a plugin architecture and theme community really holds it back from the awesome bar.

Avactis

For the uninitiated, Avactis is created and maintained by Pentasoft Corp; oddly, there's no website for the parent company so take that for what you will. As mentioned, Avactis is based on a pay model though it's way more upfront about it than PrestaCart and, while the free version is missing some features, the source is available for modifications. Not too bad in my opinion; at least the more cash strapped shops can still play if they want to.

The different versions of Avactis are Free, Owned ($199), Monthly Leased ($19.95 a month) and White Label ($299) each with their own features and options. Most notably the Free version doesn't include any (useful) payment modules (Authorize.net anyone?), coupon module, data export and import, quantity discounts or search engine friendly URLs out of the box. They do offer discounts for web developers though (at least 50% and they say up to 100%), and the complete source is available without obfuscation, so at least those functions that are needed can be added which can really ease the pain of paying for the thing in my opinion.

As expected, Avactis has the ability for custom themes though I'm disappointed to see that there doesn't appear to be any theme community in existence (compared to other cart software packages). The reasoning behind this is probably because Avactis bills itself as being "easy integration with an existing website thanks to unique Avactis tag technology". And by unique they mean including a php file and calling php function snippets. I'm all for marketing hype but wtf is that?!? Here's an example:

<?php include('init.php'); ?>
<?php NavigationBar(); ?>
<?php Breadcrumb(); ?>
<?php ProductList(); ?>

It's called php and EVERY php site does this Avactis not just you. Essentially though, this isn't a bad strategy and, in fact, is definitely a strength especially without all the hyperbole. Obviously, Avactis can stand alone and doesn't need to be integrated into a separate site but it's a good idea to allow easy integration into existing sites.

Avactis PHP shopping cart software

Avactis is packed with all the features any online store would want; content management system, coupon and discount mechanisms, order and customer management, packing slip builder to name a few. Each feature is also highly customizable and usually includes a plethora of options and settings; nice if you build complex product build outs or specific functionality. On the other hand though, this amount of features and customization comes at a cost in terms of ease of use, work flow and a lacking user friendly experience.

The administration interface for Avactis is a nightmare mess of pop-up windows, tabs and accordion widgets. Slick is not a word I would use to describe the experience. Functional or crappy or painful or eyebleedingworstinterfaceeverpleasekillmefortheloveofgod!; those are better words to describe it.

There's inconsistencies all over the place; for example while editing a product the help widgets will open another pop-up window (sigh...) yet in the main menu hovering over a link will display a tool tip and in the installation process the help widgets are all inline divs.

Avactis Admin Popups

Going through the code yields such codesod qualifiers as the below:

<?php
    /**
     * Defines the possibility of uploading images by file type.
     *
     * @param $file The array consists of the $_FILES variable, for
     * the current file.
     * @return boolean
     */
    function isAllowedImageType($file)
    {
/*        $type = _ml_strtolower($file);
        switch ($type)
        {
            case 'image/gif':
            case 'image/jpeg':
            case 'image/jpg':
            case 'image/jpe':
            case 'image/jfif':
            case 'image/pjpeg':
            case 'image/pjp':
            case 'image/png':
            case 'image/x-png':
                return true;
            default:
                return false;
        }
*/
        return true;
    }
?>

If that doesn't make any sense to you suffice it to say that the above function is supposed to verify that an image's mime type matches the list; unfortunately though, the function is, what we call "commented out" and will not be executed. All files sent to the function will validate as true so, essentially, any file type can be uploaded. While it's entirely possible this is an old function that was replaced with something useful, and it should be noted that I never found any calls to that function (but I really didn't look too hard), the fact that it's still in the code-base speaks volumes, to me, about the project maintenance at the very least.

On top of that Avactis has one of the most wasteful and useless installation processes I've ever seen. Initially, Avactis ships with a very minimal file set that includes a 15 mega byte (MB) file whose sole purpose is to contain all additional files in a gzipped and base64 encoded string. The sole purpose of this is to allow Avactis to programmatically write all source files to the file system during installation. For the life of me I can't imagine what functional requirement precipitated this design decision. Considering the complexity added to the development cycle this would cause it makes no sense to me; I'm at a loss. I could be missing something though; you never know it may have a really sick benefit that I'm just not privy to.

Are any of those "issues" at all relevant? Not the function and not the installation process. Those are subjective issues that may only matter to me; it's armchair quarterbacking at it's finest (if I do say so myself). For everything else, well, that obviously depends on the specific needs of the project. For my needs it's a pass simply because my clients care about the interface and Avactis looks like it hasn't been updated since 2002 (at least).

So, while Avactis is a nice program with all of the features any store would ever need I personally feel that it's not ready for my project.

Related Posts

ACM Interactions
Stand Alone ExpressionEngine Authentication
MSRC
Importing Legacy Users Into ExpressionEngine
Nesting Platform

Tags: Avactis e-commerce php

This entry was written by Eric Lamb and posted on May 31st, 2010 at 10:14 am and is filed under Brain Dump, Code, Programming, Rant. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response below.

11 Comments

  1. Charles says:
    June 01, 2010 at 09:26 am

    For the life of me I can’t imagine what functional requirement precipitated this design decision. Considering the complexity added to the development cycle this would cause it makes no sense to me; I’m at a loss. I could be missing something though; you never know it may have a really sick benefit that I’m just not privy to.

    Have you ever created an application designed for a shared hosting environment?  Try asking your neophyte users to upload a few hundred files in their FTP client and not routinely screw it up.  Having an installer extract the files and set required permissions avoids this problem entirely.

    Reply | Quote
  2. Eric Lamb says:
    June 01, 2010 at 10:03 am

    Hi Charles,

    I admit that I haven’t designed anything for a shared hosting environment; though my experience working with shared hosting environments contradicts the claim that this is necessary anymore.

    I find it flawed logic that users should have their hands held when setting up an online store. They’re going to have to learn all sorts of things and FTP has got to be simplest of “new” things they’re going to be exposed to. And, as I said, considering the complexity added to the development cycle this is a silly design decision.

    I mean, hell, if it is because of permissions, there’s no reason the flat file system couldn’t be uploaded like every other web application does and have the permissions set programmatically. This is just unnecessary complexity.

    Reply | Quote
  3. Charles says:
    June 01, 2010 at 08:47 pm

    I mean, hell, if it is because of permissions, there’s no reason the flat file system couldn’t be uploaded like every other web application does and have the permissions set programmatically.

    The unfortunate majority of shared hosting providers don’t run PHP as a suexec FastCGI, or use other tricks to make the Apache/PHP user identical to the FTP user.  Files created by the FTP user generally can not have their permissions changed by the Apache/PHP user.  The reverse is also true. 

    I admit that I haven’t designed anything for a shared hosting environment [...] I find it flawed logic that users should have their hands held when setting up an online store.

    Try it some time, and you’ll quickly have your impression of users and your general faith in humanity’s ability to follow written instructions shattered.  I wrote apps for shared hosting in a former life.  The ability of users to ignore, misread, misapply, misunderstand, mistrust, and generally fail to follow clearly written, plain-English, written-by-an-English-teacher instructions astounded me.  If not for the file ownership issues (which were harsher in our case due to the nature of our application), we would have done a one-click bundled installer as well, just to avoid users screwing it up.  Then again, we also charged users money when they screwed it up bad enough that we needed to spend time undoing their work, so maybe it turned out better in the end!  wink

    Reply | Quote
  4. Eric Lamb says:
    June 01, 2010 at 09:35 pm

    I understand your point man; this job would be awesome if it weren’t for the stupid users smile

    Now whether I agree with the need to try and simplify matters for newbies is another story. But, yeah, ease of use makes sense for a reason to go about the single file install approach. Especially since Avactis is a paid app; I’m sure they want to minimize as much support calls (costs) as possible.

    Thanks for the insight smile

    Reply | Quote
  5. Lloyd Delapena says:
    May 15, 2011 at 06:42 am

    Greetings from Florida! I’m bored at work so I decided to check out your website on my iphone during lunch break. I really like the info you present here and can’t wait to take a look when I get home. I’m amazed at how quick your blog loaded on my mobile .. I’m not even using WIFI, just 3G .. Anyhow, excellent site!

    Reply | Quote
  6. Ted Thompson says:
    June 01, 2011 at 05:41 pm

    Our web design company was looking for a mid-range ecommerce platform that had decent functionality, a reasonable price tag and wouldn’t take a lifetime to implement. We chose Avactis and so far all is well. We have a few Avactis websites under our belt, they were easy enough to implement. Like most ecommerce platforms, Avactis is a big beast made up of a lot of template pages so a decent design will take more than a few hours to implement. It usually takes us a couple of weeks to have it up and running and tested across all browsers. The Avactis Tag system is straight forward to understand after a bit of study. Overall we are happy with it and shall continue to use, well worth checking out.

    Reply | Quote
  7. singh says:
    April 01, 2012 at 06:07 am

    thanks for cool article ...

    regards

    Reply | Quote
  8. john says:
    May 07, 2012 at 08:15 pm

    Avactis is the biggest pile of crap i’ve ever used. They basically built a shitty ecommerce platform so that they could rope people into their “support credits” method of stealing your money.

    Reply | Quote
  9. Amazon promotional code books says:
    March 04, 2013 at 04:32 pm

    Remarkable issues here. I’m very satisfied to look your post. Thank you so much and I am taking a look forward to contact you. Will you kindly drop me a e-mail?

    Reply | Quote
  10. e tigara electronica says:
    March 18, 2013 at 07:30 am

    Do you have a spam problem on this site; I
    also am a blogger, and I was wanting to know your situation;
    we have created some nice procedures and we are looking to
    trade techniques with other folks, please shoot me an email if
    interested.

    Reply | Quote
  11. car insurance quotes says:
    March 21, 2013 at 09:52 pm

    Absolutely agree with you

    Reply | Quote

Leave a Reply

Click here to cancel reply.

  • Subscribe: Entries | Comments
  • About Me

    Email Email
    Twitter Twitter
    310.739.3322
  • Categories

    • Brain Dump
    • Business
    • Code
    • IT
    • Programming
    • Rant
    • Servers
  • Archives

    • February 2012
    • October 2011
    • August 2011
    • July 2011
    • June 2011
    • May 2011
    • April 2011
    • March 2011
    • February 2011
    • January 2011
    • December 2010
    • November 2010
    • October 2010
    • September 2010
    • August 2010
    • July 2010
    • June 2010
    • May 2010
    • April 2010
    • March 2010
    • February 2010
    • January 2010
    • December 2009
    • November 2009
    • October 2009
    • September 2009
    • August 2009
    • July 2009
    • June 2009
    • May 2009
    • April 2009
    • March 2009
    • February 2009
    • January 2009
    • December 2008
    • November 2008
    • October 2008
  • Advertisement

Copyright © 2008 - 2013 Eric Lamb - All rights reserved