Google Groups

Re: [silverstripe-dev] [GSOC 2012] Improve eCommerce and Payment modules

Jedateach Mar 22, 2012 2:36 PM
Posted in group: SilverStripe Core Development
Hello all,

Ryan, can you confirm which version of eCommerce you are talking about? As Frank has mentioned, there are a few different versions out there. Here all all I currently know of:

I understand all are still being actively developed, and I'm going to assume that it'll be up to you to choose which module you will work with, as long as SilverStripe LTD approves.

As the maintainer of the Shop module, which is a semi-recent fork of eCommerce, I'm happy to answer any questions you have regarding the module.

One major addition to your list of things to improve, would be mere need to upgrade the module to SilverStripe 3. I have started an attempt at migrating on a branch, but I have not yet pushed changes to github.

Regarding simplifying installation, I have created a fork of the SilverStripe installer to aid in setting up a shop: . There is plenty of room for improvement however.
Regarding configuration, my approach has been to leave configuration out of the CMS, unless necessary. Most configuration is done when the site is set up, and then never touched again. Any changes would simply require contact with the site's developer, which I believe is a healthy thing to do to keep store-owner/developer relationship going.

Here is a document I wrote, with some more high-level thoughts on the module:

I should also make you aware that there is some separate ongoing discussion for both eCommerce and shop in this google mailing list:!forum/silverstripe-ecommerce.


On 23/03/12 9:11 AM, Frank Mullenger wrote:
Hey Ryan,

There are a few e-commerce modules for SilverStripe out there now. There are at least a couple of forks of the original SilverStripe ecommerce module afaik as well as SilverCart and a module I recently released called SwipeStripe.

The SilverStripe e-commerce forks and SwipeStripe both make use of the Payment module, it was after talking with Jeremy Shipman who maintains a fork of SilverStripe e-commerce that the Payment module project for GSOC came about. There is a group of developers who would really like to see some work on the Payment module and there's been some discussion on it for some time. So it's great that you're taking an interest in this area, I think you'll have lots of support and input.

Comments inline:

On Fri, Mar 23, 2012 at 2:48 AM, Ryan Dao <> wrote:
Hi all,

I was playing around with the Silverstripe eCommerce module to gain more insights on how the Payment module works. I realized that eCommerce is a good module but still has room for some improvements. So I decided to propose a project for GSOC 2012 to improve both the Payment and eCommerce module. Here are the project objectives:

- Improve admin interface: The admin interface lacks the ability to change settings like confirmation email template, money currency, allow purchasing, etc. I don't think everybody is comfortable with modifying the config.php file every time they need to make some setting changes. Browsing, creating, and editing products are also not very user-friendly. If a store has hundreds or thousands of products, it would be very difficult for the admin to perform those tasks. So I think some improvements for the admin interface are much needed.

There are definitely some improvements that can be made for admin interfaces. It might be an idea to look at new features in SS3 and how they fit in or improve existing interfaces. I think the module is intended to use the _config.php - as more of a tool for developers to create custom e-commerce sites rather than providing all the options for users to configure via a gui. 

- Simplify installation: It took me quite a while to get the eCommerce module up and running properly. The documentation and the config.php file do not agree with each other. There are also some bugs here and there during the installation process. So I suggest we should have something like Drupal Commerce's Kickstart installation package The idea is to put everything including the Payment module in one package and run an installation script that takes care of configuration, database schema as well as testing. It'd make it much easier for site owners to create an ecommerce website using Silverstripe.

I think there is another GSOC project that might intersect here which concerns module management, dependencies, installing and upgrading. 

- Add more features to Product: More features can be added to Product like multiple images, sales and promotion, stock availablity, etc.

- Improve Payment module (taken from the GSOC project idea document): There should be an admin interface to manage payment and configure payment gateways. I haven't studied the code much, but from what I see, the APIs can be more standardized to make it easier for developers to extend the module.

There are lots of ideas for improving the Payment module, Jeremy Shipman has put together some here:

The payment module is really useful, I've used it in at least a couple of different projects selling bookings and custom house plans as well as the e-commerce module I've been working on.

There are some tricky use cases like recurring payments and processing refunds. It would be great to tie this sort of functionality into an admin interface in SilverStripe. 

There is quite a lot of work and complexity in recurring payments alone and no adequate system at the moment - but it would open up the door to make developing SaaS applications in SilverStripe a lot easier and I think that has huge potential especially with SS3.

I think there could be some interesting work to improve the API for the payment module and perhaps borrow some ideas from other projects like Zend, Pear etc. Also, there are a bunch of payment gateways that are not currently supported - some cool new ones like Stripe for instance, but also some big ones like Google checkout that are really needed (we need more alternatives to PayPal!). 

It's not too tricky to add new gateways in, but there are always some differences between each gateway and the module API needs to be flexible enough to support those differences. 

Most of the existing gateways in the module do not have any unit tests and this is a bit of a problem. Recently I rewrote the Paystation gateway integration, I'm not sure if the API has changed on Paystation's end since the gateway was originally added but it wasn't working for me and there were no Unit tests for me to quickly find out. I think the unit testing system is an important component to get right and could be improved quite a bit.

- Inventory tracking & analysis: An inventory tracking system can keep track of what is in stock, what is on order, and what has been sold. An analysis & reporting system can help site owners see which items are best-sellers, how much they've earned, and how they can improve their sales. I think they are very nice features to have.

I won't touch on this too much but personally have been looking at integration with VendHQ API to help clients handle stock etc.


I'm new to Silverstripe, so I'm not quite sure how feasible this proposal is. I hope to receive some inputs and suggestions from everyone.

Best regards,

Ryan Dao
You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
To view this discussion on the web visit
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at

You received this message because you are subscribed to the Google Groups "SilverStripe Core Development" group.
To post to this group, send email to
To unsubscribe from this group, send email to
For more options, visit this group at