Miesięczne archiwum: czerwiec 2017

New version of the mobile app

The i-systems mobile team has recently been actively working on the new capabilities of the mobile application, developed at the end of 2016. The result of the work is the next version of the application, with new solutions.

Focusing on positive customer experience

Taking care of the positive experience of the app users, the navigation has been changed, adapting it to the Material Design and iOS practices. The login screen and shopping cart have been rebuilt. In addition, the new version of the mobile application allows the customer to log in four ways, because two more options are now available – Google Account and Touch ID.

After logging into the application, a completely new form of the home page is displayed. The sales system administrator configures this view directly from the online store. The page can be tailored to the individual needs of the brand, including: title, description, photo, order, product link, flag or category. New settings appear immediately in the mobile app.


Functionalities that support sales

In the new version of the mobile application, a bar code scanner was launched. This solution can enhance omnichannel actions. Its usefulness is shown in an example below:

A customer in a brick-and-mortar store cannot find an appropriate size of the product. What he needs is only to scan a barcode on the article and he will be redirected to this product in the online store. Therefore he will be able to check if the product of the right size is available online and make a purchase.

Mobile app has been integrated with Ionic Cloud. It made it possible to add push notification function. By push notifications, an administrator of the online store can easily send information about a sale, additional discount, order accepted for execution or waiting for execution, as well as change in a shipment status. According to research, push notifications are opened by around 90% of mobile users.

Integration has also enabled Live Updates. The solution allows quick update of data in mobile app. Once a change is made to the sales system, for example: a new sale is added, it will also appear in the app. This is possible, because once launched, the application registers itself in the data cloud and checks for new versions. This is another element that provides consistency of data in the online store and in the mobile app.

How to manage discounts in e-commerce?

Managing discount policy is an art of finding balance between encouraging customers and making profit for the company. The question is: how to prepare a consistent discount policy and avoid mistakes?

When we want to design a discount policy, we should start with an analysis of the customer and his behavior, while sales data should be used as a source of knowledge. The second step is to determine the profitable levels of discounts, with the company’s assumed profits. The third step should be to define the activities for which the company wants to reward the customer. It is good practice to adopt the principle that the highest discounts are received only by a privileged group of customers, which is a priority for us. The analysis should provide us with practical knowledge to first and foremost be able to make a fair segmentation of our customers and, second, to implement an appropriate strategy tailored to the model and business area of the customer.

Discount Politics Module

Managing discounts is extremely simple thanks to Discount Politics Module. All data can be managed from the administration panel. It allows easy implementation of new forms of discounts. In addition, it provides the ability to determine the link between discounts, manage transport pricing strategies and set an individual basis for calculating the base price or post-promotion price. The order of the discounts is determined by the position of the delegate in the hierarchy – the higher in the hierarchy, the higher the discount form. Discount Policy Module is a excellent sales tool.

Each of 6 solutions, described below, has advanced technology, and the user interface has been designed so as the key functionalities are always visible. Consequently, no matter what functionality the administrator uses, he always has an easy access to the basic settings, such as whether the discount includes a cumulative discount, a discount on the base price, the discount limit, the exclusion of products from further discounts, or the possibility to stop a discount after application.

Customer individual discount

Owners of the online stores often encounter situations where the customer requires an individual approach, but unfortunately he cannot qualify for any of the categories of registered, one-time, or VIP customers. The best solution is to apply the Customer Individual Discount, which allows to set the discounts and assign them to selected contractors in an unlimited way.

It is a valuable solution for the seller to choose sequence or cumulative discounts. They have an option to set an individual price calculation basis. A sequence discount is recommended when the online store offers a discount on a product with the price already lowered by a previously discounted price. The second classic solution is a cumulative discount – always deducted from the base price of the product. An individual customer discount is perfect as a single solution, but it can also be a complement to the other 5 types of tools in the Discount Policy Module. It is worth remembering that when it is linked to other discounts, its priority is reflected in the list in the administration panel.


The customer who received a discount coupon will most likely visit an online store and decide to use it. The i-systems solutions allow to create a discount policy to drive targeted traffic. In addition, the solution allows the administrator to create coupons based on all possible parameters, including delivery costs, cart values, product flags, order quantities, or user categories.

The coupon tool is ideal for store owners with diverse customer groups. The i-systems solution allows to create group and dedicated coupons that multiply conversion. A great feature for online store administrators is the ability to automatically generate coupons, depending on the final price of the cart or for each product individually. Having coupons in Discount Politics is an investment in the store that builds relationships with customers and allows to attract new customers.


Promotion is a business concept, which in the Discount Policy Module is nothing more than defining the most powerful tools that drive sales. By activating the delegate responsible for the Promotion, we can primarily manage active store promotions and dependable discounts. This means the possibility of granting discounts to specific products, provided that other specific products are in the basket, the ability to exclude products and categories from applying a discount. In addition, the program allows to create an individual algorithm to apply discounts depending on the needs of the store or sales platform.

Depending on what sales results we want to achieve, we can use the mechanisms that activate the discount options, at a given time, and set the hierarchy and the amount of discounts. An important solution in this delegate is its compatibility with the other 5 delegates. The system allows you to schedule the exclusion period for the product category data from applying the discount.


Threshold discounts

Determining the discount thresholds is essential to maintain a consistent discount policy of the company. Owners of the online stores are pursuing a diversified discount policy in order to be competitive. Control of the system and correlation between different business groups is not always obvious. A Threshold Discount delegate, designed by i-systems, is an improvement in setting discount levels and their implementation. This solution is dedicated mainly to stores where many promotions have to be overlapped, for example, the seasonal promotion is overlapped with the coupon and the individual discount of the customer. In this situation, setting a discount threshold at a certain level will keep a consistent discount strategy.

Free delivery dependent on the product flag

An interesting way to give a discount is to assign it depending on the category of a product customer is to order. In that way, the designed discount offer is based on minimizing transport costs. In order to prepare such a promotion, the product flag must be specified. It determines whether the shipment will be free when the product in the cart has this specific flag. The delegate of free delivery dependent on the product has a very important function, which is the choice of the country the discount will be applied to. It is possible to choose the form and maximum cost of the transport.

Free delivery dependent on the cart value

There is also a possibility to set up discounts to make them dependent on the cart value. This is a favorite form of discount, especially in industries where customers are used to large orders. In this case, a price ranges for free shipping are being defined. Free delivery dependent on the cart value can be also correlated with the basic settings of the Discount Policy Module and, for example, it can exclude products from further discounts or add individual customer discounts.

Discounts and zero prices

A common problem for stores are products or services that have a zero price. This is a result of gratises and discounts. However, from the accounting point of view, zero-priced products cannot appear on the invoice. This issue can be solved in the Discount Policy settings. For example: one solution is to add a penny (or 0.01 in another currency) to the price of the product. Finally, in order not to change the final sum for payment, added units (0,01) are added to the prices and services of other products or transportation. The designed functionality of the Discount Policy module allows balancing of prices and smoothly running an integrated sales policy according to accounting standards.

Solutions for e-commerce

The Discount Policy module uses the latest solutions and is the answer to the challenges of the e-commerce market, where both the diversification of promotional activities and their compatibility are important. The program is a dedicated, multi-functional premium tool, equipped with key functionalities which provide users with: easy calculation of applied discounts, the ability to set active discount hierarchy and intuitive management of all active promotions in the store.

Behat as the best scenario for software testing

Behat is a testing tool, which allows to apply behaviour-driven development (BDD). The basic premise of BDD is to get to know the expectations, needs and goals of the user, in order to create the software which meets all of these demands. BDD was created from a combination of unit tests (to test the correctness of individual components) and acceptance tests (to obtain confirmation of software quality).

BDD is based on the so-called scenarios, that describe the business needs of the software, which, in combination with a tool such as Behat, allows to automate the implementation process. The Behat tests, created by Konstantin Kudryashov, are written in PHP and they support communication between developers and any person using the software during the creation process.

Behat tests can be run on each stage of new code implementation. The first stage is creating feature file for given functionality, in which the scenario is placed. Feature should consist of: easy, clear language, .feature extension, benefits, roles and features of the given functionality.
For example:

Feature: Weather Module

In order to get the offer of the product matching my location,
as not logged user,
I need to be able to share my location on my mobile device.

Before starting works on a feature, it is important to talk to a business stakeholder because he may want to introduce rules or conditions for a particular feature. With this knowledge, there are no obstacles to start the stage of creating the scenario.

Each feature can be described by one or more scenarios, which are to explain the way the functionality works in different conditions. Scenarios follow a steady plan, which include scenario description, context, event and result, and they are written in special language, called Gherkin. By default, each scenario consists of three steps: Given, When, Then. For example, a simplified scenario might look like this:

Scenario: Display products from winter collection.

Given the user is in Aspen, when the temperature is -1℃, then the down jacket will be displayed.

This scenario can be further enhanced by the steps And and But. Similarly, the sentence above may look like this:

Given the user is in Aspen, when the temperature is -1℃ and it is snowing, then the down jacket will be displayed and Pom Pom Cup, but not swimsuit.

The above mentioned steps are nothing more than just PHP functions created with a keyword, regular expression, and callback function. The message in the scenario will be treated each time as a step. Steps define what should happen when one of the messages is triggered inside the scenario.

In the next stage, after defining the feature, scenario, and steps, an attempt is made to execute the scenario as a test with the bin/behat command, followed by a message that the test was successful or failed.

The same scenario can be run in different contexts, so different application environments can be tested.

Behat provides a simple, understandable and constructive conversation between a developer and a stakeholder, written in a structured format. Thanks to this, it can be determined what the functionality should look like before implementing it, and to make sure it is of the right quality. Behat also allows to automate checking its behavior under certain conditions. After successful completion of the test, the functionality works in the e-commerce system according to the assumptions used in the scenario.

Optimizing images on mobile devices

The i-systems offer has been extended to include another novelty – optimizing the size of the loaded images.

Until recently, all banners, graphics, and photos were loaded responsively, which means they scaled automatically by adjusting to the size of the screen. However, the size of the image remained the same, regardless of the device. For example: a large image was loaded onto a smartphone, hence the loading time could have been longer. In addition, Responsive Web Design has become a standard solution, so i-systems has made a further improvement.

At present, a change has been introduced, dedicated to loading photos of products, as well as any images in the online store, adjusted to a specific mobile device. This allows the online store to load much faster on mobile devices, because smaller images are loaded to fit the screen size.

The graphic depicts how the speed and weight of loading the 48 products in the category page are changing. In the case of a desktop category page weight of 2.7 MB, after optimization on a mobile device, it decreases to 0.5 MB, which means that the page weight is reduced by 82%. Similarly, the page loading speed changes, which in the case of the desktop is 3.37 seconds, and after optimization on the mobile device, it is 44% faster.

For high-resolution HiDPI screens, the so-called Retina, there is a significant improvement in image quality. In addition, there is the option of turning off quality to significantly speed up the store loading on these devices. The store administrator determines what is the priority when loading photos (quality or speed).

In the near future, the new solution can allow mobile browsers to decide whether to load sharp images (when connected to wifi) or poor quality, but faster (using 3G) or personalized phone settings.