“WP E-Commerce, I Hate You with the Fire of a Thousand Suns” Recap

Last night, the Developer Meetup welcomed Justin Sainton (@js_zao), lead developer for WP E-Commerce, to discuss their ongoing efforts to improve the codebase and innovate with their feature set.

Notes by Faddah and Daniel

Inspiration for the talk name was Jane Wells’ tweet “Wp e-commerce, I hate you with the fire of a thousand suns” a couple years ago; they were trying to use WP E-Commerce for the WPorg swag store.

Justin got involved in the project in March 2010 or so. At that point, it was really the only project. WP E-Commerce has a commit log that dates to 2006 (e.g. WordPress 2.0). When he started, they had over 60k lines of code. Now they have ~35k lines.

When WP E-Commerce first came out, they had 31 tables. They’re down to 11 now, and are trying to get down to 3-5 tables. It probably won’t be possible to get to zero tables without some core schema changes (e.g. post to post relationships).

Justin picked e-commerce because it’s hard. There are many other factors to deal with, like PCI compliance, taxes, etc. What’s really hard is building a plugin that works for people in Johannesburg, Tokyo and Oregon, all of the same time. Building a simple e-commerce site isn’t too difficult.

In the first versions, the goal for WP E-commerce was to make it everything to everyone. If you had a question of what it could do, the answer was ‘Yes’. Now they’re working hard to figure out what their focus is, paring things down. This also opens them up to innovating again.

Some things they’ve learned:

  • Failing isn’t that cool. It’s stressful to fail, especially when people’s livelihoods depend on the code.
  • 3.8.9: If you were running WP E-commerce on multisite, it broke everything. Missing global $wpdb;
  • Don’t: Collaborate on Google Code because it’s not well-maintained. They’re switching everything over to Github now.
  • Do: Fewer big features, more release cycles. It’s easy to get into scope creep overload.
  • Someone invariably gets bitten by a new release because of some backwards compat issue. They’re now releasing plugins with the coming functionality in advance for theme shops and freelance developers to test functionality in coming releases.

One thing they’ve tried is concurrent branch development. For instance, Justin is working on 3.8.9 and Gary is working on 4.0. It doesn’t work very well. Now they’re trying to work together on one release at a time.

Composition of the WP E-Commerce team: two lead developers and 50-60 people involved with testing, contributing patches, etc. in each cycle.

Questions from the audience:

What were the positive and negative implications of dropping 20 tables?

  • Positive: Performance; Dropped a lot of the code because they didn’t have to replicate core UIs.
  • Negative: Migration wasn’t seamless. ~10% of people had problems.

Best resource for getting into & understanding e-commerce?

Getting started – figure out what you want to do and go for it. “I want to build the next Etsy!” great but you don’t have a seven figure budget. Better to be specific – example of the teacher with $15K in savings now making $90K a qtr. selling sports postage stamps w/ license deals with mlb, nfl, etc.