My-Commerce_sample 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +26 -0
- data/db/sample/addresses.yml +27 -0
- data/db/sample/adjustments.yml +24 -0
- data/db/sample/assets.yml +320 -0
- data/db/sample/assets/apache_baseball.png +0 -0
- data/db/sample/assets/ror_bag.jpeg +0 -0
- data/db/sample/assets/ror_baseball.jpeg +0 -0
- data/db/sample/assets/ror_baseball_back.jpeg +0 -0
- data/db/sample/assets/ror_baseball_jersey_back_blue.png +0 -0
- data/db/sample/assets/ror_baseball_jersey_back_green.png +0 -0
- data/db/sample/assets/ror_baseball_jersey_back_red.png +0 -0
- data/db/sample/assets/ror_baseball_jersey_blue.png +0 -0
- data/db/sample/assets/ror_baseball_jersey_green.png +0 -0
- data/db/sample/assets/ror_baseball_jersey_red.png +0 -0
- data/db/sample/assets/ror_jr_spaghetti.jpeg +0 -0
- data/db/sample/assets/ror_mug.jpeg +0 -0
- data/db/sample/assets/ror_mug_back.jpeg +0 -0
- data/db/sample/assets/ror_ringer.jpeg +0 -0
- data/db/sample/assets/ror_ringer_back.jpeg +0 -0
- data/db/sample/assets/ror_stein.jpeg +0 -0
- data/db/sample/assets/ror_stein_back.jpeg +0 -0
- data/db/sample/assets/ror_tote.jpeg +0 -0
- data/db/sample/assets/ror_tote_back.jpeg +0 -0
- data/db/sample/assets/ruby_baseball.png +0 -0
- data/db/sample/calculators.yml +16 -0
- data/db/sample/inventory_units.rb +4 -0
- data/db/sample/line_items.yml +40 -0
- data/db/sample/option_types.yml +8 -0
- data/db/sample/option_values.yml +35 -0
- data/db/sample/orders.yml +20 -0
- data/db/sample/payment_methods.yml +30 -0
- data/db/sample/payments.rb +25 -0
- data/db/sample/preferences.yml +20 -0
- data/db/sample/product_groups.yml +9 -0
- data/db/sample/product_option_types.yml +8 -0
- data/db/sample/product_properties.yml +136 -0
- data/db/sample/product_scopes.yml +35 -0
- data/db/sample/products.rb +15 -0
- data/db/sample/products.yml +53 -0
- data/db/sample/properties.yml +39 -0
- data/db/sample/prototypes.yml +9 -0
- data/db/sample/shipments.yml +8 -0
- data/db/sample/shipping_categories.yml +2 -0
- data/db/sample/shipping_methods.yml +9 -0
- data/db/sample/tax_categories.yml +6 -0
- data/db/sample/taxonomies.yml +4 -0
- data/db/sample/taxons.rb +3 -0
- data/db/sample/taxons.yml +91 -0
- data/db/sample/update_memberships.rb +1 -0
- data/db/sample/users.yml +8 -0
- data/db/sample/variants.yml +133 -0
- data/lib/spree_sample.rb +6 -0
- data/lib/tasks/install.rake +24 -0
- metadata +112 -0
@@ -0,0 +1,4 @@
|
|
1
|
+
# create the inventory units associated with the line item (we need to do this after the fixture b/c quantity is random)
|
2
|
+
LineItem.all.each do |li|
|
3
|
+
li.quantity.times { li.order.inventory_units.create(:variant => li.variant, :state => "sold", :shipment => li.order.shipment) }
|
4
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<% for i in 1..100 do%>
|
2
|
+
li_<%= i %>:
|
3
|
+
order: order_<%= i %>
|
4
|
+
variant: ror_tote_v
|
5
|
+
quantity: <%= rand(4) + 1 %>
|
6
|
+
price: 15.99
|
7
|
+
<% end %>
|
8
|
+
|
9
|
+
<% for i in 1..10 do%>
|
10
|
+
li_<%= i + 1000 %>:
|
11
|
+
order: order_<%= i %>
|
12
|
+
variant: ror_bag_v
|
13
|
+
quantity: <%= rand(2) + 1 %>
|
14
|
+
price: 22.99
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
<% for i in 10..20 do%>
|
18
|
+
li_<%= i + 2000 %>:
|
19
|
+
order: order_<%= i %>
|
20
|
+
variant: large-blue-baseball
|
21
|
+
quantity: <%= rand(3) + 1 %>
|
22
|
+
price: 19.99
|
23
|
+
<% end %>
|
24
|
+
|
25
|
+
<% for i in 10..30 do%>
|
26
|
+
li_<%= i + 3000 %>:
|
27
|
+
order: order_<%= i %>
|
28
|
+
variant: ror_stein_v
|
29
|
+
quantity: <%= rand(3) + 1 %>
|
30
|
+
price: 16.99
|
31
|
+
<% end %>
|
32
|
+
|
33
|
+
<% for i in 30..50 do%>
|
34
|
+
li_<%= i + 4000 %>:
|
35
|
+
order: order_<%= i %>
|
36
|
+
variant: ror_mug_v
|
37
|
+
quantity: <%= rand(10) + 1 %>
|
38
|
+
price: 13.99
|
39
|
+
<% end %>
|
40
|
+
|
@@ -0,0 +1,35 @@
|
|
1
|
+
s:
|
2
|
+
name: Small
|
3
|
+
presentation: S
|
4
|
+
position: 1
|
5
|
+
option_type: size
|
6
|
+
m:
|
7
|
+
name: Medium
|
8
|
+
presentation: M
|
9
|
+
position: 2
|
10
|
+
option_type: size
|
11
|
+
l:
|
12
|
+
name: Large
|
13
|
+
presentation: L
|
14
|
+
position: 3
|
15
|
+
option_type: size
|
16
|
+
xl:
|
17
|
+
name: Extra Large
|
18
|
+
presentation: XL
|
19
|
+
position: 4
|
20
|
+
option_type: size
|
21
|
+
red:
|
22
|
+
name: Red
|
23
|
+
presentation: Red
|
24
|
+
position: 1
|
25
|
+
option_type: color
|
26
|
+
green:
|
27
|
+
name: Green
|
28
|
+
presentation: Green
|
29
|
+
position: 2
|
30
|
+
option_type: color
|
31
|
+
blue:
|
32
|
+
name: Blue
|
33
|
+
presentation: Blue
|
34
|
+
position: 3
|
35
|
+
option_type: color
|
@@ -0,0 +1,20 @@
|
|
1
|
+
<%
|
2
|
+
order_date = Time.now
|
3
|
+
1.upto(100) do |i|
|
4
|
+
order_date -= rand(12).hours
|
5
|
+
item_total = "#{1 + rand(400)}.#{rand(100)}".to_f
|
6
|
+
charges_total = "#{1 + rand(30)}.#{rand(100)}".to_f
|
7
|
+
%>
|
8
|
+
order_<%= i %>:
|
9
|
+
number: <%= "R#{Array.new(9){rand(9)}.join}" %>
|
10
|
+
user: user_<%= i %>
|
11
|
+
state: complete
|
12
|
+
email: <%= Faker::Internet.email %>
|
13
|
+
item_total: <%= item_total %>
|
14
|
+
created_at: <%=order_date.to_s(:db)%>
|
15
|
+
completed_at: <%=order_date.to_s(:db)%>
|
16
|
+
total: <%= item_total + charges_total %>
|
17
|
+
adjustment_total: <%= charges_total %>
|
18
|
+
ship_address: ship_address_<%= i %>
|
19
|
+
bill_address: bill_address_<%= i %>
|
20
|
+
<% end %>
|
@@ -0,0 +1,30 @@
|
|
1
|
+
bogus_dev:
|
2
|
+
name: Credit Card
|
3
|
+
description: Bogus payment gateway for development.
|
4
|
+
environment: development
|
5
|
+
active: true
|
6
|
+
type: Gateway::Bogus
|
7
|
+
check_method:
|
8
|
+
name: Check
|
9
|
+
description: Pay by check.
|
10
|
+
active: true
|
11
|
+
type: PaymentMethod::Check
|
12
|
+
bogus_test:
|
13
|
+
name: Credit Card
|
14
|
+
description: Bogus payment gateway for test.
|
15
|
+
environment: test
|
16
|
+
active: true
|
17
|
+
type: Gateway::Bogus
|
18
|
+
bogus_prod:
|
19
|
+
name: Credit Card
|
20
|
+
description: Bogus payment gateway for production.
|
21
|
+
environment: production
|
22
|
+
active: true
|
23
|
+
type: Gateway::Bogus
|
24
|
+
bogus_prod:
|
25
|
+
name: Credit Card
|
26
|
+
description: Bogus payment gateway for staging.
|
27
|
+
environment: staging
|
28
|
+
active: true
|
29
|
+
type: Gateway::Bogus
|
30
|
+
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# create payments based on the totals since they can't be known in YAML (quantities are random)
|
2
|
+
method = PaymentMethod.find(:first, :conditions => {:name => "Credit Card", :active => true})
|
3
|
+
|
4
|
+
# Hack the current method so we're able to return a gateway without a RAILS_ENV
|
5
|
+
Gateway.class_eval do
|
6
|
+
def self.current
|
7
|
+
Gateway::Bogus.new
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
creditcard = Creditcard.create(:cc_type => "visa", :month => 12, :year => 2014, :last_digits => "1111",
|
12
|
+
:first_name => "Sean", :last_name => "Schofield",
|
13
|
+
:gateway_customer_profile_id => "BGS-1234")
|
14
|
+
|
15
|
+
Order.all.each_with_index do |order,index|
|
16
|
+
printf "\rProcessing order #{index}"
|
17
|
+
STDOUT.flush
|
18
|
+
order.update!
|
19
|
+
payment = order.payments.create(:amount => order.total, :source => creditcard.clone, :payment_method => method)
|
20
|
+
payment.update_attributes_without_callbacks({
|
21
|
+
:state => "pending",
|
22
|
+
:response_code => "12345"
|
23
|
+
})
|
24
|
+
end
|
25
|
+
puts
|
@@ -0,0 +1,20 @@
|
|
1
|
+
flat_rate_ground:
|
2
|
+
name: amount
|
3
|
+
owner: ups_ground
|
4
|
+
owner_type: Calculator
|
5
|
+
value: 5
|
6
|
+
flat_rate_two_day:
|
7
|
+
name: amount
|
8
|
+
owner: ups_two_day
|
9
|
+
owner_type: Calculator
|
10
|
+
value: 10
|
11
|
+
flat_rate_one_day:
|
12
|
+
name: amount
|
13
|
+
owner: ups_one_day
|
14
|
+
owner_type: Calculator
|
15
|
+
value: 15
|
16
|
+
flat_rate_five_dollars:
|
17
|
+
name: amount
|
18
|
+
owner: flat_rate_coupon_calculator
|
19
|
+
owner_type: Calculator
|
20
|
+
value: 5
|
@@ -0,0 +1,136 @@
|
|
1
|
+
shirt_man_a:
|
2
|
+
product: ror_baseball_jersey
|
3
|
+
property: prop_manufacturer
|
4
|
+
value: Wilson
|
5
|
+
shirt_man_b:
|
6
|
+
product: ror_jr_spaghetti
|
7
|
+
property: prop_manufacturer
|
8
|
+
value: Jerseys
|
9
|
+
shirt_man_c:
|
10
|
+
product: ror_ringer
|
11
|
+
property: prop_manufacturer
|
12
|
+
value: Jerseys
|
13
|
+
shirt_brand_a:
|
14
|
+
product: ror_baseball_jersey
|
15
|
+
property: prop_brand
|
16
|
+
value: Wannabe Sports
|
17
|
+
shirt_brand_b:
|
18
|
+
product: ror_jr_spaghetti
|
19
|
+
property: prop_brand
|
20
|
+
value: Resilance
|
21
|
+
shirt_brand_c:
|
22
|
+
product: ror_ringer
|
23
|
+
property: prop_brand
|
24
|
+
value: Conditioned
|
25
|
+
shirt_model_a:
|
26
|
+
product: ror_baseball_jersey
|
27
|
+
property: prop_model
|
28
|
+
value: JK1002
|
29
|
+
shirt_model_b:
|
30
|
+
product: ror_jr_spaghetti
|
31
|
+
property: prop_model
|
32
|
+
value: TL174
|
33
|
+
shirt_model_c:
|
34
|
+
product: ror_ringer
|
35
|
+
property: prop_model
|
36
|
+
value: TL9002
|
37
|
+
shirt_type_a:
|
38
|
+
product: ror_baseball_jersey
|
39
|
+
property: prop_shirt_type
|
40
|
+
value: Baseball Jersey
|
41
|
+
shirt_type_b:
|
42
|
+
product: ror_jr_spaghetti
|
43
|
+
property: prop_shirt_type
|
44
|
+
value: Jr Spaghetti T
|
45
|
+
shirt_type_c:
|
46
|
+
product: ror_ringer
|
47
|
+
property: prop_shirt_type
|
48
|
+
value: Ringer T
|
49
|
+
shirt_sleeve_a:
|
50
|
+
product: ror_baseball_jersey
|
51
|
+
property: prop_shirt_sleeve_type
|
52
|
+
value: long
|
53
|
+
shirt_sleeve_b:
|
54
|
+
product: ror_jr_spaghetti
|
55
|
+
property: prop_shirt_sleeve_type
|
56
|
+
value: none
|
57
|
+
shirt_sleeve_c:
|
58
|
+
product: ror_ringer
|
59
|
+
property: prop_shirt_sleeve_type
|
60
|
+
value: short
|
61
|
+
shirt_fab_a:
|
62
|
+
product: ror_baseball_jersey
|
63
|
+
property: prop_shirt_fabric
|
64
|
+
value: 100% Cotton
|
65
|
+
shirt_fab_b:
|
66
|
+
product: ror_jr_spaghetti
|
67
|
+
property: prop_shirt_fabric
|
68
|
+
value: 90% Cotton, 10% Nylon
|
69
|
+
shirt_fab_c:
|
70
|
+
product: ror_ringer
|
71
|
+
property: prop_shirt_fabric
|
72
|
+
value: 100% Vellum
|
73
|
+
shirt_fit_a:
|
74
|
+
product: ror_baseball_jersey
|
75
|
+
property: prop_shirt_fit
|
76
|
+
value: loose
|
77
|
+
shirt_fit_b:
|
78
|
+
product: ror_jr_spaghetti
|
79
|
+
property: prop_shirt_fit
|
80
|
+
value: form
|
81
|
+
shirt_fit_c:
|
82
|
+
product: ror_ringer
|
83
|
+
property: prop_shirt_fit
|
84
|
+
value: loose
|
85
|
+
shirt_gender_a:
|
86
|
+
product: ror_baseball_jersey
|
87
|
+
property: prop_gender
|
88
|
+
value: Men's
|
89
|
+
shirt_gender_b:
|
90
|
+
product: ror_jr_spaghetti
|
91
|
+
property: prop_gender
|
92
|
+
value: Women's
|
93
|
+
shirt_gender_c:
|
94
|
+
product: ror_ringer
|
95
|
+
property: prop_gender
|
96
|
+
value: Men's
|
97
|
+
bag_type_a:
|
98
|
+
product: ror_tote
|
99
|
+
property: prop_bag_type
|
100
|
+
value: Tote
|
101
|
+
bag_type_b:
|
102
|
+
product: ror_bag
|
103
|
+
property: prop_bag_type
|
104
|
+
value: Messenger
|
105
|
+
bag_size_a:
|
106
|
+
product: ror_tote
|
107
|
+
property: prop_bag_size
|
108
|
+
value: 15" x 18" x 6"
|
109
|
+
bag_size_b:
|
110
|
+
product: ror_bag
|
111
|
+
property: prop_bag_size
|
112
|
+
value: 14 1/2" x 12" x 5"
|
113
|
+
bag_mats_a:
|
114
|
+
product: ror_tote
|
115
|
+
property: prop_bag_material
|
116
|
+
value: Canvas
|
117
|
+
bag_mats_b:
|
118
|
+
product: ror_bag
|
119
|
+
property: prop_bag_material
|
120
|
+
value: 600 Denier Polyester
|
121
|
+
mug_type_a:
|
122
|
+
product: ror_mug
|
123
|
+
property: prop_mug_type
|
124
|
+
value: Mug
|
125
|
+
mug_type_b:
|
126
|
+
product: ror_stein
|
127
|
+
property: prop_mug_type
|
128
|
+
value: Stein
|
129
|
+
mug_size_a:
|
130
|
+
product: ror_mug
|
131
|
+
property: prop_mug_size
|
132
|
+
value: 4.5" tall, 3.25" dia.
|
133
|
+
mug_size_b:
|
134
|
+
product: ror_stein
|
135
|
+
property: prop_mug_size
|
136
|
+
value: 6.75" tall, 3.75" dia. base, 3" dia. rim
|
@@ -0,0 +1,35 @@
|
|
1
|
+
---
|
2
|
+
product_scopes_007:
|
3
|
+
product_group: product_groups_001
|
4
|
+
name: master_price_lte
|
5
|
+
arguments: |
|
6
|
+
---
|
7
|
+
- "20"
|
8
|
+
|
9
|
+
product_scopes_008:
|
10
|
+
product_group: product_groups_001
|
11
|
+
name: descend_by_popularity
|
12
|
+
arguments: |+
|
13
|
+
--- []
|
14
|
+
|
15
|
+
product_scopes_010:
|
16
|
+
product_group: product_groups_002
|
17
|
+
name: descend_by_popularity
|
18
|
+
arguments: |+
|
19
|
+
--- []
|
20
|
+
|
21
|
+
product_scopes_009:
|
22
|
+
product_group: product_groups_002
|
23
|
+
name: in_name
|
24
|
+
arguments: |
|
25
|
+
---
|
26
|
+
- Rails
|
27
|
+
|
28
|
+
product_scopes_006:
|
29
|
+
product_group: product_groups_001
|
30
|
+
name: in_name_or_keywords
|
31
|
+
arguments: |
|
32
|
+
---
|
33
|
+
- Apache
|
34
|
+
|
35
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# make sure the product images directory exists
|
2
|
+
FileUtils.mkdir_p "#{Rails.root}/public/assets/products/"
|
3
|
+
|
4
|
+
Asset.all.each do |asset|
|
5
|
+
filename = asset.attachment_file_name
|
6
|
+
puts "-- Processing image: #{filename}\r"
|
7
|
+
path = File.join(File.dirname(__FILE__), "assets/#{filename}")
|
8
|
+
|
9
|
+
if FileTest.exists? path
|
10
|
+
asset.attachment = File.open(path)
|
11
|
+
asset.save
|
12
|
+
else
|
13
|
+
puts "--- Could not find image at: #{path}"
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
ror_tote:
|
2
|
+
name: Ruby on Rails Tote
|
3
|
+
description: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla nonummy aliquet mi. Proin lacus. Ut placerat. Proin consequat, justo sit amet tempus consequat, elit est adipiscing odio, ut egestas pede eros in diam. Proin varius, lacus vitae suscipit varius, ipsum eros convallis nisi, sit amet sodales lectus pede non est. Duis augue. Suspendisse hendrerit pharetra metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur nec pede. Quisque volutpat, neque ac porttitor sodales, sem lacus rutrum nulla, ullamcorper placerat ante tortor ac odio. Suspendisse vel libero. Nullam volutpat magna vel ligula. Suspendisse sit amet metus. Nunc quis massa. Nulla facilisi. In enim. In venenatis nisi id eros. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc sit amet felis sed lectus tincidunt egestas. Mauris nibh.
|
4
|
+
available_on: <%= Time.zone.now.to_s(:db) %>
|
5
|
+
permalink: ruby-on-rails-tote
|
6
|
+
count_on_hand: 45
|
7
|
+
ror_bag:
|
8
|
+
name: Ruby on Rails Bag
|
9
|
+
description: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla nonummy aliquet mi. Proin lacus. Ut placerat. Proin consequat, justo sit amet tempus consequat, elit est adipiscing odio, ut egestas pede eros in diam. Proin varius, lacus vitae suscipit varius, ipsum eros convallis nisi, sit amet sodales lectus pede non est. Duis augue. Suspendisse hendrerit pharetra metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur nec pede. Quisque volutpat, neque ac porttitor sodales, sem lacus rutrum nulla, ullamcorper placerat ante tortor ac odio. Suspendisse vel libero. Nullam volutpat magna vel ligula. Suspendisse sit amet metus. Nunc quis massa. Nulla facilisi. In enim. In venenatis nisi id eros. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc sit amet felis sed lectus tincidunt egestas. Mauris nibh.
|
10
|
+
available_on: <%= Time.zone.now.to_s(:db) %>
|
11
|
+
permalink: ruby-on-rails-bag
|
12
|
+
count_on_hand: 45
|
13
|
+
ror_baseball_jersey:
|
14
|
+
name: Ruby on Rails Baseball Jersey
|
15
|
+
description: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla nonummy aliquet mi. Proin lacus. Ut placerat. Proin consequat, justo sit amet tempus consequat, elit est adipiscing odio, ut egestas pede eros in diam. Proin varius, lacus vitae suscipit varius, ipsum eros convallis nisi, sit amet sodales lectus pede non est. Duis augue. Suspendisse hendrerit pharetra metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur nec pede. Quisque volutpat, neque ac porttitor sodales, sem lacus rutrum nulla, ullamcorper placerat ante tortor ac odio. Suspendisse vel libero. Nullam volutpat magna vel ligula. Suspendisse sit amet metus. Nunc quis massa. Nulla facilisi. In enim. In venenatis nisi id eros. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc sit amet felis sed lectus tincidunt egestas. Mauris nibh.
|
16
|
+
available_on: <%= Time.zone.now.to_s(:db) %>
|
17
|
+
permalink: ruby-on-rails-baseball-jersey
|
18
|
+
ror_jr_spaghetti:
|
19
|
+
name: Ruby on Rails Jr. Spaghetti
|
20
|
+
description: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla nonummy aliquet mi. Proin lacus. Ut placerat. Proin consequat, justo sit amet tempus consequat, elit est adipiscing odio, ut egestas pede eros in diam. Proin varius, lacus vitae suscipit varius, ipsum eros convallis nisi, sit amet sodales lectus pede non est. Duis augue. Suspendisse hendrerit pharetra metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur nec pede. Quisque volutpat, neque ac porttitor sodales, sem lacus rutrum nulla, ullamcorper placerat ante tortor ac odio. Suspendisse vel libero. Nullam volutpat magna vel ligula. Suspendisse sit amet metus. Nunc quis massa. Nulla facilisi. In enim. In venenatis nisi id eros. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc sit amet felis sed lectus tincidunt egestas. Mauris nibh.
|
21
|
+
available_on: <%= Time.zone.now.to_s(:db) %>
|
22
|
+
permalink: ruby-on-rails-jr-spaghetti
|
23
|
+
count_on_hand: 75
|
24
|
+
ror_mug:
|
25
|
+
name: Ruby on Rails Mug
|
26
|
+
description: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla nonummy aliquet mi. Proin lacus. Ut placerat. Proin consequat, justo sit amet tempus consequat, elit est adipiscing odio, ut egestas pede eros in diam. Proin varius, lacus vitae suscipit varius, ipsum eros convallis nisi, sit amet sodales lectus pede non est. Duis augue. Suspendisse hendrerit pharetra metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur nec pede. Quisque volutpat, neque ac porttitor sodales, sem lacus rutrum nulla, ullamcorper placerat ante tortor ac odio. Suspendisse vel libero. Nullam volutpat magna vel ligula. Suspendisse sit amet metus. Nunc quis massa. Nulla facilisi. In enim. In venenatis nisi id eros. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc sit amet felis sed lectus tincidunt egestas. Mauris nibh.
|
27
|
+
available_on: <%= Time.zone.now.to_s(:db) %>
|
28
|
+
permalink: ruby-on-rails-mug
|
29
|
+
count_on_hand: 75
|
30
|
+
ror_ringer:
|
31
|
+
name: Ruby on Rails Ringer T-Shirt
|
32
|
+
description: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla nonummy aliquet mi. Proin lacus. Ut placerat. Proin consequat, justo sit amet tempus consequat, elit est adipiscing odio, ut egestas pede eros in diam. Proin varius, lacus vitae suscipit varius, ipsum eros convallis nisi, sit amet sodales lectus pede non est. Duis augue. Suspendisse hendrerit pharetra metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur nec pede. Quisque volutpat, neque ac porttitor sodales, sem lacus rutrum nulla, ullamcorper placerat ante tortor ac odio. Suspendisse vel libero. Nullam volutpat magna vel ligula. Suspendisse sit amet metus. Nunc quis massa. Nulla facilisi. In enim. In venenatis nisi id eros. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc sit amet felis sed lectus tincidunt egestas. Mauris nibh.
|
33
|
+
available_on: <%= Time.zone.now.to_s(:db) %>
|
34
|
+
permalink: ruby-on-rails-ringer-t-shirt
|
35
|
+
count_on_hand: 75
|
36
|
+
ror_stein:
|
37
|
+
name: Ruby on Rails Stein
|
38
|
+
description: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla nonummy aliquet mi. Proin lacus. Ut placerat. Proin consequat, justo sit amet tempus consequat, elit est adipiscing odio, ut egestas pede eros in diam. Proin varius, lacus vitae suscipit varius, ipsum eros convallis nisi, sit amet sodales lectus pede non est. Duis augue. Suspendisse hendrerit pharetra metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur nec pede. Quisque volutpat, neque ac porttitor sodales, sem lacus rutrum nulla, ullamcorper placerat ante tortor ac odio. Suspendisse vel libero. Nullam volutpat magna vel ligula. Suspendisse sit amet metus. Nunc quis massa. Nulla facilisi. In enim. In venenatis nisi id eros. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc sit amet felis sed lectus tincidunt egestas. Mauris nibh.
|
39
|
+
available_on: <%= Time.zone.now.to_s(:db) %>
|
40
|
+
permalink: ruby-on-rails-stein
|
41
|
+
count_on_hand: 75
|
42
|
+
ruby_baseball_jersey:
|
43
|
+
name: Ruby Baseball Jersey
|
44
|
+
description: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla nonummy aliquet mi. Proin lacus. Ut placerat. Proin consequat, justo sit amet tempus consequat, elit est adipiscing odio, ut egestas pede eros in diam. Proin varius, lacus vitae suscipit varius, ipsum eros convallis nisi, sit amet sodales lectus pede non est. Duis augue. Suspendisse hendrerit pharetra metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur nec pede. Quisque volutpat, neque ac porttitor sodales, sem lacus rutrum nulla, ullamcorper placerat ante tortor ac odio. Suspendisse vel libero. Nullam volutpat magna vel ligula. Suspendisse sit amet metus. Nunc quis massa. Nulla facilisi. In enim. In venenatis nisi id eros. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc sit amet felis sed lectus tincidunt egestas. Mauris nibh.
|
45
|
+
available_on: <%= Time.zone.now.to_s(:db) %>
|
46
|
+
permalink: ruby-baseball-jersey
|
47
|
+
count_on_hand: 75
|
48
|
+
apache_baseball_jersey:
|
49
|
+
name: Apache Baseball Jersey
|
50
|
+
description: Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nulla nonummy aliquet mi. Proin lacus. Ut placerat. Proin consequat, justo sit amet tempus consequat, elit est adipiscing odio, ut egestas pede eros in diam. Proin varius, lacus vitae suscipit varius, ipsum eros convallis nisi, sit amet sodales lectus pede non est. Duis augue. Suspendisse hendrerit pharetra metus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Curabitur nec pede. Quisque volutpat, neque ac porttitor sodales, sem lacus rutrum nulla, ullamcorper placerat ante tortor ac odio. Suspendisse vel libero. Nullam volutpat magna vel ligula. Suspendisse sit amet metus. Nunc quis massa. Nulla facilisi. In enim. In venenatis nisi id eros. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc sit amet felis sed lectus tincidunt egestas. Mauris nibh.
|
51
|
+
available_on: <%= Time.zone.now.to_s(:db) %>
|
52
|
+
permalink: apache-baseball-jersey
|
53
|
+
count_on_hand: 0
|