namespace :spree_sample do
desc "Create sample drop ship orders" task :drop_ship_orders => :environment do if Spree::Order.count == 0 puts "Please run `rake spree_sample:load` first to create products and orders" exit end if Spree::Supplier.count == 0 puts "Please run `rake spree_sample:suppliers` first to create suppliers" exit end count = 0 @orders = Spree::Order.complete.includes(:line_items).all @suppliers = Spree::Supplier.all puts "Linking existing line items to suppliers" Spree::LineItem.all.each do |li| print "*" if li.product.add_supplier! @suppliers.shuffle.first.id and li.save end puts puts "Creating drop ship orders for existing orders" Spree::Order.all.each do |order| print "*" if order.finalize! end puts end desc "Create sample suppliers and randomly link to products" task :suppliers => :environment do old_send_value = SpreeDropShip::Config[:send_supplier_email] SpreeDropShip::Config[:send_supplier_email] = false @usa = Spree::Country.find_by_iso("US") @ca = @usa.states.find_by_abbr("CA") count = Spree::Supplier.count puts "Creating Suppliers..." 5.times{|i| name = "Supplier #{count + i + 1}" supplier = Spree::Supplier.new(:name => name, :email => "#{name.parameterize}@example.com", :url => "http://example.com") supplier.build_address(:firstname => name, :lastname => name, :address1 => "100 State St", :city => "Santa Barbara", :zipcode => "93101", :state_id => @ca.id, :country_id => @usa.id, :phone => '1234567890') print "*" if supplier.save } puts puts "#{Spree::Supplier.count - count} suppliers created" puts "Randomly linking Products & Suppliers..." @supplier_ids = Spree::Supplier.pluck(:id).shuffle @products = Spree::Product.all count = 0 @products.each do |product| product.add_supplier! Spree::Supplier.find(@supplier_ids[rand(@supplier_ids.length)]) product.save count += 1 print "*" end puts puts "#{count} products linked." SpreeDropShip::Config[:send_supplier_email] = old_send_value end
end