Skip to content

Instantly share code, notes, and snippets.

@GeekOnCoffee
Created December 5, 2013 00:30
Show Gist options
  • Save GeekOnCoffee/7798163 to your computer and use it in GitHub Desktop.
Save GeekOnCoffee/7798163 to your computer and use it in GitHub Desktop.
desc "Generate completed orders on a fresh Spree install. e.g. rake make_orders[10]"
task :make_orders, [:number] => :environment do |t, args|
address_attributes = {
firstname: "Spree",
lastname: "Commerce",
address1: "4600 East West Highway, Suite 800",
city: "Bethesda",
country_id: Spree::Country.find_by(iso: "US").id,
state_id: Spree::State.find_by(abbr: "MD").id,
zipcode: "20814",
phone: "123 456-789"
}
variants = Spree::Variant.all
vsize = variants.size
user = Spree::User.first
pmethod = Spree::PaymentMethod.find_by(name: "Credit Card")
card = Spree::CreditCard.last
(args[:number].to_i || 1).times.each_with_index do |n, i|
Spree::StockItem.update_all backorderable: true
order = Spree::Order.create(:user => user, :email => "spree@example.com")
# cart
order.contents.add variants[rand(variants.size)], rand(1..5)
order.next!
# address
order.update_attributes(
use_billing: true,
bill_address_attributes: address_attributes
)
order.next!
# delivery
order.next!
# payment
order.payments.create!(
amount: order.total,
payment_method: pmethod,
source_attributes: card.attributes.except("id", "created_at", "updated_at").merge(number: "4111111111111111")
)
order.next!
#confirm
order.next!
puts "Order #{order.number} completed (#{i + 1}/#{args[:number].to_i})"
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment