Managed random and online store gamification

This spring, I graduated from the Gamification course at Coursera. I can’t say that I became a fan of this business - well, I don’t see any reason to poke games wherever I want. But, as the owner of my online store that has been operating for 4 years, I was very interested in the topic of using gamification in e-commerce projects.

I looked at 3 pages of search results for “e-commerce gamification” and when I saw only miserable leaderboards with badges and points there, I realized that I had to start work. The idea of ​​a huge project that has no equal in the market came up in my head, but because of the novelty of the gaming approach to sales, it was decided to build a regular online store with game mechanics, and only if successful, start work on a big idea.

I couldn’t just get started. My programming skills stopped developing after leaving the institute in my second year 10 years ago, and my knowledge was limited to understanding the simplest php formulations in the bowels of my beloved OpenCart. Taking advantage of the decline in summer sales of equipment in my store, I delved into all the available courses at I went through everything in 3 weeks and spent another week on free CCS3 and jQuery courses at I understood that I did not become a programmer, but I achieved my goal - now I could easily read someone else's code and write my own simple one.

The game like a lottery seemed to me much more interesting than the usual accrual of points for purchases and as the main idea I chose pseudo-random controlled price generation in the given ranges and the specified frequency of occurrence. The generator was written in php, and its algorithm was extremely simple, although I have never met it anywhere (most likely due to my inexperience).

The generator gave the price in a given large range. This range was conditionally divided into N separate smaller ranges, each of which had a counter to account for the number of responses, as well as a part of the margin determined by the administrator and the necessary frequency of such prices. The more subbands, the smoother the generator. But 8 ranges were enough for me to cover 3 types of unprofitable prices, 1 close to zero earnings and 4 prices with various positive margins. After issuing a price in the general range, the generator determines which of the ranges it belongs to and checks the frequency of occurrence for this type of price. If they are no more than necessary, gives the price to the user, and adjusts the counters. Otherwise, the price is regenerated.

The simplest model was later built and tested directly in TextMate. The search for partners and employees is a separate big topic for now. It turned out that we created the entire project of a “gamified" store together with my friend, we had to deal with the development and launch alone.

CMS OpenCart was chosen as the framework. It is very simple in structure, corresponds to the MVC pattern, convenient for a beginner, and works quite quickly even at relatively high loads. The project of a random price generator for opencart received the internal name bounce, and work began in early June. I did the server side, and my partner did the landing page, pop-ups and a jumping button. To create the OpenCart module, DIYModuleStarter was loaded - a ready-made framework for the Opencart extension, all the settings were made in the admin panel, and the front part was built into the product page template.

Later, a collection of statistics was written for each game click on the site’s creators and its output was organized in the administrative panel. It was organized to save the last price displayed for this user for this product for half an hour. Upon entering the site, the user’s ID was assigned to his clicks in statistics that were committed even before entering. Then we added order processing with more than one product quantity, quick access to the site, simplified registration and checkout.

September 1, we launched the beta version, or rather its first version. The price changed when the user clicked, everything worked smoothly, the friends we showed the beta liked. But it was somehow unclear what to do. There was no win-state - a clear winning situation for the user, the state to which he should strive, the very meaning of the game. How does the buyer know that he won or that we can win at all?

In two weeks we made 3 serious pivots. The main thing was the choice of priority in favor of traffic and the number of clicks, instead of profit from each sale. As a consequence of the first, we sometimes decided to sell goods not only at the “input” price, but also at a loss, due to part of the profit from profitable sales. The last difficult, but very correct decision was the introduction of the Skidkometr. In gamification, this is called feedback - game elements that provide the player with a response. Our scale shows the mark-up level at each click of the user and clearly informs him of the receipt of a special price.

Not a lot about the business model. I believe in advertising and its ability to provide any mass product. Whether it's a Kindle or a free WiFi hotspot, an online movie theater or television. Everything that is popular and “first” lives on through advertising of the new and later. So I chose an advertising business model for my online store. I know how difficult and expensive it is to attract every customer and decided to try to spend this money on dumping in a game form, mostly at the expense of suppliers. More precisely, due to the special conditions under which we buy and sell goods. In exchange, partners will receive advertising, attracting people to their pages on social networks and buyers of positions that are not represented on our gaming site. There was no plan to take a fixed fee for placing goods on the site. Again, this store is just a way to test an idea, therefore, the plans did not include making a profit. And so that a non-profitable project does not take up too much time and energy, it was decided to limit the range to just a hundred products.

We decided on everything, it seemed that everything was already very clear, but because of the novelty of the idea, users asked, in our opinion, absolutely stupid questions. “I will win the price, buy the product and it will disappear from the site?”, “I went to the main page, everything is like the others, left ...”, “How to buy the product at the won price?” Should I call and name the number on the screen? ” Thus, the final touch was the addition of interactive CSS tips on the first 5 clicks on the price tag and the conversion of the “dead” price tag on the main one to the active one.

Yesterday, after the publication of the press release, we were faced with the first wave of visitors and the first problems. Due to improper accounting of the store’s earnings, the generator began to issue prices “minus”, not paying attention to the balance. One additional check solved the problem, but for two customers who did not receive the goods for 10% of the cost, the deposit definitely remained. Then we encountered a counter reset due to the simultaneous writing and reading in the SQL database. This post about locks on Habr helped a lot , although it was enough only for the most active tables to change the engine to InnoDB.

I did not begin to describe in detail each of the stages of creating the site, because for most of you it will be difficult to find something new there. I don’t give a link to the site, because I want to leave this entry in the E-Commerce Hub, and not “I am PR”. I wanted to share the simplest, but very effective algorithm of a pseudo-random number generator and draw attention to the topic of Gamification. The prospects for its use in ecommerce are simply huge. I will be happy to answer all questions in the comments.

Also popular now: