lcbo 1.2.3 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -1,2 +1,7 @@
1
1
  source :rubygems
2
2
  gemspec
3
+
4
+ group :development do
5
+ gem 'rake'
6
+ gem 'awesome_print'
7
+ end
data/Rakefile CHANGED
@@ -1,61 +1,16 @@
1
- require 'rubygems/specification' unless defined?(Gem::Specification)
2
- require 'rubygems/package_task'
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
@@ -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.0'
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.0'
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
- regular_price_in_cents - price_in_cents
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 stock_category
79
- cat = stock_category.split(',')[0]
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 stock_category
86
- cat = stock_category.split(',')[1]
87
- cat ? cat.strip : cat
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(/ Alcohol\/Vol.\Z/))
137
- ac = match.gsub(/%| Alcohol\/Vol./, '').to_f
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(/\ASugar Content : /))
164
- match.gsub('Sugar Content : ', '')
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
- html.include?('PRODUCT DISCONTINUED')
222
+ info_cell_text.include?('PRODUCT DISCONTINUED')
187
223
  end
188
224
 
189
225
  emits :has_limited_time_offer do
190
- html.include?('<B>Limited Time Offer</B>')
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
- html.include?('<B>Bonus Reward Miles Offer</B>')
234
+ info_cell_text.include?('Bonus Reward Miles Offer')
195
235
  end
196
236
 
197
237
  emits :has_value_added_promotion do
198
- html.include?('<B>Value Added Promotion</B>')
238
+ info_cell_text.include?('Value Added Promotion')
199
239
  end
200
240
 
201
241
  emits :is_seasonal do
202
- html.include?('<font color="#ff0000">SEASONAL/LIMITED QUANTITIES</font>')
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><BR>\n\t\t\t(.+?)<BR>\n\t\t\t<BR>/m)
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><BR>/m)
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><BR>\n\t\t\t(.+?)<BR>\n\t\t\t<BR>/m)
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 stock_category
262
- cat = get_info_lines_at_offset(12).reject do |line|
263
- l = line.strip
264
- l == '' ||
265
- l.include?('Price:') ||
266
- l.include?('Bonus Reward Miles Offer') ||
267
- l.include?('Value Added Promotion') ||
268
- l.include?('Limited Time Offer') ||
269
- l.include?('NOTE:')
270
- end.first
271
- cat ? cat.strip : nil
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 = 595..630
6
+ STORE_COUNT_RANGE = 600..635
7
7
 
8
8
  on :after_parse, :verify_number_of_stores
9
9
 
10
- http_method :post
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
- anchors.reduce([]) { |ary, a|
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 += ord
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])]
@@ -1,3 +1,3 @@
1
1
  module LCBO
2
- VERSION = '1.2.3'
2
+ VERSION = '1.3.0'
3
3
  end
@@ -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=122408
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: 122408
6
+ :id: 234880
7
7
  :expectation:
8
- :id: 122408
9
- :name: Pascual Toso Malbec Rose
10
- :tags: ["pascual", "toso", "malbec", "rose", "wine", "argentina", "bottle"]
11
- :price_in_cents: 1195
12
- :regular_price_in_cents: 1195
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
- :alcohol_content: 1270
18
- :price_per_liter_of_alcohol_in_cents: 1254
19
- :price_per_liter_in_cents: 1593
20
- :sugar_content: "1"
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
- :origin: Argentina
27
- :producer_name: Pascual Toso
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
- :image_thumb_url:
42
- :image_url:
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=18
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: 18
75
+ :id: 105742
50
76
  :expectation:
51
- :id: 18
52
- :name: Heineken Lager
53
- :tags: ["heineken", "lager", "beer", "netherlands", "heineken's", "heinekens", "brouwerijen", "nederland", "bv", "bottle"]
54
- :price_in_cents: 1250
55
- :regular_price_in_cents: 1350
56
- :limited_time_offer_savings_in_cents: 100
57
- :limited_time_offer_ends_on: 2010-08-15
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
- :alcohol_content: 500
61
- :price_per_liter_of_alcohol_in_cents: 1262
62
- :price_per_liter_in_cents: 631
63
- :sugar_content: "7"
64
- :package: 6x330 mL bottle
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: 330
67
- :total_package_units: 6
68
- :total_package_volume_in_milliliters: 1980
69
- :origin: Netherlands
70
- :producer_name: Heineken's Brouwerijen Nederland Bv
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
- :stock_type: LCBO
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
- :tasting_note: "Pale gold colour; softly perfumed nose with some hoppy elements; soft grain taste; gently bitter finish."
83
- :serving_suggestion: "Medium curry, pizza or burgers"
84
- :image_thumb_url:
85
- :image_url:
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=280461
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: 280461
140
+ :id: 508614
93
141
  :expectation:
94
- :id: 280461
95
- :name: Dom Pérignon Brut Champagne
96
- :tags: ["dom", "pérignon", "brut", "champagne", "wine", "france", "moet", "chandon", "sa", "bottle", "perignon"]
97
- :price_in_cents: 21995
98
- :regular_price_in_cents: 21995
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: 30
102
- :bonus_reward_miles_ends_on: 2010-08-14
103
- :alcohol_content: 1250
104
- :price_per_liter_of_alcohol_in_cents: 23461
105
- :price_per_liter_in_cents: 29326
106
- :sugar_content: XD
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
- :origin: Champagne, France
113
- :producer_name: Moet & Chandon S.A.
114
- :released_on: 2010-05-15
115
- :stock_type: VINTAGES
116
- :primary_category: Wine
117
- :secondary_category: Champagne
118
- :has_bonus_reward_miles: true
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
- :is_discontinued: false
123
- :is_seasonal: false
124
- :description: "The legend now joins our Essentials Collection. Purported to be the father of all Champagne, Dom Pérignon continues to impress generation after generation. This ultimate anniversary, or birthday celebration, bubbly is only made in the greatest years. Loaded with stylish aromas of citrus, artisanal bread, green apple, mineral and pear, it's quite dry and vibrantly refreshing on the palate. Every vintage Robert Parker has reviewed from 1982 to the present has received scores in the range of 92 to 98 points! Expect to be impressed."
125
- :tasting_note:
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
- :image_thumb_url:
128
- :image_url:
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=479154
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: 479154
206
+ :id: 586214
136
207
  :expectation:
137
- :id: 479154
138
- :name: Floris Ninkeberry Gardenbeer
139
- :tags: ["floris", "ninkeberry", "gardenbeer", "beer", "ale", "belgium", "brouwerij", "huyghe", "bottle"]
140
- :price_in_cents: 250
141
- :regular_price_in_cents: 250
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
- :alcohol_content: 350
147
- :price_per_liter_of_alcohol_in_cents: 2164
148
- :price_per_liter_in_cents: 757
149
- :sugar_content: "8"
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
- :origin: Belgium
156
- :producer_name: Brouwerij Huyghe
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: 6.html
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: ["bombay", "sapphire", "london", "dry", "gin", "spirits", "england", "united", "kingdom", "company", "ltd", "bottle"]
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
- :alcohol_content: 4000
233
- :price_per_liter_of_alcohol_in_cents: 792
234
- :price_per_liter_in_cents: 3197
235
- :sugar_content:
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
- :origin: England, United Kingdom
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
- :stock_type: LCBO
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
- :tasting_note: "Clear water white; complex mix of herbs and juniper on the nose with crisp lemon peel flavours; smooth and refreshing"
255
- :serving_suggestion: "Martinis, mixed drinks"
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: 7.html
341
+ - :file: 6.html
260
342
  :desc: VQA product
261
- :uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=2183079
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: 2183079
346
+ :id: 125310
265
347
  :expectation:
266
- :id: 2183079
267
- :name: Lake & River Series Cabernet Franc VQA
268
- :tags: ["lake", "river", "series", "cabernet", "franc", "vqa", "wine", "ontario", "canada", "colio", "wines", "of", "ltd", "bottle"]
269
- :price_in_cents: 1095
270
- :regular_price_in_cents: 1095
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
- :alcohol_content: 1220
276
- :price_per_liter_of_alcohol_in_cents: 1196
277
- :price_per_liter_in_cents: 1460
278
- :sugar_content:
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
- :origin: Ontario, Canada
285
- :producer_name: Colio Wines of Canada Ltd.
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
- :stock_type: LCBO
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
- :image_thumb_url:
300
- :image_url:
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: 8.html
406
+ - :file: 7.html
303
407
  :desc: Kosher Product
304
- :uri: http://lcbo.com/lcbo-ear/lcbo/product/details.do?language=EN&itemNumber=114173
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: 114173
411
+ :id: 256453
308
412
  :expectation:
309
- :id: 114173
310
- :name: 05 Sauv Blanc Weinstock Cellar K
311
- :tags: ["05", "sauv", "blanc", "weinstock", "cellar", "k", "wine", "california", "united", "states", "royal", "wines", "bottle"]
312
- :price_in_cents: 2295
313
- :regular_price_in_cents: 2295
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: Wine
320
- :secondary_category:
321
- :origin: California, United States
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: 1350
329
- :price_per_liter_of_alcohol_in_cents: 2266
330
- :price_per_liter_in_cents: 3060
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
- :producer_name: Royal Wines
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: 9.html
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=56796
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: 90399
473
+ :id: 42
398
474
  :expectation:
399
- :id: 90399
400
- :name: Yellow Tail Bubbles Rose
401
- :tags: ["yellow", "tail", "bubbles", "rose", "wine", "sparkling", "australia", "casella", "wines", "bottle"]
402
- :price_in_cents: 1395
403
- :regular_price_in_cents: 1395
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: Wine
410
- :secondary_category: Sparkling Wine
411
- :origin: Australia
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: 1200
419
- :price_per_liter_of_alcohol_in_cents: 1550
420
- :price_per_liter_in_cents: 1860
421
- :sugar_content: "2"
422
- :producer_name: Casella Wines
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: false
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: "Perfect on its own or with appetizers"
433
- :tasting_note: "Pale salmon colour with medium-sized bubbles; aromas of candied raspberry, strawberry, and pink grapefruit; dry, very crisp and fresh acidity, laden with candied fruit flavours through to the finish."
434
- :value_added_promotion_description:
435
- :image_thumb_url: http://lcbo.com/app/images/products/website/0090399.jpg
436
- :image_url: http://lcbo.com/app/images/products/0090399.jpg
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: 11.html
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=905596
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: 905596
535
+ :id: 965293
444
536
  :expectation:
445
- :id: 905596
446
- :name: Terredora Campore Fiano Di Avellino 2008
447
- :tags: ["terredora", "campore", "fiano", "di", "avellino", "2008", "wine", "white", "campania", "italy", "terre", "dora", "paulo", "ss", "bottle"]
448
- :price_in_cents: 2895
449
- :regular_price_in_cents: 2895
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: Wine
456
- :secondary_category: White Wine
457
- :origin: "Campania, Italy"
458
- :package: 750 mL bottle
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: 750
565
+ :package_unit_volume_in_milliliters: 500
461
566
  :total_package_units: 1
462
- :total_package_volume_in_milliliters: 750
463
- :volume_in_milliliters: 750
464
- :alcohol_content: 1300
465
- :price_per_liter_of_alcohol_in_cents: 2969
466
- :price_per_liter_in_cents: 3860
467
- :sugar_content: D
468
- :producer_name: "Terre Dora Di Paulo S.S."
469
- :released_on: 2011-01-22
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: "TASTING NOTE: Delivers amazing aromas of lemon and lime, with hints of mineral. A full-bodied, late-harvest style, offering lots of dried fruits, from citrus to melon. Spicy. If you want a denser, richer Fiano, this is for you. Drink now. Score: 91 (James Suckling, www.winespectator.com, April 30, 2010)"
586
+ :description:
478
587
  :serving_suggestion:
479
588
  :tasting_note:
480
589
  :value_added_promotion_description: