Archive for the e-Commerce Blog Category

Raketenwissenschaft der erfolgreichen Offshore und Nearshore Softwareentwicklung

Ich war bei der SIMSA in der Schweiz gestern und habe von einem Agenturchef von einem Misserfolg in Zusammenarbeit mit einem Offshore-Dienstleister gehört. Heute Vormittag erfasste ich ihm diese kollegiale E-Mail.


Offshore- & Nearshore-Softwareentwicklung ist ein Komplex und leider nur wenig von kleinen und mittelgroßen Softwareunternehmen verstanden worden.

Der Fehler liegt bei den Dienstleistern, weil sie die Sensibilitäten von Agenturen nicht erkannt haben. In Indien zum Beispiel, aber auch in Mazedonien, verstehen Programmierungsdienstleister öfters ihre Berufung nur als “billig programmieren”.

Ja, man möchte einen Produktionskostenvorteil besitzen, aber das ist längst nicht das größte Value-Add für eine Agentur. Als Dienstleister muss man gedanklich auch mit Qualitätsanspruch, Prozess-, Innovationsfähigkeit, Customer-Value-Points, Konkurrenzdynamik etc. harmonisieren.

Auch haben sich Dienstleister und Agenturen nicht sehr erfolgreich einander angenähert, sodass sie sich gegenseitig als strategische Partner verstehen. Ohne diesen längerfristigen Ansatz bleibt die Zusammenarbeit ein außer Kontext gesetztes Flickwerk.

Generell gibt es viele essenzielle Themen, die im Allgemeinen von Agenturen/Softwarefirmen in Bezug auf Offshore/Nearshore überhaupt nicht thematisiert werden.

  • Expectations Management
  • Kommunikationsstandards
  • nichtfunktionelle Anforderungen
  • Kontaktmöglichkeiten
  • Coding Standards und entsprechende Automatismen
  • Rollenverteilung (im Zusammenhang mit Expectations). Dienstleister sowie Agenturen sollten sich im Klaren sein, wer wozu fähig ist. Was soll er lieber machen. Was lieber den anderen überlassen.

Es ist fast überflüssig zu erwähnen wie essenziell Offshore/Nearshore-Programmierungsdienstleister heutzutage für Softwareagenturen sind. Sie bringen neben technischen Skills, Kapazitäten die für das Wachstum der Agentur entscheidend sind. Der Rohstoff ist also da. Es ist nun eine Managementaufgabe aus diesem ein markttaugliches Endprodukt zu erstellen.


Ashant Chalasani
Geschäftsführer – euroblaze®

Machine Learning for E-Commerce: OXID e-Shop

Machine Learning for E-Commerce: OXID e-Shop

Just as Amazon knows which products you may be interested in buying, based on your past purchase-history, it should be possible for independent shop-owners to offer a more intelligent shopping-experience to their users.

As a E-Commerce technology service-provider, our mission is to bring sustainable technology-trends to merchants and E-Commerce agencies in Germany and Switzerland.

– In 2015, we added Shopware to our portfolio.
– In 2016, we worked hard on building a Multichannel E-Commerce Framework, including ERP capabilities based on odoo.
– In 2017, we are looking forward to adding Machine Learning capabilities for E-Commerce to our technology portfolio. This will immediately enhance our HyperSearch® capabilities, and give us new a business-spaces to play in.

Our efforts will primarily be structured around these problems:

Ranking Top Sellers

Based on the sum of order-data available in a database, we would like to derive the top-sellers on specific web-shops. Such a result can of course be derived using SQL database queries. But we intend to solve the same problem using Machine Learning techniques.

User Profiling

Based on user-behavior while on a specific web-shop, we’d like to profile the user, without the user having to log in. For example, we’d like to determine if a user is male or female without he/she telling us. Similarly, we’d like to guess the approximate spending capacity of the user, and promote products in that price-segment.

  • Gender
  • Spending-power
  • Product-category

Trend List

Based on click-pattern of a user, we’d like to guess which type of products the user is interested in, and load those with a higher priority into the shop-interfaces. In other words, utilise ML to provide a highly relevant user-experience.

Demand Forecasting

Based on daily sales data, predict demand, to help the online-seller with purchase decisions. While analysing sales data, consider:

  • Seasonality: Correlation between date of the year the sales happened and quantity
  • Volumes of product sold (without correlations)

Search Results

Search features, especially “enriched” results like those from HyperSearch® can be enriched even more by learning from past click-patterns (matched with search keywords).

Dynamic Pricing

As we perfect our odoo based Omnichannel E-Commerce solution at Simplify-ERP®, we look for more and more ways AI can help our retailer (B2C) and wholesale (B2B) customers derive ever more economic value from their data.

Liquidating inventory is a well known trader’s strategy to maintain high liquidity, to invest cash in new products, and hence offer a better selection to buyers. ML can help sellers determine price-propositions for products, correlated to costs and gross-margins, and help him “push” the product on specific online-sales-channels. Very useful for this learning would of course be competitive price-data on specific channels. So a sub-problem to the Dynamic Pricing problem would be to learn the market-price (on specific channel/market, ex. Amazon) for a specific product.

Cleaning Product Images

Clean and beautiful product images are key to helping buyers make a purchase decision in E-Commerce. AI, particularly Computer Vision (CV) techniques can be used to clean backgrounds of product images. Cost of providing quality images on webpages can be reduced significantly as well. 

HyperSearch® becomes Smarter

Our E-Commerce Search solution should get smarter by training the algorithm to learn keywords that humans type-in and the search-results they have selected to follow. Based on these, suggestion can be pre-loaded (below search-field).

The above learning can be correlated to purchase-data of articles, such that those that have been known to have been bought in the past can be promoted to the top of the SERP.


Of course, we are most keen to apply our solutions to our favorite E-Commerce product, the OXID E-Shop!

We invite friendly agencies to participate as a stakeholder in this research and reap the benefits from an early stage.


  1. Google Cloud ML Platform (Documentation)
  2. Google Prediction API
  3. Learning Works, As Explained By Google
  4. Machine Learning 101 – Supervised Learning
  5. Learning Machines 101: A Gentle Introduction to Artificial Intelligence and Machine Learning
  6. Machine Learning is Fun!
  7. BIG ML- Machine Learning 101
  8. Essentials of Machine Learning Algorithms (with Python and R Codes)
  9. Simple Sample Program. After understanding basics of theory, try this code.
  10. 50 Useful Machine Learning & Prediction APIs
  11. Amazon Machine Learning – Developer Guide
  12. Quora answers on Applications of Machine Learning in E-Commerce. 
  13. Stanford Univ. MOOC by Prof. Andrew Ng – Machine Learning
  14. Building Machine Learning Predictive Model –
  15. Classifying E-Commerce Products based on Images and Text – Christopher Bonnet

Important Concepts

  • Model, Parameters & Learner
  • Gradient Descent, Learning-rate
  • Neural Networks (NN)
  • Constitutional Neural Networks (CNN)
  • Binary, multiclass, regression classifications
  • Algorithms
  • Validation dataset
  • Supervised vs. Unsupervised learning
  • Reinforced learning
  • Softmax Classification Layer
  • Deep Learning
  • Visual Geometry Group (VGG), VGGNet
  • Image-Net
  • Fine-tuning
  • Convolution Filters
  • Convolutional Computer Vision
  • Annotation
  • Logistic Regularisation
  • L1, L2 Regularisation
  • Random Search
  • Random Forest
  • Hyperparameter Optimisation
  • Logistic Regression
  • Transfer Learning
  • Bag of Words Model

Deep Learning Libraries

  • Keras
  • TensorFlow


odoo, Android-Client, iButton, Offline-Mode and other POS Challenges

While advising a potential client with a requirement to be able to setup mobile POS-clients for traveling between retail trade-fairs in Germany, we had the opportunity to analyze a few weaknesses of the odoo POS.

The Web-POS is great, as it simplifies the client-side requirements, requiring no client-software installations, no version-upgrades and no setup. However, use-cases are POS require very high reliability, as a failure could imply lost-transactions, long queues at the retail-outlet and disgruntled staff that aren’t able to execute checkout-functions.

Power Failures

While out at trade-fairs, often with somewhat temporary infrastructure such as power-supply, or network-access, the Web-POS tends to loose all the data in the case of a power-failure. In such a use-case, the browser looses all cached data (which it maintains for operation in offline-mode), which will inevitably lead to deletion of all recent transactions, before committing them to the central odoo system.

The only visible solution we could think of to guarantee zero-data-loss is a native App for the POS hardware, usually a PC-platform, running the Linux or Windows operating-systems.

Native Android/Java POS Client

A local native Android or Java client, though laborious to write, brings with it certain irreplaceable advantages.

  • Local caching of transactions, before they are ATOM-ically committed to the central odoo-system using web-services
  • Easier integration of a wide variety of hardware such as iButtons, barcode-scanners, receipt-printers, ID-hardware like finger-print-reader, and possibly other types of peripheral hardware.

Variant Sizes

One of problems this client expressed was that variants of products, especially size-variants, couldn’t be differentiated easily in a POS scenario on the Web-UI of odoo’s Web-POS. Larger fonts and better differentiation of variants, would reduce room for human-error.

Multiplie Cashiers

An important deficiency of the web-POS was the lack of differentiation between cashiers. It is quite possible that multiple sales-persons use the same cash-register for checking out customers.  In this case it would be important to differentiate between transactions performed by each sales-person, so that problems and performance can be traced back to a specific worker.

iButton / Dallas Key

An iButton, or a Dallas Key, is an interesting innovation from the 1990’s which allows for identification of personnel using a simple button-like electrical-component upon contact with a key-reader.

This simple addition of hardware allows for login/logout of sales-staff, and potentially also triggers the commit of transactions from the POS (local) to the odoo-server.

Several driver implementations are available for integrating the iButton into Java-applications, or possibly even Android.


We concluded that an Android/Java client connected to the odoo Server via Webservices would offer a much more reliable POS. Typically a staff-identification mechanism should be possible to be implemented into the POS over and above username/password (because they tend to be forgotten, and are a hassle to maintain if sales-staff changes often).


  1. Wikipedia – 1-Wire Device Communication Buy-System
  2. iButton Products & Applications
  3. An Example Of How To Interface To Dallas Semiconductor’s iButton And 1-Wire Network
  4. odoo POSBOX

Apache – Negotiation Error in OXID eShop

Recently we faced strange error called “Negotiation Error” while working with OXID eShop:

[negotiation:error] [pid 5632] [client] AH00687: Negotiation: discovered file(s) matching request: /var/www/html/oxid497/out/pictures/generated/manufacturer/icon/100_100_100/symbol(2).jpg (None could be negotiated)

On researching we found multiple solutions and reasons for the error. But none fit the case we were facing. Finally we found one perfect reason for the error.

According to Apache Content Negotiation:

If the server receives a request for /some/dir/foo, if /some/dir has MultiViews enabled, and /some/dir/foo does not exist, then the server reads the directory looking for files named foo.*, and effectively fakes up a type map which names all those files, assigning them the same media types and content-encodings it would have if the client had asked for one of them by name. It then chooses the best match to the client’s requirements.

​So we checked in /etc/apache2/sites-available/000-default.conf and found

Options Indexes FollowSymLinks ​MultiViews​

..added to it.

Upon removing the keyword MultiViews and restarted Apache2. It worked perfect!!


ERASMUS EYE Project 01 – Product Entrepreneur

Digital Marketing for Niche Software Product in Germany

euroblaze™ is an E-Commerce technology service provider in Germany and Switzerland. The company specialises in the OXID E-ShopShopware and odoo software systems.

One of euroblaze’s products is MegaPack™ an end-to-end out-of-the-box webshop solution. Using MegaPack™, customers can have their individualised webshops live within 2 working days.

This ERASMUS project pertains to the planning and execution of the Digital Marketing and Digital Sales of MegaPack™.

As an owner of this project, you will accomplish the following goals:

Strategic Goals

  • Define target market(s) offering fastest revenue potential, based on quantitative market research
  • Define price points (unified or differentiated by market)
  • Brand positioning
  • 3 year evolution goals

Operational Goals

  • Define and execute marketing campaigns
  • Setup and utilise web-traffic measurement systems
  • Implement product-delivery processes
  • Implement customer service processes
  • Define product roadmap and manage feature evolution of the product

This project is to be operated as an independent company. All results are measured as such. A small amount of technical and marketing resources and expertise is available from the parent euroblaze™. The product MegaPack™ is available as Minimal Viable Product (MVP).

Sales of the MegaPack™ product are realised on the online webstore, where an appropriate landing-page will be setup, including the textual (German) and visual description of the solution, as also a link to the demo-installation.

For questions please contact Marko Mladenovski at

TrustedShops Widgets Kill Page-Performance?

Pictures speak a 1000 words. In one of our recent shop-page measurements, we woke up to the rude reality that the popular TrustedShops widget slowed the page-performance of one of our webshops by some -400%.

Performance Slow-Down due to TrustedShops-Widgets

We expect this to influence the Search-Engine-Ranking of the shop, as page-speed matters to the likes of Google.

And of course, it degrades the user-experience (UX) on the page.

A couple of the approaches we will be considering to solve this problem are:

  • Disconnect the widget from the TrustedShops infrastructure, and cache the ratings locally (on shop-server)
  • Load a static image, generated dynamically, automatically and periodically that displays the current ratings to shoppers.

A simple Shop-Module could be utilized to perform cache the contents of the widget, or generate the bitmap which will enable a performant display of the shop’s ratings.

Device Permissions in ShopManager™

Owing to a very good question from Sven Brunk on Google+, about why ShopManager™ for OXID seeks the device-permissions it does during installation, we decided to be open about it, and document the reasons for seeking each one of those permissions in this blog-post.

This is one aspect we haven’t paid much attention to as we developed the app, casually helping ourselves all the device-access we needed. But we know better to appreciate users’ concerns about smartphone-apps gaining inappropriate access to user-data on the phone. So here we make a commitment that we will not take any access to the device that we do not absolutely need to enable a particular feature of ShopManager™.

These are the permissions that ShopManager™ requires in the current release 4.6 as of 01.01.16.

ShopManager OXID Permissions in Ver. 4.6


Location – Standort

There is a feature on the product-roadmap to help owners of the shops using ShopManager™ to determine how far they are separated from customers buying products from their online-shops. This helps them organize better logistics, and if applicable, offer pick-up services at physical-shops or warehouses (pickup-points).

Location information on Android is obtained using two methods:

  • WLAN/Network (GeoIP, coarse_location)
  • GPS localization (fine_location)

Phone – Telefon

Managers of online-shops can phone customers directly from the app, for example while reviewing an order, to offer support. This feature will stay.

Photos/Media/Files – Fotos/Medien/Dateien

ShopManager™ allows to access pictures from the device and apply them to article-data on the shop. This way shop-owners benefit from the ability to instantly upload pics from the the smartphone to the webshop.

Camera – Kamera

ShopManager™ allows to snap a picture of the product using the smartphone camera and allows for images to be uploaded to webshop instantly.

Device ID and Call Information – Geräte-ID & Anrufinformationen

This feature is required by Google Play to manage the app across multiple devices as also triggering ACRA (Application Crash Report for Android). These permissions will stay.

Contacts – Kontakte

Grants us access to address-book of the smartphone, which could help us reach new users virally.  This was an original feature-decision, which we will review in the next releases. Also this feature will be reviewed in next releases.

  • Access to Contacts / Kontakte has been removed in version 4.6.3

Identity – Identität

Grants us identity-information of users via our Google Play developer-account.  This was an original feature-decision, which we will review in the next releases.

Stay tuned to weekly releases on Google Play, and let us know what you think on the OXID eSales G+ Community.


Official System Permissions information for Android Developers

Quality Code Metrics: Measure it to Master it!


After over 6 months of development of our flagship Android product for E-Commerce, the ShopManager™ for OXID e-Shop, our marketing-team was surprised at the number of times the App crashed in real use-cases, in spite of our technicians’ best efforts to make stable releases.

We were running high on development cost of the product, and low on time for taking the product to the market. There was a dreaded desperation in the product-team, to fix it’s quality problems, not knowing quite which end of the beast to exactly start from!

At this time, we decided to take a structured approach to breaking down the product’s quality problems, which lo and behold, stemmed from an ambitious feature-plan that had to be accomplished in limited time, on the way introducing a huge amount of technical debt.

We started to measure the most significant metrics using formal static-code-analysis methods and tools, primarily focusing on:

  1. Blocking, Critical and Major code-deficiencies
  2. Technical Debt (in % of total code produced)
  3. Code-Complexity
  4. Lines of Code-Duplications

In addition, we decided to chase a couple of soft-goals (for the time being):

  1. Reduce number of lines of code
  2. Increase the comments-to-code ratio

We dedicated all the developers in the product-team to the single goal of improving these metrics. Our target was to achieve 0 Blocking, 0 Critical and 0 Major issues, 1% Technical-Debt and 1% Code-Duplication**.
The results were amazing.

Within 2 weeks, the product started to show visible signs of stability. Beta users started to give positive feedback. Code-metrics were starting to look acceptable, and to the date of this note stood at 0.8% Technical Debt (down from 7.3%), 1.1% Code-Duplication (down from 16.5%) and 0 critical-issues (down from 15), as also a small drop in the total lines-of-code.

The ShopManager™ product-team now takes great pride in having solved a relatively big quality problem in a methodical fashion, resting-assured that the learnings will be transferred to new Apps we shall be developing in future.

On the subjects of quality & product-perfection you are never really done. We are committed to developing a deeper understanding of Code-Complexity and mark it as the next metric to master. Similarly the ShopManager™ product-team is inspired to compare this product’s code-metrics with the most used Androids Apps, such as Firefox for Android.

Join us!

The topic of static-code-analysis will be discussed at the PHP-Usergroup-Stuttgart on 10.02. If you’d like to be there, here’s where to register!

Android Market-Share Reaches +70% in Germany


NEBIZ® wird ins Leben gerufen!

wie es bei jedem wachsenden Unternehmen der Fall ist, Änderung ist unvermeidbar. Wir freuen uns, Ihen eine Neuigkeit bei uns zu melden.

Ab dem 01.07.2015 bieten wir Ihnen unsere Dienstleistungen unter den Dienstmarke NEBIZ® an – die für “nachhaltiges E-Business” steht. Mit dieser Änderung möchten wir unser Angebot an Sie näher an Ihre Bedürfnisse als e-Commerce-Unternehmen definieren. NEBIZ® fokussiert sich auf folgende Aktivitäten:-

  • Webshop Programmierung in OXID und Shopware
  • E-Commerce Warenwirtschaft mit Odoo® | AppCenter®
  • Mobile Apps Entwicklung für Internetunternehmen
  • Online-Marketing mit Schwerpunkt Newsletter-Marketing, SEO, SEA und Social-Media
  • E-Business Beratung, Kundenbetreuung

Nun, was passiert mit euroblaze®?

euroblaze®, der technisch korrekte Softwaredienstleister konzentriert sich in  Zukunft auf die Erbringung von Programmierdienstleistungen an unseren Agenturkunden in Deutschland und der Schweiz.

Firmieren Sie um?

NEBIZ® ist zunächst nur eine Dienstmarke. Ihr juristische Geschäftspartner bleibt nach wie vor die Firma Wapsol GmbH.

Wer steht uns als Ansprechpartner künftig zur Verfügung?

Ihre bisher vertrauten Ansprechpartner Herr Ashant Chalasani und Herr Surya Ehm stehen Ihnen unter den folgenden Kontaktdaten zur Verfügung:

Surya Ehm
E-Commerce Berater

Ashant Chalasani
E-Commerce Berater

Außerdem, finden Sie uns auf Twitter unter dem Pseudonym @nebiz_de.

Wie der griechische Philosoph Heraklit sagte: “Die einzige Konstante ist die Veränderung“, freuen wir uns mit voller Motivation diesen neuen Weg anzustreben und bedanken uns im Voraus für Ihre Unterstützung!

Für Ihre Fragen diesbezüglich stehe ich persönlich unter +49-711-7947-2394 oder zur Verfügung.