I've got a number of features that I don't think all foodcoops will
use. And they're really small. Something like membership fee, for
example, I have currently implemented as a check that an ordergroup
has paid at least a certain amount. Or a dropdown on each page to
choose a language, which some coops might want, others not. Or an
online banking option - with several possible providers.
Would it be possible to have plugins/extensions/addons offering
these kind of features? In that way foodsoft core can remain clean
and simple, and foodcoops can pick and choose what they need.
Is this easily possible in Ruby/Rails? I tend to think as Ruby being
flexible enough - being able to modify existing classes, e.g. to add
filters. Modifying views may be more complicated (jQuery-like dom
manipulation, perhaps?). Does anyone have experience with this?
Apart from this general approach, there are two kinds of more
contained plugins I'm thinking of:
- Import plugins - so that different file formats can be
imported. We have suppliers that send an excel sheet that does
not easily map to the foodsoft csv format. We are already using
this in branch multiimport .
Since suppliers can be really specific to certain foodcoops, and
may need to be updated often, I think it is useful not to
require keeping them in the main repository.
- Payment plugins - it has really helped us start to
allow new members to pay using online banking. That lowered the
barrier to attracting new members. I think it makes sense to
introduce a simple plugin api for online banking providers. We
are currently using mollie (branch onlinepay  - needs cleanup
though), but consider switching.