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
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
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
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.
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
- Improveadmin 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 http://drupal.org/project/commerce_kickstart.
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
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.