Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/solidusio-contrib/solidus_product_assembly
:package: Create a Solidus product composed of other products.
https://github.com/solidusio-contrib/solidus_product_assembly
admin assembly bundles ecommerce extension product solidus
Last synced: 2 days ago
JSON representation
:package: Create a Solidus product composed of other products.
- Host: GitHub
- URL: https://github.com/solidusio-contrib/solidus_product_assembly
- Owner: solidusio-contrib
- License: bsd-3-clause
- Created: 2016-04-29T17:42:23.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-02-01T14:56:53.000Z (11 months ago)
- Last Synced: 2024-12-31T23:18:13.163Z (9 days ago)
- Topics: admin, assembly, bundles, ecommerce, extension, product, solidus
- Language: Ruby
- Homepage:
- Size: 495 KB
- Stars: 13
- Watchers: 12
- Forks: 42
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Solidus Product Assembly
[![CircleCI](https://circleci.com/gh/solidusio-contrib/solidus_product_assembly.svg?style=shield)](https://circleci.com/gh/solidusio-contrib/solidus_product_assembly)
[![codecov](https://codecov.io/gh/solidusio-contrib/solidus_product_assembly/branch/master/graph/badge.svg)](https://codecov.io/gh/solidusio-contrib/solidus_product_assembly)Create a product which is composed of other products.
## Installation
Add solidus_product_assembly to your Gemfile:
```ruby
gem 'solidus_product_assembly'
```Bundle your dependencies and run the installation generator:
```shell
bin/rails generate solidus_product_assembly:install
```## Usage
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.## Development
### Testing the extension
First bundle your dependencies, then run `bin/rake`. `bin/rake` will default to building the dummy
app if it does not exist, then it will run specs. The dummy app can be regenerated by using
`bin/rake extension:test_app`.```shell
bin/rake
```To run [Rubocop](https://github.com/bbatsov/rubocop) static code analysis run
```shell
bundle exec rubocop
```When testing your application's integration with this extension you may use its factories.
Simply add this require statement to your `spec/spec_helper.rb`:```ruby
require 'solidus_product_assembly/testing_support/factories'
```Or, if you are using `FactoryBot.definition_file_paths`, you can load Solidus core
factories along with this extension's factories using this statement:```ruby
SolidusDevSupport::TestingSupport::Factories.load_for(SolidusProductAssembly::Engine)
```### Running the sandbox
To run this extension in a sandboxed Solidus application, you can run `bin/sandbox`. The path for
the sandbox app is `./sandbox` and `bin/rails` will forward any Rails commands to
`sandbox/bin/rails`.Here's an example:
```
$ bin/rails server
=> Booting Puma
=> Rails 6.0.2.1 application starting in development
* Listening on tcp://127.0.0.1:3000
Use Ctrl-C to stop
```### Updating the changelog
Before and after releases the changelog should be updated to reflect the up-to-date status of
the project:```shell
bin/rake changelog
git add CHANGELOG.md
git commit -m "Update the changelog"
```### Releasing new versions
Please refer to the dedicated [page](https://github.com/solidusio/solidus/wiki/How-to-release-extensions) on Solidus wiki.
## Contributing
Spree is an open source project and we encourage contributions. Please see the [Community Guidelines](https://solidus.io/community-guidelines/) before contributing.
In the spirit of [free software](http://www.fsf.org/licensing/essays/free-sw.html), **everyone** is encouraged to help improve this project.
## License
Copyright (c) 2014 [Spree Commerce Inc.](https://github.com/spree) and [contributors](https://github.com/spree/spree-product-assembly/graphs/contributors), released under the [New BSD License](LICENSE)