A Milestone For Our Shopping Cart Software

DI Checkout Backorder Example

Upon finishing a programming project to improve how we manage out of stock products and then integrate it with our shipping estimates (see image above), I completed all of the major initiatives that we wanted to complete in 2011 to improve our shopping cart software that powers Detailed Image. The reason why we’re at this point and it’s only June 5th is a pretty simple one – most of the important stuff is finally finally done! We’ve built a stable, scalable, easy-to-manage and easy-to-use platform that will serve us well for years to come. There’s nothing “major” left to do…at least as of right now. We’re entering a maturity stage for the software, one that I’ve never really experienced, where we can focus on some combination of data-driven small tweaks (lots of split-testing) and some crazy experimental stuff (like completely new interfaces for shopping).

Out of curiosity, I went searching for the first evidence of the start of this shopping cart project. I vividly remember the night when we decided to abandon the osCommerce platform that Detailed Image had been using in 2006/2007 and begin developing our own. Had there been something like Shopify around at the time, there’s no way we would have ever attempted a project of this magnitude. But the shopping cart software in 2007 left a lot to be desired, especially when it came to search-engine-friendliness.

Anyway, I was able to dig up a document called “Time Frame” from July of 2007 where I outlined to my partners the development time frame for the software, in which I estimated that we’d complete and launch the site sometime in late August. The earliest blog post that I can find, Flipping the Switch from 8/11/2007, about dialing up my productivity to hit the launch date, mentions that we were shooting for a September 1, 2007 launch. We eventually ended up launching on 9/7/2007 – the title of my post, DI Up – Completely and Utterly Drained, kind of says it all about how hard we pushed to launch. There was a quick growth spurt right away, and after another solid year of growth we realized that we had outgrown that current setup and the entire thing needed a revamp if we were going to stay on our platform during our next big growth phase. Starting in early 2009, Mike and I built a new shopping cart system, one that fixed most of the problems of the old one while also being compatible with many of the things the old one did right. That launched in May of 2009, and my launch post is pretty similar to that one from 2007 in that I was totally mentally spent. Ever since then we’ve been meticulously chipping away one feature at a time up to the present.

If you showed me back in 2007 what we have now, my jaw would have dropped. Both on the front end and on the back end, we have software that I believe gives us a big competitive advantage. If you look at all of the stuff we’ve tried as a company over the years, we’ve started a lot of things, but for one reason of another have changed directions and never seen them all the way through (all of which I believe in retrospect were good decisions). This is something that we’ve been committed to for four years now, and I think the results of this slow, iterative improvement speak for themselves when you evaluate the product as a whole and the impact it’s had on our growth.

There’s an amazing sense of accomplishment that comes along with sticking with a project like this for so long. It’s very tangible evidence of my progress as a developer and our progress as a company. There’s also a great sense of relief that comes with being at this point. Any time I haven’t been working on the cart, there’s been this guilt in the back of my mind that I need to get back to it because we’re still lacking this important feature or that important feature. There was a time back when I left my job where I spent considerably more time doing SEO and web marketing for us and for our clients than I did doing any sort of development. Looking forward, I’m excited to have the chance to push forward with the development on LockerPulse, re-introduce some of that marketing into my day (for both sites), and tackle new business challenges like hiring our next wave of employees.

4 comments on A Milestone For Our Shopping Cart Software

  1. Rob says:

    Congratulations! This is huge that you’re now at maturity for the cart. Few questions:

    1. If your cart is mature, how come it doesn’t look the same as (for example) Amazon’s cart? Is it because there’s no best way of doing things, or do you genuinely think yours is better for your needs than trying to replicate theirs?

    2. We’re working with Magento now. It’s a bloated bitch, but seems to have a lot of control. You mentioned Shopify and to be honest, I think it’s great you took the route you did instead of getting an off-the-shelf solution. It’s been a long road for you guys, but I can’t imagine you’d have had an easier time trying to work with and build extensions for someone else’s baby. Do you think this is true, or do you think if you knew that shopify/magento etc. were around the corner you’d have waited and tried to work with them?

    3. Is this the only option for out of stock products? Is it worth suggesting that if someone wants the order sooner that they can split it?

    • Adam McFarland says:

      Good questions as always Rob. I’ll do my best:

      1.) Amazon is great in a lot of ways, but they aren’t necessarily the gold standard when it comes to usability. A really good article on this 10 Reasons Not to Copy Amazon (which they followed up with 5 Reasons You Should Copy Amazon)

      2.) Really tough question because it’s hard to gauge how important our cart has been to our success. I think we’ve done our best to use it to our advantage because it’s one thing we know our competitors don’t have. Then again, if we were on Shopify we could pour that energy into other stuff, mainly more marketing. Hard to say which would be better. All I know is that if I were starting from scratch today and building an e-commerce store, I’d start with Shopify or Magento and then focus on marketing. The stress associated with even seemingly simple things (working with Shipping API’s, integrating with PayPal, registering a user, etc) is enormous on me – if I screw up it can cost us money, tick off customers, or cause a security breach. Those things are already rock solid (for the most part) on these larger platforms. I’d love to not have to worry about that stuff.

      3.) We do have the option of splitting an order in two. Our system will do it automatically, however that’s something we decide on a product by product basis, depending on when it will be in stock. If it’s coming in soon we’d rather not pay for an extra shipment if we don’t have to. That said, if someone contacts us and asks for it, we usually do it. Something we constantly discuss how to best handle.

      • Rob says:

        re. 2) You say stress… but from what I have read over the years it seems to me like you do enjoy programming and feel satisfied when you complete a project. Presumably you’ve now got quite a strong skillset in that area – presumably if you’d chosen to go with an off-the-shelf solution you’d have ended up with a very different skillset to the one you have.

        re. 3) Why not allow the customer to choose but have them pay extra for the shipping? Then they’d have 3 options – a) remove offending item, b) wait until everything’s in stock c) ship separately and pay the extra for the convenience. Obviously you don’t want to encourage people to remove things from the cart though….

        • Adam McFarland says:

          re 2.) Oh I do very much enjoy 95% of it. Just not the things like payment processing that take up a ton of time and have a lot of risk involved. I’d rather not have that stress. Every time I change something with our checkout process I’m stalking every order that comes through for a few days to make sure nothing major got screwed up (I made a mistake a few weeks ago that made coupon codes not work for about an hour, and the customer complaints came in immediately). If I were building on top of a Magento there would be a new set of problems…but presumably I wouldn’t have to worry about those things, something I’m getting a bit tired of after all of these years. From a personal standpoint, it will be nice to just leave it be for a while. To your point though, all of it has strengthened my skills and I would definitely be less of a developer if I didn’t work on this cart.

          re. 3) Agreed. We’ve discussed this. Possibly something to tackle in the future. Just something that’s relatively complex to program for a seemingly small payoff (expanding on above, this would involve reworking a lot of key components of the checkout process, something I try not to do unless the payoff can be big). Most of the time we only have a handful of our ~400 products out of stock, and usually it’s because the item isn’t that important so we’re waiting to reorder it until we need other stuff from that brand.

          Tying all of this back to the original post. It’s not like we’ve got the perfect e-commerce platform. Just that I/we think we’ve done everything major that will help our growth for a while. We can focus that time and energy into marketing and see a much bigger payoff. Most of this stuff should scale 2-5x without an issue. When we’re triple the size we are now, we might reevaluate things.

Leave a Reply

Your email address will not be published. Required fields are marked *

Commenting Rules

Wow. I'm honored that you found this post interesting enough to leave a comment. Before posting, I have a few ground rules:

  • Please keep your comments as relevant to the post as possible.
  • No personal attacks or any other nastiness.
  • Your first comment is subject to my approval.

Thanks!