Open-sourcing symfony2-paypal-ipn, a Symfony bundle for PayPal IPN

May 13th, 2012 by Alex

Today we are pleased to announce the open-sourcing on GitHub of our new PayPal e-commerce library for Symfony 2. This is a direct port of our CodeIgniter PayPal IPN library which we open-sourced on this blog some 14 months ago.

At Keplar we remain committed to using open-source projects where possible to keep costs down for our clients and to avoid “reinventing the wheel”. Where high-quality open-source projects exist which meet our client’s needs, we use them by default; there are too many of these to name them all, but recent projects would have been impossible without Hive (Hadoop ecosystem), Spray (Scala/Akka), DictShield (Python), WAI (Haskell) and of course Redis.

Where open-source projects do not exist that meet our requirements, we are increasingly looking to develop those tools in-house and open source them where possible (i.e. where they are not part of a client deliverable). Our biggest initiative so far in this area is the SnowPlow web analytics platform, which since its soft-launch in February is already being used externally by one ad network to track ad impression data and internally by our team to perform some sophisticated analytics, such as website cohort analyses.

Other projects we have open-sourced since our CodeIgniter PayPal module include a Scala client for the Amazon Product Advertising API, a command-line tool for exporting Google Analytics data to CSV flatfiles, and a Scala client for the PrestaShop e-commerce API – the latter another release under our “Orderly” initiative for better e-commerce workflow automation and data analysis.

Onto our new Symfony2 library for PayPal IPN…

Read the rest of this entry »

Feedback on the Coding Club pilot

April 10th, 2012 by Yali

Just before Easter we completed the Coding Club pilot: a test programme to get developers into schools to help get young people interested in programming and developing programming skills, run at Burlington Danes Academy.

I sadly wasn’t able to make the last session, but Linda (who set up the pilot with us, and runs CR at Olswang) kindly (and wisely) brought along a video camera to the last session to film the students talking about their thoughts on the Coding Club. You can see them below.

We learnt a great deal during the five weeks, and now need to have a think about how we build on what we’ve learnt. (I’ll be posting some thoughts on the blog.)

We also need to extend an enormous thanks to the different people who made the pilot possible, especially Mr Prasad, Mr Adcock and Miss Pretsell @ Burlington Danes and the developers who brought their hard work, enthusiasm and passion for programming and really made the sessions, including Pablo @ New Bamboo, Konstantin @ Google, Dylan @ Google and of course Alex @ Keplar. (I should also say thanks to both New Bamboo and Google for being so generous with their developer’s time.)

Call for developers: interested in spending a couple of hours getting young people into coding?

March 5th, 2012 by Yali

We’re looking for developers who would be willing to help out with 1-2 hour sessions running an after school, Coding Club, at Burlington Danes Academy school, one or more Wednesday afternoons from 3.30pm.

We started running the club last week, as part of a broader initiative we’re developing to get more young people interested in technology and programming in particular (more details below). The club is a pilot: if it is successful, we’re looking to role out similar initiatives elsewhere in London.

What happens at the Coding Club?

20-30 students with an interest in programming at Burlington Danes stay behind after schools on Wednesday afternoons. The sessions are very informal: we set them challenges and problems to solve using Python. The students work in pairs and use the excellent Hello World! guidebook for assistance. Volunteer developers walk around the room, answer questions and provide advice and hints when asked by the students. Read the rest of this entry »

Introducing SnowPlow: the world’s most powerful web analytics platform

February 21st, 2012 by Yali

The introducing SnowPlow blog post series

Download the SnowPlow brochure

What is SnowPlow?

SnowPlow does three things:

  1. Identifies users, and tracks the way they engage with one or more websites
  2. Stores the associated data in a scalable “clickstream” data warehouse
  3. Makes it possible to leverage a big data toolset (e.g. Hadoop, Pig, Hive) to analyse that data

That sounds like a web analytics tool. There are many of them. (And many of them are free, including Google Analytics.) Why build a new one?

We built SnowPlow for our own web analytics purposes. We recognise that we are unusual web analysts, for a number of reasons, but for us, there are a lot of frustrations with the different solutions that are currently available:

1. We want access to atomic, customer-level and event-level data

Read the rest of this entry »

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 »