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