Sha256: 597d2f16ecf3af5c33b13149ad729e4b082aed981f999710d7e96ee3409f8f22

Contents?: true

Size: 1.63 KB

Versions: 21

Compression:

Stored size: 1.63 KB

Contents

require 'csv'

Spree::Sample.load_sample('option_values')
Spree::Sample.load_sample('products')
Spree::Sample.load_sample('tax_categories')

VARIANTS = CSV.read(File.join(__dir__, 'variants.csv'))

clothing_tax_category = Spree::TaxCategory.find_or_create_by!(name: 'Clothing')
color_option_values = Spree::OptionType.find_by!(name: 'color').option_values
length_option_values = Spree::OptionType.find_by!(name: 'length').option_values
size_option_values = Spree::OptionType.find_by!(name: 'size').option_values

VARIANTS.each do |(parent_name, taxon_name, product_name, color_name)|
  parent = Spree::Taxon.find_by!(name: parent_name)
  taxon = parent.children.find_by!(name: taxon_name)
  product = Spree::Product.find_by!(name: product_name.titleize)
  color = color_option_values.find_by!(name: color_name)

  size_option_values.each do |size|
    if parent_name == 'Women' and %w[Dresses Skirts].include?(taxon_name)
      length_option_values.each do |length|
        option_values = [color, length, size]
        product.variants.first_or_create! do |variant|
          variant.cost_price = product.price
          variant.option_values = option_values
          variant.sku = product.sku + '_' + option_values.map(&:name).join('_')
          variant.tax_category = clothing_tax_category
        end
      end
    else
      option_values = [color, size]
      product.variants.first_or_create! do |variant|
        variant.cost_price = product.price
        variant.option_values = option_values
        variant.sku = product.sku + '_' + option_values.map(&:name).join('_')
        variant.tax_category = clothing_tax_category

      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
spree_sample-4.10.1 db/samples/variants.rb
spree_sample-4.10.0 db/samples/variants.rb
spree_sample-4.9.0 db/samples/variants.rb
spree_sample-4.8.3 db/samples/variants.rb
spree_sample-4.8.2 db/samples/variants.rb
spree_sample-4.7.3 db/samples/variants.rb
spree_sample-4.6.6 db/samples/variants.rb
spree_sample-4.5.5 db/samples/variants.rb
spree_sample-4.5.4 db/samples/variants.rb
spree_sample-4.6.5 db/samples/variants.rb
spree_sample-4.7.1 db/samples/variants.rb
spree_sample-4.6.4 db/samples/variants.rb
spree_sample-4.7.0 db/samples/variants.rb
spree_sample-4.6.3 db/samples/variants.rb
spree_sample-4.6.2 db/samples/variants.rb
spree_sample-4.6.1 db/samples/variants.rb
spree_sample-4.6.0 db/samples/variants.rb
spree_sample-4.5.3 db/samples/variants.rb
spree_sample-4.5.2 db/samples/variants.rb
spree_sample-4.5.1 db/samples/variants.rb