lcbo 1.2.3 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +17 -0
- data/Gemfile +5 -0
- data/Rakefile +3 -48
- data/lcbo.gemspec +2 -2
- data/lib/lcbo/pages/product_page.rb +74 -32
- data/lib/lcbo/pages/store_list_page.rb +3 -28
- data/lib/lcbo/pages/store_page.rb +2 -2
- data/lib/lcbo/version.rb +1 -1
- data/spec/pages/product_pages.yml +392 -283
- data/spec/pages/product_pages/1.html +1184 -1053
- data/spec/pages/product_pages/2.html +1181 -1068
- data/spec/pages/product_pages/3.html +1194 -1063
- data/spec/pages/product_pages/4.html +1157 -1053
- data/spec/pages/product_pages/5.html +1166 -1061
- data/spec/pages/product_pages/6.html +251 -231
- data/spec/pages/product_pages/7.html +1179 -1053
- data/spec/pages/product_pages/8.html +1312 -1180
- data/spec/pages/product_pages/9.html +1287 -1192
- data/spec/pages/store_list_pages.yml +623 -612
- data/spec/pages/store_list_pages/1.html +1 -9477
- data/spec/pages/store_pages.yml +4 -3
- data/spec/pages/store_pages/1.html +730 -733
- data/spec/pages/store_pages/2.html +729 -732
- data/spec/spec_helper.rb +1 -0
- metadata +13 -11
- data/spec/pages/product_pages/10.html +0 -1405
- data/spec/pages/product_pages/11.html +0 -1398
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
Version 1.3.0
|
2
|
+
|
3
|
+
* Updated `StoreListPage` to use current XML-based store locator endpoint.
|
4
|
+
* Fixed issue where store opening times of 12:00 PM were reported as midnight.
|
5
|
+
* Fixed product description, serving suggestion, and tasting note parsing.
|
6
|
+
* Added new `#sugar_in_grams_per_liter` attribute to `ProductPage`,
|
7
|
+
`#sugar_content` still reflects the product sweetness descriptor if present.
|
8
|
+
* Added new `#varietal` attribute to `ProductPage`, this appears for some
|
9
|
+
wines selected by the LCBO.
|
10
|
+
* Added new `#style` attribute to `ProductPage`, this reflects the LCBO's
|
11
|
+
designated style for selected wines.
|
12
|
+
* Fixed alcohol content parsing for products.
|
13
|
+
* Added `#clearance_sale_savings_in_cents` and `#has_clearance_sale` indicator
|
14
|
+
to `ProductPage` and included savings calculation in product price.
|
15
|
+
* Fixed product category parsing and added new `#tertiary_category`.
|
16
|
+
* Updated dependencies.
|
17
|
+
|
1
18
|
Version 1.2.3
|
2
19
|
|
3
20
|
* Updated `ProductPage` to return `RedirectedError` for gift cards which now
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -1,61 +1,16 @@
|
|
1
|
-
require '
|
2
|
-
require '
|
1
|
+
require 'bundler/setup'
|
2
|
+
require 'bundler/gem_tasks'
|
3
3
|
require 'rake/testtask'
|
4
4
|
|
5
|
-
def gemspec
|
6
|
-
@gemspec ||= begin
|
7
|
-
Gem::Specification.load(File.expand_path('lcbo.gemspec'))
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
5
|
task :default => :spec
|
12
6
|
|
13
7
|
desc 'Start an irb console'
|
14
8
|
task :console do
|
15
|
-
system 'irb -I lib -r lcbo'
|
16
|
-
end
|
17
|
-
|
18
|
-
desc 'Validates the gemspec'
|
19
|
-
task :gemspec do
|
20
|
-
gemspec.validate
|
21
|
-
end
|
22
|
-
|
23
|
-
desc 'Displays the current version'
|
24
|
-
task :version do
|
25
|
-
puts "Current version: #{gemspec.version}"
|
26
|
-
end
|
27
|
-
|
28
|
-
desc 'Installs the gem locally'
|
29
|
-
task :install => :package do
|
30
|
-
sh "gem install pkg/#{gemspec.name}-#{gemspec.version}"
|
31
|
-
end
|
32
|
-
|
33
|
-
desc 'Release the gem'
|
34
|
-
task :release => :package do
|
35
|
-
sh "gem push pkg/#{gemspec.name}-#{gemspec.version}.gem"
|
9
|
+
system 'bundle exec irb -I lib -r lcbo -r ap'
|
36
10
|
end
|
37
11
|
|
38
|
-
Gem::PackageTask.new(gemspec) do |pkg|
|
39
|
-
pkg.gem_spec = gemspec
|
40
|
-
end
|
41
|
-
task :gem => :gemspec
|
42
|
-
task :package => :gemspec
|
43
|
-
|
44
12
|
Rake::TestTask.new(:spec) do |t|
|
45
13
|
t.libs += %w[lcbo spec]
|
46
14
|
t.test_files = FileList['spec/**/*.rb']
|
47
15
|
t.verbose = true
|
48
16
|
end
|
49
|
-
|
50
|
-
desc 'Download all HTML indicated in YAML assertion files'
|
51
|
-
task :download_support do
|
52
|
-
require 'yaml'
|
53
|
-
require 'open-uri'
|
54
|
-
product_pages = YAML.load_file('./spec/support/product_pages.yml')
|
55
|
-
product_pages.each do |spec|
|
56
|
-
html = open(spec[:uri]).read
|
57
|
-
File.open("./spec/support/product_pages/#{spec[:file]}", ?w) { |file|
|
58
|
-
file.print(html)
|
59
|
-
}
|
60
|
-
end
|
61
|
-
end
|
data/lcbo.gemspec
CHANGED
@@ -14,9 +14,9 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.rubyforge_project = 'lcbo'
|
15
15
|
|
16
16
|
s.add_dependency 'typhoeus', '~> 0.3.3'
|
17
|
-
s.add_dependency 'nokogiri', '~> 1.5.
|
17
|
+
s.add_dependency 'nokogiri', '~> 1.5.5'
|
18
18
|
s.add_dependency 'unicode_utils', '~> 1.2.2'
|
19
|
-
s.add_dependency 'stringex', '~> 1.3.
|
19
|
+
s.add_dependency 'stringex', '~> 1.3.3'
|
20
20
|
|
21
21
|
s.files = `git ls-files`.split(?\n)
|
22
22
|
s.test_files = `git ls-files -- {test,spec}/*`.split(?\n)
|
@@ -35,15 +35,27 @@ module LCBO
|
|
35
35
|
end
|
36
36
|
|
37
37
|
emits :regular_price_in_cents do
|
38
|
-
if has_limited_time_offer
|
39
|
-
info_cell_line_after('Was:').sub('$ ', '').to_f * 100
|
38
|
+
if has_limited_time_offer || has_clearance_sale
|
39
|
+
(info_cell_line_after('Was:').sub('$ ', '').to_f * 100).to_i
|
40
40
|
else
|
41
41
|
price_in_cents
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
45
|
+
emits :clearance_sale_savings_in_cents do
|
46
|
+
if has_clearance_sale
|
47
|
+
regular_price_in_cents - price_in_cents
|
48
|
+
else
|
49
|
+
0
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
45
53
|
emits :limited_time_offer_savings_in_cents do
|
46
|
-
|
54
|
+
if has_limited_time_offer
|
55
|
+
regular_price_in_cents - price_in_cents
|
56
|
+
else
|
57
|
+
0
|
58
|
+
end
|
47
59
|
end
|
48
60
|
|
49
61
|
emits :limited_time_offer_ends_on do
|
@@ -75,16 +87,20 @@ module LCBO
|
|
75
87
|
end
|
76
88
|
|
77
89
|
emits :primary_category do
|
78
|
-
if
|
79
|
-
|
80
|
-
cat ? cat.strip : cat
|
90
|
+
if (cats = stock_categories)
|
91
|
+
cats[0]
|
81
92
|
end
|
82
93
|
end
|
83
94
|
|
84
95
|
emits :secondary_category do
|
85
|
-
if
|
86
|
-
|
87
|
-
|
96
|
+
if (cats = stock_categories)
|
97
|
+
cats[1]
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
emits :tertiary_category do
|
102
|
+
if (cats = stock_categories)
|
103
|
+
cats[2]
|
88
104
|
end
|
89
105
|
end
|
90
106
|
|
@@ -133,8 +149,8 @@ module LCBO
|
|
133
149
|
end
|
134
150
|
|
135
151
|
emits :alcohol_content do
|
136
|
-
if (match = find_info_line(
|
137
|
-
ac = match.gsub(
|
152
|
+
if (match = find_info_line(/% Alcohol\/Vol\./))
|
153
|
+
ac = match.gsub('% Alcohol/Vol.', '').to_f
|
138
154
|
(ac * 100).to_i
|
139
155
|
else
|
140
156
|
0
|
@@ -159,9 +175,21 @@ module LCBO
|
|
159
175
|
end
|
160
176
|
end
|
161
177
|
|
178
|
+
emits :style do
|
179
|
+
if (match = find_info_line(/\AStyle: /))
|
180
|
+
match.sub('Style: ', '')
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
162
184
|
emits :sugar_content do
|
163
|
-
if (match = find_info_line(/\
|
164
|
-
match.
|
185
|
+
if (match = find_info_line(/\ASweetness Descriptor: /))
|
186
|
+
match.sub('Sweetness Descriptor: ', '')
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
190
|
+
emits :sugar_in_grams_per_liter do
|
191
|
+
if (match = find_info_line(/\ASugar Content: /))
|
192
|
+
match.sub('Sugar Content: ', '').to_i
|
165
193
|
end
|
166
194
|
end
|
167
195
|
|
@@ -173,6 +201,14 @@ module LCBO
|
|
173
201
|
end
|
174
202
|
end
|
175
203
|
|
204
|
+
emits :varietal do
|
205
|
+
if (match = find_info_line(/\AVarietal: /))
|
206
|
+
match.sub('Varietal: ', '').strip
|
207
|
+
else
|
208
|
+
nil
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
176
212
|
emits :released_on do
|
177
213
|
if html.include?('Release Date:')
|
178
214
|
date = info_cell_line_after('Release Date:')
|
@@ -183,23 +219,27 @@ module LCBO
|
|
183
219
|
end
|
184
220
|
|
185
221
|
emits :is_discontinued do
|
186
|
-
|
222
|
+
info_cell_text.include?('PRODUCT DISCONTINUED')
|
187
223
|
end
|
188
224
|
|
189
225
|
emits :has_limited_time_offer do
|
190
|
-
|
226
|
+
info_cell_text.include?('Limited Time Offer')
|
227
|
+
end
|
228
|
+
|
229
|
+
emits :has_clearance_sale do
|
230
|
+
info_cell_text.include?('CLEARANCE SALE')
|
191
231
|
end
|
192
232
|
|
193
233
|
emits :has_bonus_reward_miles do
|
194
|
-
|
234
|
+
info_cell_text.include?('Bonus Reward Miles Offer')
|
195
235
|
end
|
196
236
|
|
197
237
|
emits :has_value_added_promotion do
|
198
|
-
|
238
|
+
info_cell_text.include?('Value Added Promotion')
|
199
239
|
end
|
200
240
|
|
201
241
|
emits :is_seasonal do
|
202
|
-
|
242
|
+
info_cell_text.include?('SEASONAL/LIMITED QUANTITIES')
|
203
243
|
end
|
204
244
|
|
205
245
|
emits :is_vqa do
|
@@ -212,21 +252,21 @@ module LCBO
|
|
212
252
|
|
213
253
|
emits :description do
|
214
254
|
if html.include?('<B>Description</B>')
|
215
|
-
match = html.match(/<B>Description<\/B><\/font
|
255
|
+
match = html.match(/<B>Description<\/B><\/font>\n\t\t\t<BR>\n\t\t\t(.+?)\n\t\t\t<BR>/m)
|
216
256
|
CrawlKit::CaptionHelper[match && match.captures[0]]
|
217
257
|
end
|
218
258
|
end
|
219
259
|
|
220
260
|
emits :serving_suggestion do
|
221
261
|
if html.include?('<B>Serving Suggestion</B>')
|
222
|
-
match = html.match(/<B>Serving Suggestion<\/B><\/font><BR>\n\t\t\t(.+?)<BR
|
262
|
+
match = html.match(/<B>Serving Suggestion<\/B><\/font><BR>\n\t\t\t(.+?)\n\t\t\t<BR>/m)
|
223
263
|
CrawlKit::CaptionHelper[match && match.captures[0]]
|
224
264
|
end
|
225
265
|
end
|
226
266
|
|
227
267
|
emits :tasting_note do
|
228
268
|
if html.include?('<B>Tasting Note</B>')
|
229
|
-
match = html.match(/<B>Tasting Note<\/B><\/font
|
269
|
+
match = html.match(/<B>Tasting Note<\/B><\/font>\n\t\t\t<BR>\n\t\t\t(.+?)\n\t\t\t<BR>/m)
|
230
270
|
CrawlKit::CaptionHelper[match && match.captures[0]]
|
231
271
|
end
|
232
272
|
end
|
@@ -258,17 +298,19 @@ module LCBO
|
|
258
298
|
!info_cell_lines[2].include?('Price:')
|
259
299
|
end
|
260
300
|
|
261
|
-
def
|
262
|
-
|
263
|
-
|
264
|
-
l
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
301
|
+
def stock_categories
|
302
|
+
@stock_categories ||= begin
|
303
|
+
# Always appears above alcohol content
|
304
|
+
if (idx = info_cell_lines.index { |l| l =~ /Alcohol\/Vol\./ })
|
305
|
+
cats = info_cell_lines[idx - 1].
|
306
|
+
split(',').
|
307
|
+
map(&:strip).
|
308
|
+
reject { |cat| cat == '' || cat.nil? }
|
309
|
+
cats.empty? ? nil : cats
|
310
|
+
else
|
311
|
+
nil
|
312
|
+
end
|
313
|
+
end
|
272
314
|
end
|
273
315
|
|
274
316
|
def product_details_form(name)
|
@@ -3,43 +3,18 @@ module LCBO
|
|
3
3
|
|
4
4
|
include CrawlKit::Page
|
5
5
|
|
6
|
-
STORE_COUNT_RANGE =
|
6
|
+
STORE_COUNT_RANGE = 600..635
|
7
7
|
|
8
8
|
on :after_parse, :verify_number_of_stores
|
9
9
|
|
10
|
-
|
11
|
-
uri 'http://www.lcbo.com/lcbo-ear/lcbo/store/searchResults.do'
|
12
|
-
|
13
|
-
default_body_params \
|
14
|
-
:language => 'EN',
|
15
|
-
:searchType => 'proximity',
|
16
|
-
:numstores => '999',
|
17
|
-
:streetNumber => '',
|
18
|
-
:streetName => '',
|
19
|
-
:streetType => '',
|
20
|
-
:streetDirection => '',
|
21
|
-
:municipality_proximity => '',
|
22
|
-
:postalCode => 'M5V1K1',
|
23
|
-
:'Find Stores.x' => '68',
|
24
|
-
:'Find Stores.y' => '9',
|
25
|
-
:municipality_citywide => ''
|
10
|
+
uri 'http://www.lcbo.com/lcbo-webapp/storequery.do?searchType=proximity&longitude=-79.0&latitude=43.0&numstores=999&language=EN'
|
26
11
|
|
27
12
|
emits :store_ids do
|
28
13
|
@store_ids ||= begin
|
29
|
-
|
30
|
-
if (match = a.attribute('href').value.match(/\&STORE=([0-9]+)/))
|
31
|
-
ary << match.captures[0].to_i
|
32
|
-
else
|
33
|
-
next ary
|
34
|
-
end
|
35
|
-
}.sort
|
14
|
+
doc.xpath('//store/locationnumber').map { |node| node.content.to_i }
|
36
15
|
end
|
37
16
|
end
|
38
17
|
|
39
|
-
def anchors
|
40
|
-
doc.css('.store-location-list td[width="14%"] a.item-details-col0')
|
41
|
-
end
|
42
|
-
|
43
18
|
def verify_number_of_stores
|
44
19
|
return if STORE_COUNT_RANGE.include?(store_ids.length)
|
45
20
|
raise CrawlKit::MalformedError,
|
@@ -143,9 +143,9 @@ module LCBO
|
|
143
143
|
next [day, [nil, nil]] if text.include?('Closed')
|
144
144
|
times = text.split('-')
|
145
145
|
open, close = *times.map { |time|
|
146
|
-
ord = time.include?('PM') ? 12 : 0
|
147
146
|
hour, min = *time.sub(/AM|PM/, '').strip.split(':').map { |t| t.to_i }
|
148
|
-
hour +=
|
147
|
+
hour += 12 if time.include?('PM') && (hour >= 1 && hour <= 11)
|
148
|
+
hour = 0 if time.include?('AM') && hour == 12
|
149
149
|
(hour * 60) + min
|
150
150
|
}
|
151
151
|
[day, (open == close ? [nil, nil] : [open, close])]
|
data/lib/lcbo/version.rb
CHANGED
@@ -1,219 +1,279 @@
|
|
1
1
|
- :file: 1.html
|
2
2
|
:desc: Seasonal product
|
3
|
-
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=
|
3
|
+
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=234880
|
4
4
|
:method: :get
|
5
5
|
:query_params:
|
6
|
-
:id:
|
6
|
+
:id: 234880
|
7
7
|
:expectation:
|
8
|
-
:id:
|
9
|
-
:name:
|
10
|
-
:tags:
|
11
|
-
|
12
|
-
|
8
|
+
:id: 234880
|
9
|
+
:name: Muskoka Lakes Georgian Bay Rose Qc
|
10
|
+
:tags:
|
11
|
+
- muskoka
|
12
|
+
- lakes
|
13
|
+
- georgian
|
14
|
+
- bay
|
15
|
+
- rose
|
16
|
+
- qc
|
17
|
+
- wine
|
18
|
+
- specialty
|
19
|
+
- winesother
|
20
|
+
- ontario
|
21
|
+
- canada
|
22
|
+
- winery
|
23
|
+
- bottle
|
24
|
+
:price_in_cents: 1695
|
25
|
+
:regular_price_in_cents: 1695
|
26
|
+
:clearance_sale_savings_in_cents: 0
|
13
27
|
:limited_time_offer_savings_in_cents: 0
|
14
28
|
:limited_time_offer_ends_on:
|
15
29
|
:bonus_reward_miles: 0
|
16
30
|
:bonus_reward_miles_ends_on:
|
17
|
-
:
|
18
|
-
:
|
19
|
-
:
|
20
|
-
:
|
31
|
+
:stock_type: LCBO
|
32
|
+
:primary_category: Wine
|
33
|
+
:secondary_category: Specialty Wines/Other
|
34
|
+
:tertiary_category: Fruit Wine
|
35
|
+
:origin: Ontario, Canada
|
21
36
|
:package: 750 mL bottle
|
22
37
|
:package_unit_type: bottle
|
23
38
|
:package_unit_volume_in_milliliters: 750
|
24
39
|
:total_package_units: 1
|
25
40
|
:total_package_volume_in_milliliters: 750
|
26
|
-
:
|
27
|
-
:
|
41
|
+
:volume_in_milliliters: 750
|
42
|
+
:alcohol_content: 1250
|
43
|
+
:price_per_liter_of_alcohol_in_cents: 1808
|
44
|
+
:price_per_liter_in_cents: 2260
|
45
|
+
:style:
|
46
|
+
:sugar_content:
|
47
|
+
:sugar_in_grams_per_liter: 33
|
48
|
+
:producer_name: Muskoka Lakes Winery
|
49
|
+
:varietal: Rose Wines
|
28
50
|
:released_on:
|
29
|
-
:stock_type: LCBO
|
30
|
-
:primary_category: Wine
|
31
|
-
:secondary_category:
|
32
|
-
:is_vqa: false
|
33
|
-
:is_kosher: false
|
34
|
-
:has_bonus_reward_miles: false
|
35
|
-
:has_limited_time_offer: false
|
36
51
|
:is_discontinued: false
|
52
|
+
:has_limited_time_offer: false
|
53
|
+
:has_clearance_sale: false
|
54
|
+
:has_bonus_reward_miles: false
|
55
|
+
:has_value_added_promotion: false
|
37
56
|
:is_seasonal: true
|
57
|
+
:is_vqa: false
|
58
|
+
:is_kosher: false
|
38
59
|
:description:
|
39
|
-
:tasting_note:
|
40
60
|
:serving_suggestion:
|
41
|
-
:
|
42
|
-
|
61
|
+
:tasting_note: The granite shores of Georgian Bay yield crisp, sweet apples, and tart,
|
62
|
+
mouth-watering cranberries. Together, they make a crisp, dry, refreshing wine. The
|
63
|
+
nose is tree fruit with a hint of peach and floral notes. On the palate, it is fruit
|
64
|
+
forward, with good acidity and a dry, lingering finish. A perfect sipping wine,
|
65
|
+
or pair with poached salmon or grilled chicken.
|
66
|
+
:value_added_promotion_description:
|
67
|
+
:image_thumb_url: http://lcbo.com/app/images/products/website/0234880.jpg
|
68
|
+
:image_url: http://lcbo.com/app/images/products/0234880.jpg
|
43
69
|
|
44
70
|
- :file: 2.html
|
45
71
|
:desc: Product with limited time offer
|
46
|
-
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=
|
72
|
+
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=105742
|
47
73
|
:method: :get
|
48
74
|
:query_params:
|
49
|
-
:id:
|
75
|
+
:id: 105742
|
50
76
|
:expectation:
|
51
|
-
:id:
|
52
|
-
:name:
|
53
|
-
:tags:
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
77
|
+
:id: 105742
|
78
|
+
:name: Appleton Estate Extra Rum
|
79
|
+
:tags:
|
80
|
+
- appleton
|
81
|
+
- estate
|
82
|
+
- extra
|
83
|
+
- rum
|
84
|
+
- spirits
|
85
|
+
- jamaica
|
86
|
+
- j
|
87
|
+
- wray
|
88
|
+
- nephew
|
89
|
+
- limited
|
90
|
+
- bottle
|
91
|
+
:price_in_cents: 3495
|
92
|
+
:regular_price_in_cents: 3895
|
93
|
+
:clearance_sale_savings_in_cents: 0
|
94
|
+
:limited_time_offer_savings_in_cents: 400
|
95
|
+
:limited_time_offer_ends_on: 2012-12-02
|
58
96
|
:bonus_reward_miles: 0
|
59
97
|
:bonus_reward_miles_ends_on:
|
60
|
-
:
|
61
|
-
:
|
62
|
-
:
|
63
|
-
:
|
64
|
-
:
|
98
|
+
:stock_type: LCBO
|
99
|
+
:primary_category: Spirits
|
100
|
+
:secondary_category: Rum
|
101
|
+
:tertiary_category: Light/Amber
|
102
|
+
:origin: Jamaica
|
103
|
+
:package: 750 mL bottle
|
65
104
|
:package_unit_type: bottle
|
66
|
-
:package_unit_volume_in_milliliters:
|
67
|
-
:total_package_units:
|
68
|
-
:total_package_volume_in_milliliters:
|
69
|
-
:
|
70
|
-
:
|
105
|
+
:package_unit_volume_in_milliliters: 750
|
106
|
+
:total_package_units: 1
|
107
|
+
:total_package_volume_in_milliliters: 750
|
108
|
+
:volume_in_milliliters: 750
|
109
|
+
:alcohol_content: 4300
|
110
|
+
:price_per_liter_of_alcohol_in_cents: 1083
|
111
|
+
:price_per_liter_in_cents: 4660
|
112
|
+
:style:
|
113
|
+
:sugar_content:
|
114
|
+
:sugar_in_grams_per_liter:
|
115
|
+
:producer_name: J. Wray & Nephew Limited
|
116
|
+
:varietal:
|
71
117
|
:released_on:
|
72
|
-
:
|
73
|
-
:primary_category: Beer
|
74
|
-
:secondary_category: Lager
|
75
|
-
:has_bonus_reward_miles: false
|
118
|
+
:is_discontinued: false
|
76
119
|
:has_limited_time_offer: true
|
120
|
+
:has_clearance_sale: false
|
121
|
+
:has_bonus_reward_miles: false
|
122
|
+
:has_value_added_promotion: false
|
123
|
+
:is_seasonal: false
|
77
124
|
:is_vqa: false
|
78
125
|
:is_kosher: false
|
79
|
-
:is_discontinued: false
|
80
|
-
:is_seasonal: false
|
81
126
|
:description:
|
82
|
-
:
|
83
|
-
:
|
84
|
-
|
85
|
-
|
127
|
+
:serving_suggestion: Serve neat; on the rocks; with cola; on in cooking recipes.
|
128
|
+
:tasting_note: Deep golden/copper colour; vanilla bean, caramel/molasses, buchwheat
|
129
|
+
honey and spicey cinamon/nutmeg aromas; quite elegant on palate with warm, mildly
|
130
|
+
spicy, brown sugar flavours and a smooth, lingering finish.
|
131
|
+
:value_added_promotion_description:
|
132
|
+
:image_thumb_url: http://lcbo.com/app/images/products/website/0105742.jpg
|
133
|
+
:image_url: http://lcbo.com/app/images/products/0105742.jpg
|
86
134
|
|
87
135
|
- :file: 3.html
|
88
136
|
:desc: Product with bonus air miles
|
89
|
-
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=
|
137
|
+
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=508614
|
90
138
|
:method: :get
|
91
139
|
:query_params:
|
92
|
-
:id:
|
140
|
+
:id: 508614
|
93
141
|
:expectation:
|
94
|
-
:id:
|
95
|
-
:name:
|
96
|
-
:tags:
|
97
|
-
|
98
|
-
|
142
|
+
:id: 508614
|
143
|
+
:name: Veuve Clicquot Ponsardin Brut Champagne
|
144
|
+
:tags:
|
145
|
+
- veuve
|
146
|
+
- clicquot
|
147
|
+
- ponsardin
|
148
|
+
- brut
|
149
|
+
- champagne
|
150
|
+
- wine
|
151
|
+
- france
|
152
|
+
- clicquot-ponsardin
|
153
|
+
- clicquotponsardin
|
154
|
+
- sa
|
155
|
+
- bottle
|
156
|
+
:price_in_cents: 9195
|
157
|
+
:regular_price_in_cents: 9195
|
158
|
+
:clearance_sale_savings_in_cents: 0
|
99
159
|
:limited_time_offer_savings_in_cents: 0
|
100
160
|
:limited_time_offer_ends_on:
|
101
|
-
:bonus_reward_miles:
|
102
|
-
:bonus_reward_miles_ends_on:
|
103
|
-
:
|
104
|
-
:
|
105
|
-
:
|
106
|
-
:
|
161
|
+
:bonus_reward_miles: 25
|
162
|
+
:bonus_reward_miles_ends_on: 2012-12-01
|
163
|
+
:stock_type: VINTAGES
|
164
|
+
:primary_category: Wine
|
165
|
+
:secondary_category: Champagne
|
166
|
+
:tertiary_category:
|
167
|
+
:origin: Champagne, France
|
107
168
|
:package: 750 mL bottle
|
108
169
|
:package_unit_type: bottle
|
109
170
|
:package_unit_volume_in_milliliters: 750
|
110
171
|
:total_package_units: 1
|
111
172
|
:total_package_volume_in_milliliters: 750
|
112
|
-
:
|
113
|
-
:
|
114
|
-
:
|
115
|
-
:
|
116
|
-
:
|
117
|
-
:
|
118
|
-
:
|
173
|
+
:volume_in_milliliters: 750
|
174
|
+
:alcohol_content: 1200
|
175
|
+
:price_per_liter_of_alcohol_in_cents: 10216
|
176
|
+
:price_per_liter_in_cents: 12260
|
177
|
+
:style: Rich & Complex
|
178
|
+
:sugar_content: XD - Extra Dry
|
179
|
+
:sugar_in_grams_per_liter: 8
|
180
|
+
:producer_name: Veuve Clicquot-Ponsardin S.A.
|
181
|
+
:varietal: Sparkling (Champagne)
|
182
|
+
:released_on: 2012-04-18
|
183
|
+
:is_discontinued: false
|
119
184
|
:has_limited_time_offer: false
|
185
|
+
:has_clearance_sale: false
|
186
|
+
:has_bonus_reward_miles: true
|
187
|
+
:has_value_added_promotion: false
|
188
|
+
:is_seasonal: false
|
120
189
|
:is_vqa: false
|
121
190
|
:is_kosher: false
|
122
|
-
:
|
123
|
-
|
124
|
-
|
125
|
-
|
191
|
+
:description: An iconoclast like Veuve Cliquot herself (who took over her husband's
|
192
|
+
domaine after his passing in 1805), this rich and racy bubbly has notes of date,
|
193
|
+
apple, black raspberry and bread dough. Deserving of a fine meal like king crab
|
194
|
+
legs or lobster-stuffed ravioli.
|
126
195
|
:serving_suggestion:
|
127
|
-
:
|
128
|
-
:
|
196
|
+
:tasting_note:
|
197
|
+
:value_added_promotion_description:
|
198
|
+
:image_thumb_url: http://lcbo.com/app/images/products/website/0508614.jpg
|
199
|
+
:image_url: http://lcbo.com/app/images/products/0508614.jpg
|
129
200
|
|
130
201
|
- :file: 4.html
|
131
202
|
:desc: Discontinued product
|
132
|
-
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=
|
203
|
+
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=586214
|
133
204
|
:method: :get
|
134
205
|
:query_params:
|
135
|
-
:id:
|
206
|
+
:id: 586214
|
136
207
|
:expectation:
|
137
|
-
:id:
|
138
|
-
:name:
|
139
|
-
:tags:
|
140
|
-
|
141
|
-
|
208
|
+
:id: 586214
|
209
|
+
:name: Woody's Ice Blueberry 330 Ml-B
|
210
|
+
:tags:
|
211
|
+
- woody's
|
212
|
+
- woodys
|
213
|
+
- ice
|
214
|
+
- blueberry
|
215
|
+
- '330'
|
216
|
+
- ml
|
217
|
+
- b
|
218
|
+
- ml-b
|
219
|
+
- mlb
|
220
|
+
- ready
|
221
|
+
- to
|
222
|
+
- drinkcoolers
|
223
|
+
- ready-to-drinkcoolers
|
224
|
+
- readytodrinkcoolers
|
225
|
+
- spirit
|
226
|
+
- coolers
|
227
|
+
- england
|
228
|
+
- united
|
229
|
+
- kingdom
|
230
|
+
- beverage
|
231
|
+
- brands
|
232
|
+
- ltd
|
233
|
+
- bottle
|
234
|
+
:price_in_cents: 225
|
235
|
+
:regular_price_in_cents: 225
|
236
|
+
:clearance_sale_savings_in_cents: 0
|
142
237
|
:limited_time_offer_savings_in_cents: 0
|
143
238
|
:limited_time_offer_ends_on:
|
144
239
|
:bonus_reward_miles: 0
|
145
240
|
:bonus_reward_miles_ends_on:
|
146
|
-
:
|
147
|
-
:
|
148
|
-
:
|
149
|
-
:
|
241
|
+
:stock_type: LCBO
|
242
|
+
:primary_category: Ready-to-Drink/Coolers
|
243
|
+
:secondary_category: Spirit Coolers
|
244
|
+
:tertiary_category:
|
245
|
+
:origin: England, United Kingdom
|
150
246
|
:package: 330 mL bottle
|
151
247
|
:package_unit_type: bottle
|
152
248
|
:package_unit_volume_in_milliliters: 330
|
153
249
|
:total_package_units: 1
|
154
250
|
:total_package_volume_in_milliliters: 330
|
155
|
-
:
|
156
|
-
:
|
251
|
+
:volume_in_milliliters: 330
|
252
|
+
:alcohol_content: 550
|
253
|
+
:price_per_liter_of_alcohol_in_cents: 1239
|
254
|
+
:price_per_liter_in_cents: 681
|
255
|
+
:style:
|
256
|
+
:sugar_content:
|
257
|
+
:sugar_in_grams_per_liter:
|
258
|
+
:producer_name: Beverage Brands Ltd.
|
259
|
+
:varietal:
|
157
260
|
:released_on:
|
158
|
-
:stock_type: LCBO
|
159
|
-
:primary_category: Beer
|
160
|
-
:secondary_category: Ale
|
161
|
-
:has_bonus_reward_miles: false
|
162
|
-
:has_limited_time_offer: false
|
163
|
-
:is_vqa: false
|
164
|
-
:is_kosher: false
|
165
261
|
:is_discontinued: true
|
166
|
-
:is_seasonal: false
|
167
|
-
:description:
|
168
|
-
:tasting_note:
|
169
|
-
:serving_suggestion:
|
170
|
-
:image_thumb_url:
|
171
|
-
:image_url:
|
172
|
-
|
173
|
-
- :file: 5.html
|
174
|
-
:desc: Product with release date
|
175
|
-
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=148528
|
176
|
-
:method: :get
|
177
|
-
:query_params:
|
178
|
-
:id: 148528
|
179
|
-
:expectation:
|
180
|
-
:id: 148528
|
181
|
-
:name: Bodegas Ruconia Rey Don Garcia El de Najera Crianza 2005
|
182
|
-
:tags: ["bodegas", "ruconia", "rey", "don", "garcia", "el", "de", "najera", "crianza", "2005", "wine", "red", "rioja", "spain", "sl", "bottle"]
|
183
|
-
:price_in_cents: 1595
|
184
|
-
:regular_price_in_cents: 1595
|
185
|
-
:limited_time_offer_savings_in_cents: 0
|
186
|
-
:limited_time_offer_ends_on:
|
187
|
-
:bonus_reward_miles: 0
|
188
|
-
:bonus_reward_miles_ends_on:
|
189
|
-
:alcohol_content: 1320
|
190
|
-
:price_per_liter_of_alcohol_in_cents: 1611
|
191
|
-
:price_per_liter_in_cents: 2126
|
192
|
-
:sugar_content: "XD"
|
193
|
-
:package: 750 mL bottle
|
194
|
-
:package_unit_type: bottle
|
195
|
-
:package_unit_volume_in_milliliters: 750
|
196
|
-
:total_package_units: 1
|
197
|
-
:total_package_volume_in_milliliters: 750
|
198
|
-
:origin: Rioja, Spain
|
199
|
-
:producer_name: Bodegas Ruconia S.L.
|
200
|
-
:released_on: 2010-01-23
|
201
|
-
:stock_type: VINTAGES
|
202
|
-
:primary_category: Wine
|
203
|
-
:secondary_category: Red Wine
|
204
|
-
:has_bonus_reward_miles: false
|
205
262
|
:has_limited_time_offer: false
|
263
|
+
:has_clearance_sale: false
|
264
|
+
:has_bonus_reward_miles: false
|
265
|
+
:has_value_added_promotion: false
|
266
|
+
:is_seasonal: false
|
206
267
|
:is_vqa: false
|
207
268
|
:is_kosher: false
|
208
|
-
:is_discontinued: false
|
209
|
-
:is_seasonal: false
|
210
269
|
:description:
|
211
|
-
:tasting_note: "Excellent example of a more mature Crianza, featuring aromas of cherry, dried fruit, vanilla and sweet oak spice. Dry and fruity, this wine's tannins have softened out considerably making this wine very approachable. A fine wine for a rich lamb stew or roast beef. (VINTAGES panel, July 2009)"
|
212
270
|
:serving_suggestion:
|
271
|
+
:tasting_note:
|
272
|
+
:value_added_promotion_description:
|
213
273
|
:image_thumb_url:
|
214
274
|
:image_url:
|
215
275
|
|
216
|
-
- :file:
|
276
|
+
- :file: 5.html
|
217
277
|
:desc: Standard product
|
218
278
|
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=582973
|
219
279
|
:method: :get
|
@@ -222,259 +282,308 @@
|
|
222
282
|
:expectation:
|
223
283
|
:id: 582973
|
224
284
|
:name: Bombay Sapphire London Dry Gin
|
225
|
-
:tags:
|
285
|
+
:tags:
|
286
|
+
- bombay
|
287
|
+
- sapphire
|
288
|
+
- london
|
289
|
+
- dry
|
290
|
+
- gin
|
291
|
+
- spirits
|
292
|
+
- england
|
293
|
+
- united
|
294
|
+
- kingdom
|
295
|
+
- company
|
296
|
+
- ltd
|
297
|
+
- bottle
|
226
298
|
:price_in_cents: 5595
|
227
299
|
:regular_price_in_cents: 5595
|
300
|
+
:clearance_sale_savings_in_cents: 0
|
228
301
|
:limited_time_offer_savings_in_cents: 0
|
229
302
|
:limited_time_offer_ends_on:
|
230
303
|
:bonus_reward_miles: 0
|
231
304
|
:bonus_reward_miles_ends_on:
|
232
|
-
:
|
233
|
-
:
|
234
|
-
:
|
235
|
-
:
|
305
|
+
:stock_type: LCBO
|
306
|
+
:primary_category: Spirits
|
307
|
+
:secondary_category: Gin
|
308
|
+
:tertiary_category:
|
309
|
+
:origin: England, United Kingdom
|
236
310
|
:package: 1750 mL bottle
|
237
311
|
:package_unit_type: bottle
|
238
312
|
:package_unit_volume_in_milliliters: 1750
|
239
313
|
:total_package_units: 1
|
240
314
|
:total_package_volume_in_milliliters: 1750
|
241
|
-
:
|
315
|
+
:volume_in_milliliters: 1750
|
316
|
+
:alcohol_content: 4000
|
317
|
+
:price_per_liter_of_alcohol_in_cents: 799
|
318
|
+
:price_per_liter_in_cents: 3197
|
319
|
+
:style:
|
320
|
+
:sugar_content:
|
321
|
+
:sugar_in_grams_per_liter:
|
242
322
|
:producer_name: Bombay Spirits Company Ltd.
|
323
|
+
:varietal:
|
243
324
|
:released_on:
|
244
|
-
:
|
245
|
-
:primary_category: Spirits
|
246
|
-
:secondary_category: Gin
|
247
|
-
:has_bonus_reward_miles: false
|
325
|
+
:is_discontinued: false
|
248
326
|
:has_limited_time_offer: false
|
327
|
+
:has_clearance_sale: false
|
328
|
+
:has_bonus_reward_miles: false
|
329
|
+
:has_value_added_promotion: false
|
330
|
+
:is_seasonal: false
|
249
331
|
:is_vqa: false
|
250
332
|
:is_kosher: false
|
251
|
-
:is_discontinued: false
|
252
|
-
:is_seasonal: false
|
253
333
|
:description:
|
254
|
-
:
|
255
|
-
:
|
334
|
+
:serving_suggestion: Serve with grilled shrimp, or use in classic gin & tonic or martini
|
335
|
+
:tasting_note: Clear water white; complex mix of herbs and juniper on the nose with
|
336
|
+
crisp lemon peel and citrus flavours; smooth and refreshing
|
337
|
+
:value_added_promotion_description:
|
256
338
|
:image_thumb_url:
|
257
339
|
:image_url:
|
258
340
|
|
259
|
-
- :file:
|
341
|
+
- :file: 6.html
|
260
342
|
:desc: VQA product
|
261
|
-
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=
|
343
|
+
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=125310
|
262
344
|
:method: :get
|
263
345
|
:query_params:
|
264
|
-
:id:
|
346
|
+
:id: 125310
|
265
347
|
:expectation:
|
266
|
-
:id:
|
267
|
-
:name:
|
268
|
-
:tags:
|
269
|
-
|
270
|
-
|
348
|
+
:id: 125310
|
349
|
+
:name: Norman Hardie County Unfiltered Pinot Noir 2010
|
350
|
+
:tags:
|
351
|
+
- norman
|
352
|
+
- hardie
|
353
|
+
- county
|
354
|
+
- unfiltered
|
355
|
+
- pinot
|
356
|
+
- noir
|
357
|
+
- '2010'
|
358
|
+
- wine
|
359
|
+
- red
|
360
|
+
- ontario
|
361
|
+
- canada
|
362
|
+
- wines
|
363
|
+
- bottle
|
364
|
+
:price_in_cents: 3500
|
365
|
+
:regular_price_in_cents: 3500
|
366
|
+
:clearance_sale_savings_in_cents: 0
|
271
367
|
:limited_time_offer_savings_in_cents: 0
|
272
368
|
:limited_time_offer_ends_on:
|
273
369
|
:bonus_reward_miles: 0
|
274
370
|
:bonus_reward_miles_ends_on:
|
275
|
-
:
|
276
|
-
:
|
277
|
-
:
|
278
|
-
:
|
371
|
+
:stock_type: VINTAGES
|
372
|
+
:primary_category: Wine
|
373
|
+
:secondary_category: Red Wine
|
374
|
+
:tertiary_category:
|
375
|
+
:origin: Ontario, Canada
|
279
376
|
:package: 750 mL bottle
|
280
377
|
:package_unit_type: bottle
|
281
378
|
:package_unit_volume_in_milliliters: 750
|
282
379
|
:total_package_units: 1
|
283
380
|
:total_package_volume_in_milliliters: 750
|
284
|
-
:
|
285
|
-
:
|
381
|
+
:volume_in_milliliters: 750
|
382
|
+
:alcohol_content: 1150
|
383
|
+
:price_per_liter_of_alcohol_in_cents: 4057
|
384
|
+
:price_per_liter_in_cents: 4666
|
385
|
+
:style:
|
386
|
+
:sugar_content:
|
387
|
+
:sugar_in_grams_per_liter: 3
|
388
|
+
:producer_name: Hardie Wines
|
389
|
+
:varietal: Pinot Noir
|
286
390
|
:released_on:
|
287
|
-
:
|
288
|
-
:primary_category: Wine
|
289
|
-
:secondary_category:
|
290
|
-
:has_bonus_reward_miles: false
|
391
|
+
:is_discontinued: false
|
291
392
|
:has_limited_time_offer: false
|
393
|
+
:has_clearance_sale: false
|
394
|
+
:has_bonus_reward_miles: false
|
395
|
+
:has_value_added_promotion: false
|
396
|
+
:is_seasonal: false
|
292
397
|
:is_vqa: true
|
293
398
|
:is_kosher: false
|
294
|
-
:is_discontinued: false
|
295
|
-
:is_seasonal: false
|
296
399
|
:description:
|
297
|
-
:tasting_note:
|
298
400
|
:serving_suggestion:
|
299
|
-
:
|
300
|
-
:
|
401
|
+
:tasting_note:
|
402
|
+
:value_added_promotion_description:
|
403
|
+
:image_thumb_url: http://lcbo.com/app/images/products/website/0125310.jpg
|
404
|
+
:image_url: http://lcbo.com/app/images/products/0125310.jpg
|
301
405
|
|
302
|
-
- :file:
|
406
|
+
- :file: 7.html
|
303
407
|
:desc: Kosher Product
|
304
|
-
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=
|
408
|
+
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=256453
|
305
409
|
:method: :get
|
306
410
|
:query_params:
|
307
|
-
:id:
|
411
|
+
:id: 256453
|
308
412
|
:expectation:
|
309
|
-
:id:
|
310
|
-
:name:
|
311
|
-
:tags:
|
312
|
-
|
313
|
-
|
413
|
+
:id: 256453
|
414
|
+
:name: Coco de Java Liqueur K
|
415
|
+
:tags:
|
416
|
+
- coco
|
417
|
+
- de
|
418
|
+
- java
|
419
|
+
- liqueur
|
420
|
+
- k
|
421
|
+
- spirits
|
422
|
+
- liqueurliquor
|
423
|
+
- usa
|
424
|
+
- castle
|
425
|
+
- bottle
|
426
|
+
:price_in_cents: 2790
|
427
|
+
:regular_price_in_cents: 3495
|
428
|
+
:clearance_sale_savings_in_cents: 705
|
314
429
|
:limited_time_offer_savings_in_cents: 0
|
315
430
|
:limited_time_offer_ends_on:
|
316
431
|
:bonus_reward_miles: 0
|
317
432
|
:bonus_reward_miles_ends_on:
|
318
433
|
:stock_type: VINTAGES
|
319
|
-
:primary_category:
|
320
|
-
:secondary_category:
|
321
|
-
:
|
434
|
+
:primary_category: Spirits
|
435
|
+
:secondary_category: Liqueur/Liquor
|
436
|
+
:tertiary_category: Coffee
|
437
|
+
:origin: USA
|
322
438
|
:package: 750 mL bottle
|
323
439
|
:package_unit_type: bottle
|
324
440
|
:package_unit_volume_in_milliliters: 750
|
325
441
|
:total_package_units: 1
|
326
442
|
:total_package_volume_in_milliliters: 750
|
327
443
|
:volume_in_milliliters: 750
|
328
|
-
:alcohol_content:
|
329
|
-
:price_per_liter_of_alcohol_in_cents:
|
330
|
-
:price_per_liter_in_cents:
|
444
|
+
:alcohol_content: 2400
|
445
|
+
:price_per_liter_of_alcohol_in_cents: 1550
|
446
|
+
:price_per_liter_in_cents: 3720
|
447
|
+
:style:
|
331
448
|
:sugar_content:
|
332
|
-
:
|
449
|
+
:sugar_in_grams_per_liter:
|
450
|
+
:producer_name: Castle Spirits
|
451
|
+
:varietal:
|
333
452
|
:released_on:
|
334
453
|
:is_discontinued: false
|
335
454
|
:has_limited_time_offer: false
|
455
|
+
:has_clearance_sale: true
|
336
456
|
:has_bonus_reward_miles: false
|
457
|
+
:has_value_added_promotion: false
|
337
458
|
:is_seasonal: false
|
338
459
|
:is_vqa: false
|
339
460
|
:is_kosher: true
|
340
461
|
:description:
|
341
462
|
:serving_suggestion:
|
342
463
|
:tasting_note:
|
464
|
+
:value_added_promotion_description:
|
343
465
|
:image_thumb_url:
|
344
466
|
:image_url:
|
345
467
|
|
346
|
-
- :file:
|
468
|
+
- :file: 8.html
|
347
469
|
:desc: Product with Value Added Promotion
|
348
|
-
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=
|
349
|
-
:method: :get
|
350
|
-
:query_params:
|
351
|
-
:id: 56796
|
352
|
-
:expectation:
|
353
|
-
:id: 56796
|
354
|
-
:name: Heineken Draught Keg
|
355
|
-
:tags: ["heineken", "draught", "keg", "beer", "lager", "netherlands", "heineken's", "heinekens", "brouwerijen", "nederland", "bv", "can"]
|
356
|
-
:price_in_cents: 2995
|
357
|
-
:regular_price_in_cents: 2995
|
358
|
-
:limited_time_offer_savings_in_cents: 0
|
359
|
-
:limited_time_offer_ends_on:
|
360
|
-
:bonus_reward_miles: 0
|
361
|
-
:bonus_reward_miles_ends_on:
|
362
|
-
:stock_type: LCBO
|
363
|
-
:primary_category: Beer
|
364
|
-
:secondary_category: Lager
|
365
|
-
:origin: Netherlands
|
366
|
-
:package: 5000 mL can
|
367
|
-
:package_unit_type: can
|
368
|
-
:package_unit_volume_in_milliliters: 5000
|
369
|
-
:total_package_units: 1
|
370
|
-
:total_package_volume_in_milliliters: 5000
|
371
|
-
:volume_in_milliliters: 5000
|
372
|
-
:alcohol_content: 500
|
373
|
-
:price_per_liter_of_alcohol_in_cents: 1198
|
374
|
-
:price_per_liter_in_cents: 599
|
375
|
-
:sugar_content: "3"
|
376
|
-
:producer_name: Heineken's Brouwerijen Nederland Bv
|
377
|
-
:released_on:
|
378
|
-
:is_discontinued: false
|
379
|
-
:has_limited_time_offer: false
|
380
|
-
:has_bonus_reward_miles: false
|
381
|
-
:has_value_added_promotion: true
|
382
|
-
:is_seasonal: false
|
383
|
-
:is_vqa: false
|
384
|
-
:is_kosher: false
|
385
|
-
:description:
|
386
|
-
:serving_suggestion: Medium curry, pizza or burgers
|
387
|
-
:tasting_note: Pale gold colour; softly perfumed nose with some hoppy elements; soft grain taste; gently bitter finish.
|
388
|
-
:value_added_promotion_description: 5000 mL can comes with FREE Cooler Bag Wrap until Jan 1, 2011 or while supplies last!
|
389
|
-
:image_thumb_url:
|
390
|
-
:image_url:
|
391
|
-
|
392
|
-
- :file: 10.html
|
393
|
-
:desc: Product with Image
|
394
|
-
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=90399
|
470
|
+
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=42
|
395
471
|
:method: :get
|
396
472
|
:query_params:
|
397
|
-
:id:
|
473
|
+
:id: 42
|
398
474
|
:expectation:
|
399
|
-
:id:
|
400
|
-
:name:
|
401
|
-
:tags:
|
402
|
-
|
403
|
-
|
475
|
+
:id: 42
|
476
|
+
:name: Canadian Club Whisky
|
477
|
+
:tags:
|
478
|
+
- canadian
|
479
|
+
- club
|
480
|
+
- whisky
|
481
|
+
- spirits
|
482
|
+
- whiskywhiskey
|
483
|
+
- canada
|
484
|
+
- company
|
485
|
+
- bottle
|
486
|
+
:price_in_cents: 2495
|
487
|
+
:regular_price_in_cents: 2495
|
488
|
+
:clearance_sale_savings_in_cents: 0
|
404
489
|
:limited_time_offer_savings_in_cents: 0
|
405
490
|
:limited_time_offer_ends_on:
|
406
491
|
:bonus_reward_miles: 0
|
407
492
|
:bonus_reward_miles_ends_on:
|
408
493
|
:stock_type: LCBO
|
409
|
-
:primary_category:
|
410
|
-
:secondary_category:
|
411
|
-
:
|
494
|
+
:primary_category: Spirits
|
495
|
+
:secondary_category: Whisky/Whiskey
|
496
|
+
:tertiary_category: Canadian
|
497
|
+
:origin: Canada
|
412
498
|
:package: 750 mL bottle
|
413
499
|
:package_unit_type: bottle
|
414
500
|
:package_unit_volume_in_milliliters: 750
|
415
501
|
:total_package_units: 1
|
416
502
|
:total_package_volume_in_milliliters: 750
|
417
503
|
:volume_in_milliliters: 750
|
418
|
-
:alcohol_content:
|
419
|
-
:price_per_liter_of_alcohol_in_cents:
|
420
|
-
:price_per_liter_in_cents:
|
421
|
-
:
|
422
|
-
:
|
504
|
+
:alcohol_content: 4000
|
505
|
+
:price_per_liter_of_alcohol_in_cents: 831
|
506
|
+
:price_per_liter_in_cents: 3326
|
507
|
+
:style:
|
508
|
+
:sugar_content:
|
509
|
+
:sugar_in_grams_per_liter:
|
510
|
+
:producer_name: Canadian Club Whisky Company
|
511
|
+
:varietal:
|
423
512
|
:released_on:
|
424
513
|
:is_discontinued: false
|
425
514
|
:has_limited_time_offer: false
|
515
|
+
:has_clearance_sale: false
|
426
516
|
:has_bonus_reward_miles: false
|
427
|
-
:has_value_added_promotion:
|
517
|
+
:has_value_added_promotion: true
|
428
518
|
:is_seasonal: false
|
429
519
|
:is_vqa: false
|
430
520
|
:is_kosher: false
|
431
521
|
:description:
|
432
|
-
:serving_suggestion:
|
433
|
-
:tasting_note:
|
434
|
-
|
435
|
-
:
|
436
|
-
|
522
|
+
:serving_suggestion: On the rocks or in a cocktail
|
523
|
+
:tasting_note: Golden amber colour; corn mash nose with peach & vanilla notes; matching
|
524
|
+
smooth flavour
|
525
|
+
:value_added_promotion_description: 750 mL bottle comes with FREE Devil's Cut 50ml
|
526
|
+
until Dec 1, 2012 or while supplies last!
|
527
|
+
:image_thumb_url: http://lcbo.com/app/images/products/website/0000042.jpg
|
528
|
+
:image_url: http://lcbo.com/app/images/products/0000042.jpg
|
437
529
|
|
438
|
-
- :file:
|
530
|
+
- :file: 9.html
|
439
531
|
:desc: Vintages product with no image
|
440
|
-
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=
|
532
|
+
:uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=965293
|
441
533
|
:method: :get
|
442
534
|
:query_params:
|
443
|
-
:id:
|
535
|
+
:id: 965293
|
444
536
|
:expectation:
|
445
|
-
:id:
|
446
|
-
:name:
|
447
|
-
:tags:
|
448
|
-
|
449
|
-
|
537
|
+
:id: 965293
|
538
|
+
:name: ! '''Luce'' Grappa'
|
539
|
+
:tags:
|
540
|
+
- ! '''luce'''
|
541
|
+
- luce
|
542
|
+
- grappa
|
543
|
+
- spirits
|
544
|
+
- eau
|
545
|
+
- de
|
546
|
+
- vie
|
547
|
+
- eau-de-vie
|
548
|
+
- eaudevie
|
549
|
+
- italy
|
550
|
+
- bottle
|
551
|
+
:price_in_cents: 6995
|
552
|
+
:regular_price_in_cents: 6995
|
553
|
+
:clearance_sale_savings_in_cents: 0
|
450
554
|
:limited_time_offer_savings_in_cents: 0
|
451
555
|
:limited_time_offer_ends_on:
|
452
556
|
:bonus_reward_miles: 0
|
453
557
|
:bonus_reward_miles_ends_on:
|
454
558
|
:stock_type: VINTAGES
|
455
|
-
:primary_category:
|
456
|
-
:secondary_category:
|
457
|
-
:
|
458
|
-
:
|
559
|
+
:primary_category: Spirits
|
560
|
+
:secondary_category: Eau-de-Vie
|
561
|
+
:tertiary_category: Grappa
|
562
|
+
:origin: Italy
|
563
|
+
:package: 500 mL bottle
|
459
564
|
:package_unit_type: bottle
|
460
|
-
:package_unit_volume_in_milliliters:
|
565
|
+
:package_unit_volume_in_milliliters: 500
|
461
566
|
:total_package_units: 1
|
462
|
-
:total_package_volume_in_milliliters:
|
463
|
-
:volume_in_milliliters:
|
464
|
-
:alcohol_content:
|
465
|
-
:price_per_liter_of_alcohol_in_cents:
|
466
|
-
:price_per_liter_in_cents:
|
467
|
-
:
|
468
|
-
:
|
469
|
-
:
|
567
|
+
:total_package_volume_in_milliliters: 500
|
568
|
+
:volume_in_milliliters: 500
|
569
|
+
:alcohol_content: 4000
|
570
|
+
:price_per_liter_of_alcohol_in_cents: 3497
|
571
|
+
:price_per_liter_in_cents: 13990
|
572
|
+
:style:
|
573
|
+
:sugar_content:
|
574
|
+
:sugar_in_grams_per_liter:
|
575
|
+
:producer_name: Luce
|
576
|
+
:varietal:
|
577
|
+
:released_on:
|
470
578
|
:is_discontinued: false
|
471
579
|
:has_limited_time_offer: false
|
580
|
+
:has_clearance_sale: false
|
472
581
|
:has_bonus_reward_miles: false
|
473
582
|
:has_value_added_promotion: false
|
474
583
|
:is_seasonal: false
|
475
584
|
:is_vqa: false
|
476
585
|
:is_kosher: false
|
477
|
-
:description:
|
586
|
+
:description:
|
478
587
|
:serving_suggestion:
|
479
588
|
:tasting_note:
|
480
589
|
:value_added_promotion_description:
|