The order management system (OMS) was developed for a private client in the agricultural sector. Before using our application, the client used pen and paper to take notes – and trace the progress – of orders that their customers would place by phone. However, with the client's production process being split into several individual tasks at different locations, this way of handling orders became an impractical an error-prone procedure.
The application that we developed not only allowed the client to digitalize the entire handling of orders, it also made the need to calculate prices manually and to look up distinct bits of information in various places completely obsolete. With all the data related to their customers and their products digitized in one place, customers can now be looked up and filtered automatically.
Prices and taxes from the selected products are calculated and displayed on the fly, enabling the client to give accurate and up to date information to their customers.
The application has been designed to be responsive from the ground up, allowing our client to use it on a desktop computer as well as on tablets at their production locations and – in the near future – on smartphones anywhere in the world. Whether logged in on a computer at their facilities or any other device, all employees of the client can see and update an order's state.
One particular strong-point of the order management application are its GIS-related capabilities. Not only does the application validate and – if it has to – auto-correct address information, but it also uses routing services in order to automagically suggest the best – i.e. the shortest – routes. It also allows modifying suggested routes by dragging and dropping delivery points of a tour into the desired order.
A mobile application has recently been added to the OMS eco-system. It's goal being to offer an easy and quick means for professionals to order products from the OMS on the go, it is kept as simply as possible, with very little widgets and usable defaults. Pick-up dates are automatically set to the next possible value and any manual changes are validated according to our customer's opening hours.
While the first version of the app is specifically targeted at ordering turf from our customer Rollrasen van de Sluis, it can be easily re-branded and adapted to the specific needs of other OMS instances.
Several additional add-ons and upgrades are currently in the works or scheduled to be added to the current application:
Similar to the my.studentfair.lu application, this one has also been engineered using a Behaviour Driven Development methodology relying on Behat and Mink for functional tests, as well as jasmine for JavaScript unit-tests.
The order management application is also based on a Silex back-end that consists mostly of controllers and models built using the Doctrine ORM object-relational mapping library. While the Silex backend delivers only very few of the initial views and templates, most of the application's user-interface is being generated and updated using backbone.js.
As for scaffolding and task running, we relied on several tools such as composer, grunt, and apache ant for dependency management, sass for CSS compilation and many other tools.
backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface. (+)