Spree Variant Options is a spree extension that replaces the radio-button variant selection with groups of option types and values. In this verson it has modified to dropdowns. So instead of the buttons it'll generate a separate dropdown which contains values for each option type.
Based on - (spree_variant_options)
Current version - spree-2-4-stable
Added Features: Dropdowns for each option type. Supports multi-currency.
To install Spree Variant Options, just add the following to your Gemfile:
gem 'spree_variant_options', :git => 'git://github.com/fidenz-suchith/spree_variant_options.git', :branch => "2-4-stable"
Now, bundle up with:
bundle
Next, run the install generator to copy the necessary migration to your project and migrate your database:
rails g spree_variant_options:install
rake db:migrate
Spree Variant Options comes with some handy options:
-
allow_select_outofstock (default : false) When using extension like (spree_wishlist), you might want to allow your customer to add out of stock product by selecting out of stock variant options :
<%= form_for Spree::WishedProduct.new, :html => {:"data-form-type" => "variant"} do |f| %> <%= f.hidden_field :variant_id, :value => @product.master.id %> <button type="submit" class="medium blue awesome"> <%= t(:add_to_wishlist) %> </button> <% end %>
By setting allow_select_outofstock to true, when a user selects variant options it will automatically update any form's input variant_id with an data-form-type="variant" attribute.
-
default_instock (default: false) If this is option is set to true, it will automatically preselect in-stock variant options.
-
main_option_type_id (default: 1) This is the option type id that will be use for showing each variant in the home.
-
main_option_type_label (default: 'color') This is the option type label that will be use as URL parameter to preselect the option in the product show page.
These configuration options can be set in a config/initializers/spree_variant_options.rb file for example :
SpreeVariantOptions::VariantConfig.allow_select_outofstock = true
SpreeVariantOptions::VariantConfig.default_instock = true