Browse by Date
Viewing entries posted in March 2011
An ecommerce software that wants to be internationally accepted has to fit the requirements of many tax systems. In Germany we have a VAT rate for food and a VAT rate for non food (due to some lobby work and political corruption it is far more complicated). The VAT is country wide and so it´s calculation is straightforward. Business customers with a special tax code do not pay VAT. For them prices without VAT are important as they shop.
I am always amazed, when useful things can be created easily and quickly. This is why we chose SilverStripe ;-) Want to read how easy it is to add backend functionality to SilverCart and SilverStripe respectively?
Today I want to talk about the customer abstraction of our beloved software module. When we first started we were not sure if we should decorate or extend the member class. We started with extending the member class because it appeared the must straightforward to us, as we always think in classes. With "Customer extends Member" we implemented a lot of additional functions to the Customer class. A Customer had a shopping cart, addresses and many extra attributes. During a hallway test we realized that an admin, which was merely of class "Member", did not have this extra relations and attributes and had not the same frontend experience as a customer. For us this was easy to comprehend, but our further customer would not understand that. So we decorated the Member class with the generally needed relations and attributes and then extended it three times: "BusinessCustomer", "RegularCustomer" and "AnonymousCustomer".
SilverStripe has some great features which take away a lot of work. For example forms are built by defining a form on a controller and then just calling it in a template. But every time someone else does work for you you are loosing control over how this work is done.
For our internal projects we use a modified SilverStripe repository (Mercurial FTW!) with all the modules we use in our daily work. To kickstart a project, all I have to do is to clone the repo and make same individual adjustments relating developer, project and customer. This is literally a no brainer.
We have decided to host our public facing code repository along with the project wiki and issue tracking on bitbucket.
I can't believe I'm writing the first blog entry to SilverCart! We had been quiet busy these days with the release of our own ecommerce module for SilverStripe. I'm always tempted to say "webshop" instead of "ecommerce" because we germans do have our own english. Maybe a language pack "en_DE" could be of good use. Man am I easy to distract when I'm excited :)