Spree Commerce

Try It Now

Spree 2.3.0 Released

Posted on June 30, 2014 by Ryan Bigg

Spree 2.3’s large changes include Rails 4.1 support, better preferences storage, better support for multi-store, and better guest user tracking. There have been 700 commits by 97 contributers to bring us to Spree 2.3, and we are excited to release it!

Rails 4.1 Support

Rails 4.1 is now supported by Spree 2.3. If you wish to use 4.1, Spree 2.3 is the release for you.

Preferences serialized on records

Preferences are now stored on their records, rather than being stored in `spree_preferences`. This means that to fetch a preference for say, a calculator, one query needs to be done to the database for that row, as that row has the `preferences` column which contains all preferences.

Previously, there would be a single DB call for the record itself, and then any number of database calls thereafter to fetch the required preference values for that record. What happens now is that there’s only one database call, which means there should be some minor speedups.

Better multi-store support

A `Spree::Store` model for basic multi-store/multi-domain support has been added. This provides a basic framework for multi-store/multi-domain, based on the spree-multi-domain extension. Some existing configuration has been moved to this model, so that they can have different values depending on the site being served:

  • `Spree::Config[:site_name]` is moved to `name`
  • `Spree::Config[:site_url]` is moved to `url`
  • `Spree::Config[:default_meta_description]` is moved to `meta_description`
  • `Spree::Config[:default_meta_keywords]` is moved to `meta_keywords`
  • `Spree::Config[:default_seo_title]` is moved to `seo_title`

A migration will move existing configuration onto a new default store.

A new `ControllerHelpers::Store` concern provides a `current_store` helper to fetch a helper based on the request’s domain.

Better guest user tracking

Now we are using a signed cookie to store the guests’ unique token in the browser. This allows customers who close their browser to continue their shopping when they visit again. More importantly, it allows you as a store owner to uniquely identify your guests’ orders. Since we set `cookies.signed[:guest_token]` whenever a vistor comes you may also use this cookie token on other objects than just orders.

For instance, if a guest user wants to favorite a product, you can assign the `cookies.signed[:guest_token]` value to a token field on your favorites model. This will then allow you to analyze the orders and favorites that this user has placed before, which is useful for recommendations.


You can view a more detailed list of these changes on Github.

Follow Spree Commerce!

Top 5 Reasons Wombat Makes Life Easy for Developers

Posted on June 26, 2014 by Alexander Diegel

Top 5 Reasons Why Wombat Makes Life Easy for Developers

We have recently announced the launch of Wombat, and we are excited for all the new features our automated e-commerce solution will now provide! Wombat was created by developers, for developers, with the goal of making back-end logistical maintenance as simple and efficient as possible. Without further ado, here are the top five reasons why Wombat makes life easier for you, the developer.

1) Ability to connect with any storefront

Not only is Wombat a sophisticated e-commerce solution engine, it is also platform agnostic. Due to the standard JSON API format we use for communication, no matter what platform you are using—whether it be Spree, Magento Hybris or Demandware, you can integrate with Wombat. Even if you build your own custom platform, Wombat will be with you every step of the way!

2) Use of pre-defined or custom-built connections

Wombat comes complete with a number of predefined connections, ready for out-of-the box use so you can quickly integrate and get started. However, the flexibility of Wombat also allows you to integrate your own custom-built connections, so that you can customize this e-commerce solution to perform any and all of your desired functions.

3) Easily retry flows and keep track of errors

Wombat is complete with a fail-safe system of managing flows. If something has gone wrong within the flow setup, you will be notified immediately to retry the flow, debug the flow, or resolve the error. All errors are listed in order of most to least recent, with the goal of making errors as easy to manage as possible.

4) Adding integrations all the time.

Wombat is not open source. It is Software as a Service, or SaaS. However, Spree Commerce was founded on the principles of open source, and those values have carried over to the way we manage Wombat. We believe in a strong communal support system, so if there is an integration you want but don’t see available, let us know—and we’ll listen!

5) Transforms

In the context of Wombat, a transform represents the ability to easily modify data. Whether you want to convert an order into an email, or change all states to abbreviations, you can easily do so in Wombat’s transforms editor. Transforms work by embedding server side javascript directly into the flow. The javascript incorporates the logic dictating how data is transformed, and easily makes the desired changes.

These five advantages are why developers love to use Wombat. For more in-depth documentation on these topics—and virtually anything else you might want to learn about Wombat—visit our knowledge-based articles.

Follow Spree Commerce!

The Power and Flexibility of Promotions

Posted on June 25, 2014 by 3llideas

Discover the Power and Flexibility of the Spree Commerce Promotion System

There is no doubt that the global economic downturn has made e-commerce merchants adapt to more frugal shoppers and, thus, adjust their business prospects. In addition, they must also adjust their margins, in order to offer the most attractive price for consumers.

Traditional brick-and-mortar stores are, perhaps, the ones that have seen their sales decrease the most, due in part to shoppers’ reduced income and the rise of e-commerce. This is also due to their online counterparts’ ability to escape the influence of lower prices, and offer their customers benefits that go beyond savings on purchases.

In fact, every single e-commerce store can encourage customers with coupons, discounts, and special offers if they meet certain conditions. This is one of the most common marketing tools used to motivate shoppers to buy their products. Promotions that are typically seen include:

• Free shipping
• Coupons lowering the price for certain products
• Customers receiving discounts upon entrance through a particular landing page

Looking at the specific trading platform used for 3llideas, provided by Spree Commerce, much of the philosophy used is in an effort to promote the store’s largest possible business margin, and base the development decisions on the point of sale being as attractive as possible to the customer.

Due to the vast experience of Spree’s developer community, it was decided at the time to rewrite the functionality of Spree Commerce’s promotions, with the intention of making them as flexible and extensible as possible. The development was completed and led to a very advanced and functional product, as seen below:

Defining a new class

We define each Spree Commerce promotion as follows:

• By name, description and coupon code (optional)
• Whether it will be be visible by all or just some visitors
• Classifying the amount of time that the promotion will remain active
• Including the option of limiting the number of uses to avoid overflow of a successful promotion

Once it is defined as a Spree Commerce promotion, we monitor its success using the following criteria:

1) Validating event promotion
We tell you when this promotion is validated by choosing:

• When a product is added to the cart
• When something is changed within the order
• The timestamp when a user registers
• When a coupon is added to the order

These options allow promotion beyond the typical discount coupons, and have the promotions added automatically without the need for the customer to perform any action.

2) Rules
The rules define whether a promotion is applicable to a given store order. By default, we have the following rules at our disposal:

• If the total value of the order meets a certain amount above, or below, that of the promotion
• If the order contains one or all of the specified products
• When the order is made by certain registered users
• If this is the first order for this particular customer
• The user must be logged in to authenticate the promotion

3) Actions
Define what will happen when the promotion is applied to a particular order. We define two types of default actions:

• Create an adjustment: This action is used to quantify a certain amount, usually off the normal retail price, that meets a certain criteria. The system provides a certain type of default setting with the option to apply a new one easily.
• Add a line to order: In this case we would allow the customer to add another item to the order, automatically, to satisfy the promotion. Think: Buy one get one free.

Examples of Promotions:

• Buy product A, get 10% off product B
• Discount Coupon
• Free shipping if you buy more than X amount


By using a Spree online store, we have increased flexibility when creating our promotions. There is no added cost by Spree, as this functionality is included in the open source software. From here, the promotions can be added depending on our needs at the time, since Spree’s framework will allow us to incorporate new rules that implement all the promotions and actions we have at our disposal. Also, there are additional e-commerce solutions that include the ability to import ERP code coupon promotion, as well as the ability to auto generate or integrate with other systems.

About 3llideas

3llideas was born as a commmercial enterprise with a mission to leverage growth of internet retailers. 3llideas specializes in development and implementation of online stores, using Spree’s opensource software to come up with the best e-commerce solutions. 3llideas offers a flexible solution that lets you differentiate and integrate your online store with your business in mind, and develops your internet channel with your specific objectives. To view this original post in its Spanish format, click here.

Follow Spree Commerce!

"Introducing Wombat" by Sameer Gulati

Posted on June 25, 2014 by Alexander Diegel

“Introducing Wombat” Webinar Recap

Thank you to our Chief Product Officer Sameer Gulati, who hosted the most recent webinar in our series—"Introducing Wombat." Sameer gave a complete rundown of the key capabilities and functionalities of Wombat, and how our e-commerce operating system makes life simple for both store owners and their developers.

Specifically, he displayed a number of our predefined, out-of-the-box connections, and the importance and ease of setting up a flow. Sameer also gave a step-by-step tour on how to catch, and resolve, any errors that may arise in your shipping and fulfillment process, and provided a step-by-step guide on how to:

• Create a connection
• Push data
• Test connections

Sameer goes into further detail on these points and many more, so “Introducing Wombat” was definitely a webinar that you did not want to miss. If you did, you’re in luck! Click here to view the reccording in full.

Follow Spree Commerce!