lcbo 1.2.3 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|