spree_related_products

Related products extension for Spree Commerce.

Last updated on: April 28 at 10:39 PM

source code bug tracker
Opensource
139 139 229
owner:  spree-contrib

Related Products

Build Status Code Climate

Related Products is a Spree Commerce extension that provides a generic way for you to define different types of relationships between your products, by defining a RelationType for each type of relationship you'd like to maintain.

You can manage RelationTypes via the admin configuration menu, and you can maintain product relationships via Related Products tab on the edit product UI.

Possible uses

  • Accessories
  • Cross Sells
  • Up Sells
  • Compatible Products
  • Replacement Products
  • Warranty & Support Products

Relation Types

When you create a RelationType you can access that set of related products by referencing the relation_type name, see below for an example: ruby rt = Spree::RelationType.create(name: 'Accessories', applies_to: 'Spree::Product') => #<Spree::RelationType id: 4, name: "Accessories" …> product = Spree::Product.last => #<Spree::Product id: 1060500592 …> product.accessories => []

Since respond_to? will not work in this case, you can test whether a relation_type method exists with has_related_products?(method):

product.has_related_products?('accessories')
# => true
if product.has_related_products?('accessories')
# Display an accessories box..
end

You can access all related products regardless of RelationType by: ruby product.relations => []

Discounts You can optionally specify a discount amount to be applied if a customer purchases both products.

Note: In order for the coupon to be automatically applied, you must create a promotion leaving the code value empty, and adding an Action of type : RelatedProductDiscount (blank codes are required for coupons to be automatically applied).


Installation

  1. Add this extension to your Gemfile with this line:

#### Spree >= 3.1

 gem 'spree_related_products', github: 'spree-contrib/spree_related_products'

#### Spree 3.0 and Spree 2.x

 gem 'spree_related_products', github: 'spree-contrib/spree_related_products', branch: 'X-X-stable'

The branch option is important: it must match the version of Spree you're using. For example, use 3-0-stable if you're using Spree 3-0-stable or any 3.0.x version.

  1. Install the gem using Bundler: ruby bundle install

  2. Copy & run migrations ruby bundle exec rails g spree_related_products:install

  3. Restart your server

If your server was running, restart it so that it can find the assets properly.


Contributing

See corresponding guidelines


Copyright (c) 2010-2015 Brian Quinn and contributors, released under the New BSD License

compatible spree versions
tags spree versions
master >= 3.1.0
authors
Brian Quinn