GithubHelp home page GithubHelp logo

romul / spree-product-assembly Goto Github PK

View Code? Open in Web Editor NEW
22.0 6.0 219.0 329 KB

Adds oportunity to make bundle of products

Home Page: https://github.com/spree/spree-product-assembly

License: Other

Ruby 71.00% JavaScript 0.07% CSS 0.10% HTML 28.83%

spree-product-assembly's Introduction

Product Assembly

Build Status Code Climate

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 in spec/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

spree-product-assembly's People

Contributors

adamfrey avatar assembled avatar bdq avatar bvalentino avatar ehoch avatar futhr avatar huoxito avatar iloveitaly avatar jdutil avatar joeyjoejoejr avatar jozw avatar jsqu99 avatar jtapia avatar jumph4x avatar kianw avatar kylemacey avatar lbrapid avatar maysora avatar radar avatar robertoles avatar romul avatar rubenrails avatar schof avatar smartacus avatar sohara avatar throughthenet avatar westonplatter avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

spree-product-assembly's Issues

Enhancement: Allow Part Designation

Allow user to search on non-parts and then flag as part (rather than having to edit and allow to be a part and then go back.)

Not needed right away - we'll talk before you do it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.