Spree Commerce

Try It Now

Introducing Split Shipments

Posted on April 24, 2013 by John Dyer

We’ve been grappling with the issue of complex Spree stores that require sophisticated shipping and warehouse logic for several years now. While it has always been manageable to get this to work on individual store basis, a more general solution that would be useful for all stores has always eluded us (until now). We are proud to introduce the new split shipments functionality to Spree! This feature is available to try out on the master branch of Spree and will be included in the upcoming Spree 2.0 release. Sean Schofield, the creator of Spree, will go into depth about the new features included in Spree 2.0 including split shipments, the re-architecture of the Spree core and internationalization improvements at SpreeConf May 20th - 21st in Washington, DC.

This post will give you a brief overview of split shipments and what features it provides. For more detailed information, please view the developer documentation.

The Components of Split Shipments

There are 3 main components that make up split shipments described in this post: Stock Locations, Stock Items, and Stock Movements.

Stock Locations

Stock locations are the locations where your inventory is shipped from. Each stock location can have many stock items. When creating a new stock location, stock items for that location are automatically created for each variant in your store.

Having multiple stock locations allows for more robust shipping options. For example, if an item in an order is out of stock at the location of the other items in a order, a new shipment may be created if that item is found to be in stock at another location.

You are also able to create and manage orders that have items from multiple locations by using the improved admin interface.

Stock Items

Stock Items represent the inventory at a stock location for a specific variant. Stock item count on hand can be increased or decreased by creating stock movements. Because these are created automatically for each location you create, there is no need to manually manage these.

Stock Movements

Stock movements allow you to manage the inventory of a stock item for a stock location. Stock movements are created in the admin interface by first navigating to the product you want to manage. Then, follow the Stock Management link in the sidebar.

As shown in the image above, you can increase or decrease the count on hand available for a variant at a stock location. To increase the count on hand, make a stock movement with a positive quantity. To decrease the count on hand, make a stock movement with a negative quantity. Note that it is also possible to transfer stock directly between two stock locations. This can be done from the stock locations admin page. (Configuration → Stock Locations)

Give It A Try

To try the new Split Shipments features before we officially release Spree 2.0, add the following line to your Gemfile and “bundle install”:

  gem 'spree', :github => 'spree/spree', :branch => 'master'


If you own a store that has multiple locations, advanced inventory tracking needs or just like trying out new features, you should definitely check out the recent changes to Spree. As always, pull request are more than welcome! We’re always looking to improve Spree, so if you have feedback for us on these new feature, please try to get it to us quickly so we can make sure it’s included before the official release.

To learn more about our shipping improvements, what’s included in Spree 2.0 and how you can implement these features on your store be sure to attend SpreeConf. SpreeConf is a great opportunity to meet the Spree core team and to compare notes with other Spree Developers about projects you are working on. And, SpreeConf isn’t just for developers. Plenty of founders and store owners come to our conferences as well. Whether you’re a startup or an established online business, there will be other business owners for you to network with and learn from.