The Blog Is Dead, Long Live the Handbook

We have run a blog at Edmonds Commerce for a long time. Historically it has been a repository of useful bits of information that we wrote up when we had the time. However, these days we hardly ever update the blog. The reason, simply enough, is that we have found a much better way of doing things. Enter: the Edmonds Commerce Handbook What is the Handbook? The handbook is not a blog, instead it is much more structured by categories and page level topics. Read On →

Doctrine Orm - An Introduction and Then a New Idea

What is Doctrine ORM Doctrine is one of the most popular ORM systems for PHP. It is written as a fully standalone library though is most famously used as the ORM that is bundled with a standard Symfony project. Read the docs herehere Doctrine ORM is only one of the projects projects that Doctrine has built, however it does build upon all of the other projects. What is an ORM An ORM, or Object Relational Mapper, attempts to allow developers write code and work with objects and then have the persistance and relation of those objects handled behind the scenes, thereby allowing the developer to focus on the domain issues and not in hand crafting a large amount of SQL schema and query logic. Read On →

Magento Image Optimisation

The Problem

One of our clients recently needed a simple solution for automatically optimising their media/ and skin/ images. After trying a reputable module we decided it would be simpler and give us more control if we completed this using bash, cron, jpegoptim and optipng.

Read On →

Ebizmarts Sagepaysuite Onestepcheckout Place Order Form Key Issue

We had a client who migrated his domain from http to https. And his other payment methods in onestepcheckout page started failing. The issue was that his sagepaysuite/checkout/review/info.phtml was being rendered however in this file you can see an if condition where it checks Magento version. <?php if($this->helper('sagepaysuite')->isMagentoEE113OrUp() or $this->helper('sagepaysuite')->isMagentoCE1800rUp()): ?> <script type="text/javascript"> //<![CDATA[ review = new Review('<?php echo $this->getUrl('checkout/onepage/saveOrder', array('form_key' => Mage::getSingleton('core/session')->getFormKey())) ?>', '<?php echo $this->getUrl('checkout/onepage/success') ?>', $('checkout-agreements')); //]]> </script> <?php else: ?> <script type="text/javascript"> //<![CDATA[ review = new Review('<?php echo $this->getUrl('checkout/onepage/saveOrder') ?>', '<?php echo $this->getUrl('checkout/onepage/success') ?>', $('checkout-agreements')); //]]> </script> <?php endif; ?> Our client’s Magento version was CE 1.6.1.0, but we fully patched up the website so no matter we had to use form_key since SUPEE-6788, the part with form_key wasn’t being loaded.

Introduction to Behat and Behaviour Driven Development

Origins of BDD (Behaviour Driven Development) This derives from TDD (Test Driven Development) which is very similar but focuses more on unit tests and smaller parts of the software whereas BDD will be used to work on the bigger processes you might expect to have in the software you are developing. BDD also concentrates on how the software should actually behave. Before the software is actually built you would first need to define how the end user would actually use the software once it is complete, it could be as simple as working out how a user would log in. Read On →

Magento Module Version Checker

Magento Module Version Checker (mmv) is a simple script to check Magento Connect (or other custom sources) for the latest version of a module.

Read On →