I just need Feature X. How hard can this be to implement?
First off, let us say this: We understand where you’re coming from. In fact, when we first got started building FoxyCart our lead developer said, “Yeah, building FoxyCart shouldn’t take more than a weekend.” He’d built a simple cart system in the past, so he had a better idea than most. Unfortunately, he was off by years. We’re still building FoxyCart 2+ years after launching.
We also understand that often a seemingly small fix would be a huge boon to you or your clients. Unfortunately, very few features that seem small actually are.
NOTHING IS SIMPLE
FoxyCart has thousands and thousands and thousands of lines of code. It sends data to and receives data from multiple payment gateways, 3rd party hosted payment systems, shipping carriers, custom API integrations, as well as the millions of visitors to each and every site using FoxyCart to power their e-commerce. It processes payments now, in the future, and on a recurring basis. It sends emails and encrypted XML constantly.
While something might appear simple on the surface, when taken in the context of a mission-critical web application powering commerce for merchants all over the world even a small change to functionality can have seriously adverse effects.
For example, something as seemingly simple as a free shipping coupon code actually affects functionality throughout the entire cart, and creates potential problems as additional functionality is added.
- Are there limits on the quantity that it applies to? The weight?
- Do the product categories matter? What if a non-free shipping product category is in the cart?
- Does it apply globally or only for specific countries or states (ie. the continental US)?
- Should alternate shipping methods be shown? What if free shipping isn’t available at all, should an error display, and if so, at which point (since coupons are entered prior to shipping info)?
That’s not to say a coupon for free shipping isn’t a good idea. It is. It’s just to point out that even a small new piece of functionality has significant code and thought behind it, or you’ll end up with a buggy system that feels awkward and doesn’t really work. That’s not an option for us or our users, as far as we’re concerned, so we take the time to do things right.
IT’S ALL ABOUT PRIORITIES
Even when things are fully thought through, they take time to program, test, test more, and test again. We have a great many requests, and we try to balance the needs of the many with the available time. We also try to group related changes in order to be more efficient, so if we’re tackling coupons we’ll make more major improvements that have been requested concurrent with the minor improvements. This allows us to focus our efforts, but also makes it easier on our users, as they don’t have to constantly change 100 little things with each upgrade. Rather, they can focus on 2 or 3 larger things if they need the new features.
AGAIN, WE UNDERSTAND
Again, we understand, but please also understand that even a small change can have a large impact on our codebase, hosting infrastructure, support burden, and even liability. We at FoxyCart are here to make your life easier with easily integrated yet powerful e-commerce, so we try to ensure all of our features are part of a complete and sustainable plan.