We’re very excited to announce a simply staggering amount of improvements that will change the way you develop and work with Shopp and ultimately, how you build and run e-commerce sites. Today we’re officially announcing the development of the Shopp 1.1 release to give the community an update on where we are and what to expect. With Shopp 1.1 we’re retooling a lot of the underpinnings that make Shopp work with the intent to make it structurally more reasonable, more powerful and less bug prone. Given where we are in development, and although we’ve a lot of work to go, the results of our tinkerings have been simply groundbreaking.
From the beginning we’ve always been striving for an ideal to make Shopp the de facto standard for developers and designers. In developing an e-commerce storefront, it was a constant headache to be constrained by what I felt were always architectural boundaries caused by inevitible shortsightedness by the developer. So Shopp was built to be as frictionless as possible. Obviously we’ve made great strides to be sure, but there is so much to improve. While 1.1 is designed to remove a lot of boundaries, the real strategy behind our approach is a reimagining of our core structure to build a system that while itself does not become perfectly frictionless, it provides a sound approach to be built upon, not hacked to encompass every niche requirement.
Since the project first began testing prior to release in 2008, we’ve learned a lot and we’re getting better all the time. So today Shopp 1.1 is a realignment to solve core issues in a way that doesn’t box us in to some of the monolithic atrocities that resulted in lots of overrides and exceptions to rules to accommodate our customers’ needs. The result was compounding bugs and messy code approaches that were terribly difficult to troubleshoot and worse yet to fix. Often we’ve found that the only way to fix certain bugs is to redesign the entire subsystem.
We’ve been able to go back and apply everything we’ve learned in the first year of the project to build upon the strengths already in Shopp while providing a whole new approach to the same problems. In otherwords, we’ve replaced our stupidity with innovation that will pay dividends for everyone.
So what’s new? It’s almost overwhelming to go over it all, but we want the community to know what’s cooking. First, lets start with the bad news. Trust me, you’ll be mostly happy when you see it all (the good and the bad), so don’t get hung up too much on these slightly dissappointing bits. Among other things, our strategy requires that Shopp 1.1 drop support for WordPress 2.6 and 2.7 and jump straight to requiring WordPress 2.8 (not that bad is it?). In addition the following features that we know the community is looking forward to will not make it into Shopp 1.1:
- Wish lists
- Affiliate support
- Customer feedback (comments and ratings)
Ok, so a bit of a bummer for some of you. It couldn’t be helped as we felt this release is about getting our ducks in a row before adding support for these bigger features. The silver lining is that with Shopp 1.1, we hope to accellerate our feature development process so it doesn’t take another year to get them rolled out. We hope to have them rolled out in Shopp 1.2 later this year.
Now onto what’s really cooking. It’s a bit of a lengthy read, but I hope you can find the bits important to you and get as excited as we are about the new possibilities they create. If you’re more of the geeky coder type, the last section has all the juicy under-the-hood details. Deep breath… here we go:
- Subtle UI improvements have been made through the Shopp admin, including a fix to the Shopp menu behavior collapsing when in the editors.
- The order management interface just got a whole lot nicer with a customizable layout, more detailed information, support for private notes and hooks for adding custom UI for custom order data.
- The auto-update system has been replaced with a more seamless plugin update experience that includes better notification of new releases and a more reliable update process.
- Tax will no longer be auto-calculated on the base of operations when no shipping location is available.
- A new “thank you” page (and template) ends the transaction experience. It wraps around the order receipt to provide an opportunity for further instructions based on the order. This is especially important in new situations where the order may be created without the payment being completed.
- A printer-friendly stylesheet has been added to isolate receipts when a page with a receipt is printed.
- Improved the checkout form validator with overridable filter hooks for every single requirement check.
Asset Storage Engines
The asset system encompasses how Shopp handles product multimedia assets such as images and product downloads. In 1.1 it has been completely rebuilt.
- Built on top of modular storage engine system for ultimate scalability. This allows for pluggable storage engines to be developed for other third-party cloud or private storage systems.
- Created database and file system storage in the core.
- Developed an Amazon S3 storage engine for add-on.
New Imaging System
- A completely re-invented approach to handling product images.
- A new image server bypasses the WordPress overhead to deliver Shopp-images as fast as possible with as little resources as possible.
- Ditched the image size types and moved to a completely on-the-fly image resizing approach with cache support.
- Images can take full advantage of the new asset storage engines
- The promotion editor interface has been improved to clarify how to use it
- Added the ability to assign promotional discounts directly to specific items in the cart as opposed to discounts to the entire cart as we had previously
- Added new properties for matching against
- We’ve added built-in support for rendering a category slideshow via the shopp(‘category’,’slideshow’) tag.
- And the shopp(‘category’,’carousel’) tag renders a new infinite scrolling product slider element.
- Switched modal image viewer from Thickbox to the more modern Colorbox.
- Improved the search engine to include all extended product information (tags, categories, spec details, etc.), keyword stemming, best bet matching and price matching.
- A ground-up approach to payment gateways provides a more stable, flexible, and less complex development framework for creating new gateways.
- Every gateway has been rewritten for the new approach (that’s still a lot of work by the way).
- Added a new Offline Payment gateway to be included in the core for handling payments like bank transfers and cash-on-delivery.
- Designed an innovative approach for a Manual Processing gateway add-on that provides completely secure yet seamless access to sensitive payment information.
- Added SagePay payment gateway for onsite checkout as an add-on option with more in the works that will be announced later.
- Improved PayPal Standard with secure PDT support on top of existing IPN support.
- Refactored the shipping calculation system.
- Added third-party service branding for better recognition in the admin.
- Completed a ShipWire add-on that implements all of the ShipWire APIs (we’re still looking for willing beta testers for this in case you’re interested).
Geeky Under-the-hood Details
- New setting interface rendering library to consolidate the setting behaviors for the gateway, shipping and storage modules to a uniform library – less complexity and faster loads trading off a little flexibility.
- Transitioned code to utilize new utilities available in WordPress 2.8.
- Totally new application flow control subsystems to better facilitate and organize object-to-object communication.
- Implemented WordPress roles and capabilities specific to Shopp
- Added tons of inline documentation to the code utilizing the PHPDoc format that can be helpful both in learning the platform and writing Shopp code helpers in IDEs.
- Switch Shopp to utilize wp_mail() for sending email (provides enhanced compatibility with more server platforms and other plugins)
- New configurable macros to tweak low-level functionality.
- New Customer tags (has-account, wpuser-created).
- New Purchase tags (txnid, hasdownloads, paid, notpaid, payment).
- Shopp templates are automagically translated into active language during theme template install process.
- Normalized file system paths for better multi-platform behavior (such as IIS compatibility).
The implications for these features is far greater than anything that can be expressed here. Suffice it to say Shopp 1.1 will be a landmark release. With all the architectural work, one wonders why we aren’t jumping to call it 2.0? Despite the amount of redesign work, there is a lot more to go that we’d like to tackle in strategically byte-sized chunks to fulfill an even bigger-picture strategy that will be revealed in time. So to dovetail on the earlier list of planned features not included in this release, there are other systems that those features will rely on that are not part of the work in this release. That may be of small comfort when you want or need them now for your project. Unfortunately, we choose to stay the course.
Our philosphy is to take the time to do it well. It is better to build a tool that works than tout a list of features that really don’t. With that in mind, we’re starting a new initiative to invite more participation from the larger community of savvy developers that use the Shopp platform regularly. For those that have purchased a developer key, your key will provide access to pre-release “bleeding-edge” versions of Shopp starting with Shopp 1.1. As we get closer to getting Shopp 1.1 ready for testing, a new option will become available to developer key holders in the Shopp Store account page that will give access to downloading the pre-release version of the Shopp core and of the purchased add-ons that are available in pre-release form. After installing the pre-release version of Shopp, you’ll be able to use the auto-update system to stay up-to-date. Along with that, we’ve opened up our bug tracker so that the Shopp community has means to identify and report issues that they run into. This means we’ll likely be dealing with more noise in our tracker, but feel it is better to deal with that than not discover an issue that needs fixed for everyone. To report a bug, jump over to our bug tracker and register your profile and create a ticket. Be sure to follow the bug reporting guidelines outlined there. Shopp 1.1 is nearing feature freeze next week, and should show up for testing to developer key holders shortly after. We look forward to using this new channel for working with the community to build a better platform for everyone.
As always, thanks for choosing the Shopp platform. We hope you get a sense for the kind of value we’re trying to provide through our unique distribution model. Your key purchases make this sort of development possible and we are forever grateful to be part of the project. We want our community to feel part of the project too, and that’s where these new channels for feedback come into play.
So, with this deluge of information about what’s coming in the development pipeline, we’d love to hear your thoughts and feedback about the direction we’re headed in. So, if you’ve still got some time, leave a note and let us know what you’re thinking.