Product Assembly
Create a product which is composed of other products.
Installation
Add the following line to your Gemfile
gem 'spree_product_assembly', github: 'spree-contrib/spree-product-assembly', branch: 'master'
Run bundle install as well as the extension intall command to copy and run migrations and append spree_product_assembly to your js manifest file
bundle install
rails g spree_product_assembly:install
master branch is compatible with spree edge and rails 4 only. Please use 2-0-stable for Spree 2.0.x or 1-3-stable branch for Spree 1.3.x compatibility
In case you're upgrading from 1-3-stable of this extension you might want to run a rake task which assigns a line item to your previous inventory units from bundle products. That is so you have a better view on the current backend UI and avoid exceptions. No need to run this task if you're not upgrading from product assembly 1-3-stable
rake spree_product_assembly:upgrade
Use
To build a bundle (assembly product) you'd need to first check the "Can be part" flag on each product you want to be part of the bundle. Then create a product and add parts to it. By doing that you're making that product an assembly.
The store will treat assemblies a bit different than regular products on checkout. Spree will create and track inventory units for its parts rather than for the product itself. That means you essentially have a product composed of other products. From a customer perspective it's like they are paying a single amount for a collection of products.
Using with spree_wombat
If you use this with spree_wombat make sure that you add this extension after
spree_wombat in your Gemfile
This extension provides a specific serializer for shipments assembly_shipment_serializer
, to use this in your Spree storefront make sure
you configure spree_wombat like this:
config.payload_builder = {
"Spree::Shipment" => {:serializer => "Spree::Wombat::AssemblyShipmentSerializer", :root => "shipments"}
}
Contributing
Spree is an open source project and we encourage contributions. Please see the contributors guidelines before contributing.
In the spirit of free software, everyone is encouraged to help improve this project.
Here are some ways you can contribute:
- by using prerelease versions
- by reporting bugs
- by suggesting new features
- by writing translations
- by writing or editing documentation
- by writing specifications
- by writing code (no patch is too small: fix typos, add comments, clean up inconsistent whitespace)
- by refactoring code
- by resolving issues
- by reviewing patches
Starting point:
- Fork the repo
- Clone your repo
- Run
bundle install
- Run
bundle exec rake test_app
to create the test application inspec/test_app
- Make your changes
- Ensure specs pass by running
bundle exec rspec spec
- Submit your pull request
Copyright (c) 2014 Spree Commerce Inc. and contributors, released under the New BSD License