2011 in retrospect: agile data analytics with Scala

January 4th, 2012 by Alex

Looking back, 2011 was the year in which the team here at Keplar ‘got our hands dirty’ and started writing code to answer some of our clients’ thornier business questions. In the sectors we focus on (online/offline retail, online advertising, digital products), clients often have access to very large data sets, and need help manipulating and analysing this ‘big data’ to understand their business performance, make strategic decisions and build better products and services. This new-found appetite for agile and ‘bottom-up’ analysis and decision-making contrasts strongly with the more ‘top-down’ approach (of business models, focus groups and desk research) traditionally favoured by management consultants.

One of the Keplar bookshelves (the Scala books are out on loan)

One of the Keplar bookshelves (the Scala books are out on loan)


Read the rest of this entry »

Our first open-source release: an e-commerce library for using PayPal with CodeIgniter

March 2nd, 2011 by Alex

A significant proportion of the work we do at Keplar involves helping companies to build out their ecommerce propositions. For speed and flexibility much of this work is done in PHP – or rather on well-established open-source technologies, such as CodeIgniter, MODx and Magento, which are built atop PHP.

To keep costs down for our clients and avoid “reinventing the wheel”, where possible we make use of existing libraries, plugins and extensions for these platforms. However this isn’t always possible, and sometimes we see an opportunity to improve (hopefully!) on the existing options.

At Keplar we’re keen to open-source any such code which we develop and own ourselves (i.e. isn’t part of a client deliverable) which we think could be useful for a wider audience. Open sourcing in-house technology has two clear benefits in our eyes: firstly it helps to support the open source ecosystems on which we depend, and secondly, the more eyes we can get on the code we use in the wild the better.

As our first tentative steps down this route, we are open sourcing a PayPal e-commerce library for CodeIgniter which we are already using in production on a couple of clients. We are releasing this library under the guise of an initiative which we are calling “Orderly” – we hope to release other e-commerce software and libraries under this banner in the future.

Read the rest of this entry »

Internationalising your e-commerce site with MaxMind customer geo-location

July 15th, 2010 by Alex

One of the major attractions of selling online is the ability to address global markets as well as your local market. Doing this effectively means localising key content (e.g. prices) for people visiting from countries around the world. The impact on sales if this is done correctly can be extremely positive: one client saw a 300% increase in international sales since implementing geo-located pricing and delivery. Nor is this overly complex to do, thanks to widely available global payment platforms such as PayPal and geo-location tools such as MaxMind.

Many countries

And so for the second in our series of technical blog posts, we are going to look at the opportunities to enhance your e-commerce site using geo-IP location. Geo-IP location sounds complicated but it is simply the process of determining where your individual website visitors are geographically located in the world; this is achieved by looking up each visitor’s IP address in a database which maps known IP addresses to individual countries or even cities.

As an online retailer, knowing where your website visitors are located allows you to provide them with a much more personalised shopping experience – for example, you could:

  • Show specific contact details for your visitor’s country
  • Price your product catalogue in your customer’s local currency
  • Automatically calculate delivery times and costs for their order

These sorts of personalisations work in two ways to improve your bottom-line: firstly, they increase the level of confidence and trust which a visitor feels in your site by showing that you can treat them as a ‘local’. And secondly, they reduce friction in the check-out process, removing difficult steps for the user such as converting the given currency into their own money. Using these techniques can significantly increase conversions among overseas visitors, as we have seen above.

On to the technology: although there are various providers of geo-IP address databases, we use MaxMind because it is free, simple to use and regularly updated. Also note that many e-commerce packages such as Magento or Prestashop have MaxMind integrations available already for free or low cost – check online to see if your e-commerce package has one too.

For this example we will be proceed as if we are integrating MaxMind directly with a simple PHP-based online shop; we will use MaxMind to display some simple internationalised information to your site visitor. In future blog posts we will explore some more sophisticated localisation approaches, to really drive more sales.

Now on to the technical steps…

Read the rest of this entry »

Better competitive intelligence through scraping with Groovy

January 20th, 2010 by Alex

For the first of our series of technical posts I’m going to look at the poorly understood topic of web scraping. To start with a definition: web scraping is the process of automatically collecting Web information and turning it from unstructured, human-readable data into structured data that can be stored and analysed in a database or spreadsheet. The most famous scraper of all is Google, who regularly scrape and index a huge proportion of the Web to feed into their search engine.

How is web scraping useful for a business that isn’t Google-sized?  Web scraping can be used to collect and structure competitor data, making it an incredibly powerful marketing intelligence tool.  Consider online retail: using a web scraper it is possible for a retailer to automatically survey the range of products offered by competitor sites and the price each product is offered at. Because web scrapers can be automated, they can be programmed to run regularly – so companies can analyse how sensitive their own sales volumes are not just as a function of the item price, but as a function of the prices competitors price them at. It is even possible to use the data from web scrapers to dynamically price items in an online shop so that they are always competitive. If you’re an online retailer, you are quite possibly already being regularly scraped by a competitor.

In this post, we provide an example of a simple web scraper built using Groovy. We chose Groovy because it’s a powerful, agile scripting language which is great at navigating/analysing HTML. The target of our scraper is a simple test “shop” which we have setup in Keplar Labs. You are welcome to run this scraper against our test shop – please note that scraping other sites may be against their terms and conditions or even in some cases an offence. Please seek legal advice before running any scraper on someone else’s website.

Without further ado, here is the Groovy code:

Read the rest of this entry »