History of the Shop-Script project

While our team is busy developing the Webasyst framework, new Shop-Script  and other apps, I will tell you how the Shop-Script project began.

shop.vofka.ru

I began to write Shop-Script in the fall of 2001, more than ten years ago. I was then a second-year student in the Faculty of Computational Mathematics and Cybernetics at the Lomonosov Moscow State University, and decided to learn PHP. I wrote programming code evenings in the university's dormitory, and completed the first version in about one month. The idea of writing a shopping cart script grew out of my desire to create something useful with PHP and to earn some money.

My exercise became a business. The first copy of Shop-Script was sold on January 21, 2002 on a floppy disk for $70 (script – $50, installation – $20).

If you are interested, you can download that very first version which I sold for $49 until 2004: Shop-Script 1.0 (ZIP archive; 70 KB). The script was clumsily designed from the very beginning, and was written as a spaghetti code; however, it required absolutely no time to get into the code organization. You could immediately identify which file to edit by its name. At that time I was not very concerned about source code organization issues. All projects which I had completed before Shop-Script were mainly of academic nature: interesting algorithmic problems rather than large commercial projects. I had never developed any web-based applications before. All the same, the script was quite functional, and it sold, yielding some money which allowed me to keep working on the project.

I named the first version of the product generically — "shopping cart script". The first website dedicated to the script was opened on a subdomain of my personal site at shop.vofka.ru. Only a stripped copy of that website without embedded images remained at web.archive.org (upon the launch, the product was presented in Russian language only):

Shop-Script 1.0, 2.0

The name "Shop-Script" was introduced around 2002—2003 (cannot remember exactly), and shortly after that, the website www.shop-script.com was opened. There the product was presented in two versions differed by feature set: 1.0 for $49 and 2.0 for $199. The product for the first time became something more serious. Here is how the website looked then:

Further development of Shop-Script was facilitated by the WebAsyst project initiated by my father. We decided that it would be better to offer both products on behalf of one company. At first WebAsyst promoted the development of Shop-Script. Some time later Shop-Script took the leading position and became the motive power of the entire WebAsyst project. Help me help you!

Shop-Script FREE, PRO

In 2004 Shop-Script 2.0 was renamed Shop-Script PRO, Shop-Script 1.0 was discontinued, and a free script Shop-Script FREE was quickly written from scratch (by the way, you can still download it; and I still like it for its simplicity). I naively believed that the freemium distribution model would work for us, but it did not. Here is a screenshot of the website and the logo in 2004:


(This layout is a bit corrupted, but that is the only screenshot I could fetch from web.archive.org. Sorry.)

If I were beginning to create the Shop-Script product line now, I would never give such silly names to script versions as FREE, PRO, or PREMIUM. And that's funny to recall this now.

In 2004 we rented a small office in Moscow, and then the professional development of Shop-Script began.

Shop-Script PREMIUM

At that time I personally rendered all technical support to Shop-Script users and offered software customization services for an extra fee. This did not allow me to address product development. The situation seemed to be deadlocked, because we had virtually no money to resolve it and routine orders took up all my working time. There were only three of us in the team (my father for WebAsyst, myself for Shop-Script, and an office manager). However, in 2005 we managed to change the situation by attracting extra investments; we established a technical support service in Krasnodar and I ceased offering custom services to Shop-Script users. This released me from routine business tasks and allowed me to offer a new product in a short period of time — Shop-Script PREMIUM, which sold for $299. This product ensured the company's stable financial position. Below is a screenshot of the website and the logo in 2006 (not a bad idea for a logo, by the way!):

Our decision to stop offering source code customization services seems to me one of the key points which helped the product to move forward. If we had acted differently at that time, the whole business could have ended up as an ordinary web development studio with "yet another shopping cart script".

Shop-Script PREMIUM was one of the pioneers among shopping cart engines on the Russian Internet. You may think that there have always been pretty similar solutions, both free and paid, but that was not true. In Russian market, some of the currently available products simply copied Shop-Script ranging from taking the text of the license agreement and the design of individual screens to fully copying the source code (for example, a clone of Shop-Script PREMIUM customized by some "specialists" exists even now — shopcms.ru). Such phenomena only pleased us; we felt the joy of paving our own new road.

Shop-Script PREMIUM, like the very first version, was entirely written using procedural programming style. You can, and justifiably, criticize procedural coding in development of large projects; however, I believe that this was exactly what made the product popular among freelancers and what contributed to its wide distribution over the Russian Internet. Without any documentation you could easily understand which file to edit to achieve a certain goal (to add a small function, to modify a template, etc.). Of course, I am far from encouraging you to use procedural style everywhere, but you should not underestimate the benefits of "flat" code when a programmer can take a quick look and understand at once how everything works. OK, this is a topic for a separate discussion...

Upon release of Shop-Script PREMIUM, the PRO version almost immediately lost its popularity. Everyone wanted to have all the available new features and was ready and willing to pay another hundred dollars for them.

WebAsyst Shop-Script

Shop-Script PREMIUM was used as the basis for the next product version — WebAsyst Shop-Script. Upon its release in 2008, the final merger of WebAsyst and Shop-Script took place, and Shop-Script became a fully-fledged WebAsyst application. (Until then, the websites of Shop-Script and WebAsyst had only common contact info.)

I still doubt that it was the right technological decision to merge Shop-Script with WebAsyst, because by doing so we over-complicated the source code of Shop-Script. WebAsyst by that time was quite a complex system and was internally not too well designed. It would have probably been a better idea to re-organize WebAsyst into Shop-Script, but what has been done cannot be undone.

We were then passionate about creating an online service which would allow users to quickly establish an online store. We saw great future for SaaS and tried to "kill two birds with one stone": to write good open source shopping cart software and to ensure smooth operation of the online services. Strategically, this turned out to be the false direction to go because we still cannot kill those proverbial two birds. By trying to adjust the product's architecture to the online services, we harmed the script's clear file structure. It was my error in granting the developers (though only one or two of them) too much authority to design the code architecture and I did not participate sufficiently in the development. This resulted in the initially planned, well-organized module-based code structure causing more harm than profit, because the "right" code structure made it difficult to analyze the source code and to understand how it actually works. The new WebAsyst Shop-Script was at once rejected by freelancers and other third-party developers.

Nevertheless, from the ideological point of view, Shop-Script fitted well in the WebAsyst's multi-app concept. At first we released the hosted version of WebAsyst Shop-Script for the online services and later made the open source version available for downloading which you can still buy on the Shop-Script website.

Now WebAsyst Shop-Script is a very bulky and inert product from the aspect of implementing new features or customizing the source code. It still remains a solid piece of software, and no matter how much you may criticize its source code, Shop-Script is really good for establishing an online retail store. I am not exaggerating. Its efficiency is clear from the moment the first product is added to the catalog until the time the first order is sent to the customer. I can still recommend it to my friends if I see that what they need is an ordinary retail store operating on the Internet. Today my wife's online store — Mega Podarki (she is selling giant oversized products, the store is only for Russian market) — is also powered by Shop-Script. There are some drawbacks, of course, but you can find them in absolutely any system. By rough estimation, the current Shop-Script is suitable for 80% of customers establishing an average online retail store. Its relative unsuitability becomes obvious only when profound modification of its operating logic is required.

Framework

This is where the story ends. Here is a brief look into its future. The low mobility of Shop-Script has become a very serious problem to us. The fact that the product will not be able to stand up to the competition in its current state became obvious long ago. It is even more clear now when we see how the script sells abroad (i.e. the English-localized version). We could have kept adding more functionality to Shop-Script as before, but this would have only delayed a real solution to the problem. To battle the bulkiness of Shop-Script we decided to make a knight's move by using the gained experience and the general idea of the existing Shop-Script and re-writing the source code from scratch. We are doing so in both Shop-Script and the entire WebAsyst line. This is how the Webasyst framework began.

The brand-new version of Shop-Script is expected to be introduced in December 2012, and will be fully based on the Webasyst framework. We recommend that developers who are eager to look at the new Shop-Script familiarize themselves with the framework architecture. Together with Site, Photos and Blog apps, it will technically be almost half of the upcoming release of Shop-Script: I mean the code structure, design editor, and other system-level features. In summary, I feel strong enthusiasm for the project's future. Today we have a very good team and enough experience to avoid previous mistakes in the new Shop-Script, and to finally make it world's best shopping cart software.

Thank you for reading!