workarea-nvy_theme 1.1.4 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc.json +35 -0
  3. data/.github/workflows/ci.yml +60 -0
  4. data/.gitignore +1 -2
  5. data/.rubocop.yml +2 -7
  6. data/.stylelintrc.json +8 -0
  7. data/Gemfile +0 -1
  8. data/README.md +38 -51
  9. data/app/assets/javascripts/workarea/storefront/modules/mobile_filter_buttons.js +3 -1
  10. data/app/assets/stylesheets/workarea/storefront/blog/components/_blog_entry.scss +0 -6
  11. data/app/assets/stylesheets/workarea/storefront/components/_product_list.scss +14 -7
  12. data/app/views/layouts/workarea/storefront/application.html.haml +11 -17
  13. data/app/views/layouts/workarea/storefront/checkout.html.haml +1 -1
  14. data/app/views/workarea/storefront/blog_entries/show.html.haml +26 -20
  15. data/app/views/workarea/storefront/blogs/_blog_navigation.html.haml +6 -5
  16. data/app/views/workarea/storefront/carts/_move_to_wish_list.html.haml +4 -3
  17. data/app/views/workarea/storefront/carts/show.html.haml +1 -1
  18. data/app/views/workarea/storefront/categories/show.html.haml +3 -2
  19. data/app/views/workarea/storefront/checkouts/_gift_card_payment.html.haml +20 -12
  20. data/app/views/workarea/storefront/checkouts/confirmation.html.haml +3 -1
  21. data/app/views/workarea/storefront/content_blocks/_category_summary.html.haml +2 -1
  22. data/app/views/workarea/storefront/content_blocks/_product_insights.html.haml +2 -1
  23. data/app/views/workarea/storefront/content_blocks/_product_list.html.haml +2 -1
  24. data/app/views/workarea/storefront/menus/index.html.haml +4 -3
  25. data/app/views/workarea/storefront/orders/_summary.html.haml +7 -2
  26. data/app/views/workarea/storefront/products/_media.html.haml +3 -3
  27. data/app/views/workarea/storefront/products/_rating.html.haml +1 -2
  28. data/app/views/workarea/storefront/products/_reviews.html.haml +5 -5
  29. data/app/views/workarea/storefront/products/_reviews_aggregate.html.haml +2 -2
  30. data/app/views/workarea/storefront/products/show.html.haml +6 -3
  31. data/app/views/workarea/storefront/products/templates/_generic.html.haml +4 -4
  32. data/app/views/workarea/storefront/products/templates/_gift_card.html.haml +4 -4
  33. data/app/views/workarea/storefront/products/templates/_option_selects.html.haml +4 -4
  34. data/app/views/workarea/storefront/products/templates/_option_thumbnails.html.haml +4 -4
  35. data/app/views/workarea/storefront/products/templates/_swatches.html.haml +4 -4
  36. data/app/views/workarea/storefront/recent_views/show.html.haml +3 -10
  37. data/app/views/workarea/storefront/recommendations/show.html.haml +1 -1
  38. data/app/views/workarea/storefront/reviews/new.html.haml +3 -3
  39. data/app/views/workarea/storefront/searches/show.html.haml +4 -5
  40. data/app/views/workarea/storefront/shares/_share_buttons.html.haml +0 -3
  41. data/app/views/workarea/storefront/users/accounts/_wish_list_summary.html.haml +3 -2
  42. data/app/views/workarea/storefront/users/accounts/edit.html.haml +3 -3
  43. data/app/views/workarea/storefront/users/accounts/show.html.haml +3 -3
  44. data/app/views/workarea/storefront/users/addresses/edit.html.haml +3 -3
  45. data/app/views/workarea/storefront/users/addresses/new.html.haml +3 -3
  46. data/app/views/workarea/storefront/users/credit_cards/edit.html.haml +3 -3
  47. data/app/views/workarea/storefront/users/credit_cards/new.html.haml +3 -3
  48. data/lib/workarea/nvy_theme/version.rb +1 -1
  49. data/package.json +9 -0
  50. data/test/helpers/workarea/storefront/reviews_helper_test.decorator +9 -0
  51. data/test/system/workarea/admin/guest_browsing_system_test.decorator +1 -1
  52. data/test/system/workarea/storefront/analytics_system_test.decorator +1 -1
  53. data/workarea-nvy_theme.gemspec +11 -11
  54. data/yarn.lock +3265 -0
  55. metadata +42 -55
  56. data/LICENSE.md +0 -3
@@ -1,6 +1,7 @@
1
1
  - if blog.tags.present?
2
- .secondary-nav{ role: 'navigation' }
3
- %h2.secondary-nav__heading= t('workarea.storefront.blogs.tags')
4
- %ul.secondary-nav__links
5
- - blog.tags.each do |tag|
6
- %li.secondary-nav__item= link_to "#{tag[:name]} (#{tag[:count]})", blog_tagged_path(blog, tag[:name]), class: 'secondary-nav__link'
2
+ %h2= t('workarea.storefront.blogs.tags')
3
+ %ul.secondary-nav{ role: 'navigation' }
4
+ - blog.tags.each do |tag|
5
+ %li.secondary-nav__item
6
+ = link_to blog_tagged_path(blog, tag[:name]), class: 'secondary-nav__link' do
7
+ = t('workarea.storefront.blogs.tag_link', tag)
@@ -1,6 +1,7 @@
1
1
  .grid__cell
2
2
  = form_tag from_cart_users_wish_list_path(item), method: 'post' do
3
3
  = hidden_field_tag :return_to, users_wish_list_path, id: "wishlist_return_to_#{dom_id(item)}"
4
- = button_tag value: 'move_to_wish_list', class: 'text-button' do
5
- = inline_svg('workarea/storefront/icons/heart.svg', class: 'text-button__icon')
6
- = t('workarea.storefront.wish_lists.move_to_wish_list')
4
+ %p
5
+ = button_tag t('workarea.storefront.wish_lists.move_to_wish_list'), value: 'move_to_wish_list', class: 'text-button', data: { analytics: add_to_wish_list_analytics_data(item.product).to_json } do
6
+ = inline_svg('workarea/storefront/icons/heart.svg', class: 'text-button__icon')
7
+ = t('workarea.storefront.wish_lists.move_to_wish_list')
@@ -168,7 +168,7 @@
168
168
  .grid
169
169
  - @cart.recommendations.each do |product|
170
170
  .grid__cell.grid__cell--50.grid__cell--25-at-medium
171
- .product-summary.product-summary--small{ itemscope: true, itemtype: 'http://schema.org/Product' }
171
+ .product-summary.product-summary--small
172
172
  = render 'workarea/storefront/products/summary', product: product
173
173
 
174
174
  - if @cart.quantity.zero?
@@ -3,10 +3,10 @@
3
3
 
4
4
  - add_css(@category.css)
5
5
  - add_javascript(@category.javascript)
6
+ - add_head_content(@category.head_content)
6
7
 
7
8
  - content_for :head do
8
9
  - cache "#{@category.cache_key}/head", expires_in: Workarea.config.cache_expirations.categories_fragment_cache do
9
- %meta{ property: 'recent-view', content: recent_view_content(category_id: @category.id) }
10
10
  %meta{ property: 'global-id', content: @category.to_global_id.to_param }
11
11
 
12
12
  - if @category.first_page? && !@category.has_filters?
@@ -91,10 +91,11 @@
91
91
  .pagination{ data: { analytics: product_list_analytics_data(@category.name).to_json, pagination: pagination_data(@category.products), back_to_top_button: '' } }
92
92
  .grid
93
93
  - @category.products.each_with_index do |product, position|
94
+ = render_schema_org(product_schema(product))
94
95
  = append_partials('storefront.category_browse_grid_item', product: product, position: position)
95
96
 
96
97
  .grid__cell.grid__cell--50.grid__cell--33-at-medium{ data: { pagination_item: '' } }
97
- .product-summary{ itemscope: true, itemtype: 'http://schema.org/Product' }
98
+ .product-summary
98
99
  = render 'workarea/storefront/products/summary', product: product
99
100
  - if show_pagination?(@category.products)
100
101
  .pagination__button
@@ -1,28 +1,36 @@
1
- .checkout-payment__secondary-method{ class: step.show_gift_card? ? 'checkout-payment__secondary-method--visible' : nil }
1
+ .checkout-payment__secondary-method{ class: step.gift_card? ? 'checkout-payment__secondary-method--visible' : nil }
2
2
 
3
- - if step.show_gift_card?
3
+ - if step.gift_card?
4
4
  .message.message--info
5
5
  %p.message__type
6
6
  %span.message__icon= t('workarea.storefront.messages.info')
7
7
  %p.message__text
8
- #{t('workarea.storefront.gift_cards.balance', amount: number_to_currency(step.gift_card_balance))}
9
- #{t('workarea.storefront.gift_cards.applied_to_order', amount: number_to_currency(step.gift_card_amount))}
8
+ #{t('workarea.storefront.gift_cards.balance_html', amount: number_to_currency(step.gift_card_balance))}
9
+ #{t('workarea.storefront.gift_cards.applied_to_order_html', amount: number_to_currency(step.gift_card_amount))}
10
10
 
11
- - if step.order_covered_by_gift_card?
12
- #{t('workarea.storefront.gift_cards.place_order', amount: number_to_currency(step.gift_card_amount))}
13
11
  - if step.tender_required?
14
- #{t('workarea.storefront.gift_cards.tender_required', amount: number_to_currency(step.order_balance))}
12
+ #{t('workarea.storefront.gift_cards.tender_required_html', amount: number_to_currency(step.order_balance))}
13
+ - else
14
+ #{t('workarea.storefront.gift_cards.place_order')}
15
15
 
16
- = optional_field(t('workarea.storefront.gift_cards.enter_gift_card_prompt'), step.gift_card.try(:number)) do
16
+ = optional_field(t('workarea.storefront.gift_cards.enter_gift_card_prompt'), step.gift_cards, step.failed_gift_card) do
17
17
 
18
18
  %h2= t('workarea.storefront.gift_cards.gift_card')
19
19
 
20
- = form_tag checkout_add_gift_card_path, method: 'patch', id: 'gift_card_form', class: 'inline-form' do
20
+ = form_tag checkout_gift_cards_path, method: 'patch', id: 'gift_card_form', class: 'inline-form' do
21
21
 
22
22
  .inline-form__cell
23
23
  .value
24
- = text_field_tag 'gift_card_number', step.gift_card.try(:number), class: 'text-box', autocomplete: 'off', title: t('workarea.storefront.gift_cards.gift_card_number'), placeholder: t('workarea.storefront.gift_cards.gift_card_number')
25
- - if step.gift_card && step.gift_card.errors[:number].present?
26
- %span.value__error= step.gift_card.errors[:number].first
24
+ = text_field_tag 'gift_card_number', step.failed_gift_card&.number, class: 'text-box', autocomplete: 'off', title: t('workarea.storefront.gift_cards.gift_card_number'), placeholder: t('workarea.storefront.gift_cards.gift_card_number')
25
+ - if step.failed_gift_card && step.failed_gift_card.errors[:number].present?
26
+ %span.value__error= step.failed_gift_card.errors[:number].first
27
27
  .inline-form__cell
28
28
  %p= button_tag t('workarea.storefront.gift_cards.apply_gift_card'), value: 'apply_gift_card', class: 'button button--large'
29
+
30
+ .applied-gift-cards
31
+ - step.gift_cards.each do |gift_card|
32
+ %p.applied-gift-card
33
+ %strong.applied-gift-card__number= gift_card.display_number
34
+ = link_to t('workarea.storefront.gift_cards.remove'), checkout_gift_cards_path(gift_card_id: gift_card.id), data: { method: :delete, confirm: t('workarea.storefront.gift_cards.remove_confirmation') }, class: 'applied-gift-card__remove-link'
35
+ %br
36
+ %span.applied-gift-card__applied= t('workarea.storefront.gift_cards.balance_applied_html', amount: number_to_currency(gift_card.amount), balance: number_to_currency(gift_card.balance))
@@ -8,6 +8,8 @@
8
8
  = render_content_blocks(@content.content_blocks_for('confirmation'))
9
9
 
10
10
  %p= t('workarea.storefront.checkouts.confirmation_text', email: @order.email)
11
+ = append_partials('storefront.checkout_confirmation_text')
12
+
11
13
 
12
14
  - if @order.user.present?
13
15
 
@@ -37,5 +39,5 @@
37
39
  %span.button-property__text= t('workarea.storefront.users.sign_up_for_email')
38
40
  %p= button_tag t('workarea.storefront.users.create_account'), value: 'sign_up', class: 'button button--solid button--large', data: { disable_with: loading_indicator(t('workarea.storefront.users.create_account_disabled_text')) }
39
41
 
40
- = render 'workarea/storefront/orders/summary', order: @order, recommendations: @order.recommendations, show_fulfillment: false
42
+ = render 'workarea/storefront/orders/summary', order: @order, recommendations: @order.recommendations
41
43
  = append_partials('storefront.checkout_confirmation')
@@ -10,6 +10,7 @@
10
10
  - else
11
11
  .grid
12
12
  - products.each do |product|
13
+ = render_schema_org(product_schema(product))
13
14
  .grid__cell.grid__cell--50.grid__cell--25-at-medium
14
- %div.product-summary.product-summary--small{ itemscope: true, itemtype: 'http://schema.org/Product' }
15
+ %div.product-summary.product-summary--small
15
16
  = render 'workarea/storefront/products/summary', product: product
@@ -5,6 +5,7 @@
5
5
  - if view_model.products.present?
6
6
  .grid
7
7
  - view_model.products.each do |product|
8
+ = render_schema_org(product_schema(product))
8
9
  .grid__cell.grid__cell--50.grid__cell--25-at-medium
9
- .product-summary.product-summary--small{ itemscope: true, itemtype: 'http://schema.org/Product' }
10
+ .product-summary.product-summary--small
10
11
  = render 'workarea/storefront/products/summary', product: product
@@ -5,6 +5,7 @@
5
5
  - if products.present?
6
6
  .grid{ data: { analytics: product_list_analytics_data("Custom product list").to_json } }
7
7
  - products.each do |product|
8
+ = render_schema_org(product_schema(product))
8
9
  .grid__cell.grid__cell--50.grid__cell--25-at-medium
9
- %div.product-summary.product-summary--small{ itemscope: true, itemtype: 'http://schema.org/Product' }
10
+ %div.product-summary.product-summary--small
10
11
  = render 'workarea/storefront/products/summary', product: product
@@ -5,10 +5,11 @@
5
5
 
6
6
  %ul.mobile-nav__menu{ role: 'navigation' }
7
7
  - @menus.each do |menu|
8
+ - styles = link_selected?(menu.taxon) ? 'mobile-nav__link mobile-nav__link--selected' : 'mobile-nav__link'
8
9
  %li.mobile-nav__item{ class: ('mobile-nav__item--has-children' if menu.content_blocks.present?)}
9
10
  - if menu.content_blocks.present?
10
- = link_to menu.name, menu_path(menu, return_to: mobile_nav_return_path, mobile_nav: true), class: 'mobile-nav__link'
11
+ = link_to menu.name, menu_path(menu, return_to: mobile_nav_return_path, mobile_nav: true), class: styles
11
12
  - elsif menu.taxon.present?
12
- = link_to menu.taxon.name, storefront_path_for(menu.taxon), class: 'mobile-nav__link'
13
+ = link_to menu.taxon.name, storefront_path_for(menu.taxon), class: styles
13
14
  - else
14
- %span.mobile-nav__link= menu.name
15
+ %span{ class: styles }= menu.name
@@ -48,8 +48,11 @@
48
48
  %li
49
49
  %p
50
50
  = link_to item.product_name, product_path(item.product, sku: item.sku)
51
+ - if item.quantity > 1
52
+ %br
53
+ %strong #{t('workarea.storefront.orders.quantity')}: #{item.quantity}
51
54
  %br
52
- %strong #{item.quantity} @ #{number_to_currency(item.original_price)} #{t('workarea.storefront.orders.each')}
55
+ %strong= number_to_currency(item.total_price)
53
56
  %br
54
57
  = item.sku
55
58
  %br
@@ -59,6 +62,8 @@
59
62
  %br
60
63
  - item.customizations.each do |name, value|
61
64
  #{name.titleize}: #{value}
65
+ - if item.token&.enabled?
66
+ = link_to t('workarea.storefront.orders.download'), download_path(item.token)
62
67
  %br
63
68
  = append_partials('storefront.order_summary_item_details', item: item)
64
69
 
@@ -257,7 +262,7 @@
257
262
  .grid
258
263
  - recommendations.each do |product|
259
264
  .grid__cell.grid__cell--50.grid__cell--25-at-medium
260
- .product-summary.product-summary--small{ itemscope: true, itemtype: 'http://schema.org/Product' }
265
+ .product-summary.product-summary--small
261
266
  = render 'workarea/storefront/products/summary', product: product
262
267
 
263
268
  %ul.order-help-menu
@@ -7,8 +7,8 @@
7
7
  = link_to product_image_url(image, :zoom), class: button_class, target: '_blank', rel: 'noopener', data: { alternate_image_button: { src: product_image_url(image, :detail) }.to_json } do
8
8
  %picture
9
9
  %source{ srcset: product_image_url(image, :small_thumb), product_image_url(image, :small_thumb) => '1x', media: "(min-width: #{Workarea.config.storefront_break_points[:medium]}px)" }
10
- = image_tag(product_image_url(image, :detail), alt: t('workarea.storefront.products.zoom'), itemprop: 'image')
10
+ = image_tag(product_image_url(image, :detail), alt: t('workarea.storefront.products.zoom'))
11
11
 
12
12
  .product-media__primary-image
13
- = link_to(product_image_url(product.primary_image, :zoom), target: '_blank', rel: 'noopener', class: 'product-media__primary-image-link', data: { dialog_button: '' }) do
14
- = image_tag product_image_url(product.primary_image, :detail), alt: t('workarea.storefront.products.image_alt_attribute', name: product.name), itemprop: 'image', class: 'product-media__primary-image-link-image'
13
+ = link_to(product_image_url(product.primary_image, :zoom), target: '_blank', rel: 'noopener', class: 'product-media__primary-image-link', style: intrinsic_ratio_product_image_styles(product.primary_image), data: { dialog_button: '' }) do
14
+ = image_tag product_image_url(product.primary_image, :detail), alt: t('workarea.storefront.products.image_alt_attribute', name: product.name), class: 'product-media__primary-image-link-image'
@@ -1,4 +1,4 @@
1
- %p.rating{ title: "#{rating.round(2)} #{t('workarea.storefront.reviews.out_of')} #{t('workarea.storefront.reviews.stars', count: 5)}", itemprop: itemprop, itemscope: true, itemtype: itemtype }
1
+ %p.rating{ title: "#{rating.round(2)} #{t('workarea.storefront.reviews.out_of')} #{t('workarea.storefront.reviews.stars', count: 5)}" }
2
2
  - full_star_count.times do
3
3
  = inline_svg 'workarea/storefront/icons/star.svg', class: 'rating__star'
4
4
  - if half_star_size > 0
@@ -6,5 +6,4 @@
6
6
  - empty_star_count.times do
7
7
  = inline_svg 'workarea/storefront/icons/empty_star.svg', class: 'rating__star'
8
8
  %span.rating__text.visually-hidden
9
- %meta{ itemprop: 'ratingValue', content: rating.round(2) }
10
9
  #{rating.round(2)} #{t('workarea.storefront.reviews.out_of')} #{t('workarea.storefront.reviews.stars', count: 5)}
@@ -9,14 +9,14 @@
9
9
 
10
10
  %ol.reviews__review-group
11
11
  - product.reviews.each do |review|
12
- %li.reviews__review{ itemprop: 'review', itemscope: true, itemtype: 'http://schema.org/Review', data: { product_review_section_entry: { rating: review.rating.to_f, createdAt: review.created_at.to_i }.to_json } }
12
+ %li.reviews__review{ data: { product_review_section_entry: { rating: review.rating.to_f, createdAt: review.created_at.to_i }.to_json } }
13
13
  = rating_stars(review.rating)
14
14
 
15
- %h3.reviews__review-title{ itemprop: 'name' }= review.title
16
- %p.reviews__review-body{ itemprop: 'reviewBody' }= review.body
15
+ %h3.reviews__review-title= review.title
16
+ %p.reviews__review-body= review.body
17
17
  .reviews__review-meta
18
- %p.reviews__review-author{ itemprop: 'author', itemscope: true, itemtype: 'http://schema.org/Person' }
19
- %span{ itemprop: 'name' }= review.user_info
18
+ %p.reviews__review-author
19
+ %span= review.user_info
20
20
  - if review.verified?
21
21
  %p.reviews__review-verified= t('workarea.storefront.reviews.verified_purchaser')
22
22
  %p.reviews__review-date= local_time(review.created_at, format: :long, itemprop: 'datePublished')
@@ -1,5 +1,5 @@
1
1
  - if product.has_reviews?
2
- .reviews-aggregate{ itemprop: 'aggregateRating', itemscope: true, itemtype: 'http://schema.org/AggregateRating' }
2
+ .reviews-aggregate
3
3
  = link_to "#{product_path(product, product.browse_link_options)}#reviews", data: { scroll_to_button: '' }, class: 'reviews-aggregate__rating-link' do
4
4
  = rating_stars(product.average_rating, aggregate: true)
5
5
 
@@ -7,7 +7,7 @@
7
7
  %span.reviews-aggregate__count
8
8
  %span.reviews-aggregate__read= t('workarea.storefront.reviews.read_reviews')
9
9
  = surround '(', ')' do
10
- %span{ itemprop: 'reviewCount' }= product.total_reviews
10
+ %span= product.total_reviews
11
11
 
12
12
  = link_to t('workarea.storefront.reviews.write_a_review'), new_product_review_path(product), class: 'reviews-aggregate__write-action', data: { dialog_button: '' }
13
13
  - if display_purchase_requirement_message
@@ -19,8 +19,11 @@
19
19
  %meta{ property: 'og:description', content: strip_tags(@product.meta_description) }
20
20
 
21
21
  - cache "#{@product.cache_key}/show", expires_in: Workarea.config.cache_expirations.product_show_fragment_cache do
22
+
23
+ = render_schema_org(product_schema(@product, related_products: @product.recommendations))
24
+
22
25
  .view
23
- .product-detail-container{ itemscope: true, itemtype: 'http://schema.org/Product', data: { analytics: product_view_analytics_data(@product).to_json } }
26
+ .product-detail-container{ data: { analytics: product_view_analytics_data(@product).to_json } }
24
27
 
25
28
  .product-details{ class: "product-details--#{@product.template}" }
26
29
  = render "workarea/storefront/products/templates/#{@product.template}", product: @product
@@ -28,7 +31,7 @@
28
31
  - if @product.description.present?
29
32
  .product-detail-container__description#description
30
33
  %h2.product-detail-container__description-heading= t('workarea.storefront.products.description')
31
- .product-detail-container__description-body{ itemprop: 'description' }!= @product.description
34
+ .product-detail-container__description-body!= @product.description
32
35
 
33
36
  = append_partials('storefront.product_description', product: @product)
34
37
 
@@ -39,7 +42,7 @@
39
42
  .grid{ data: { analytics: product_list_analytics_data('Product Recommendations').to_json } }
40
43
  - @product.recommendations.each do |product|
41
44
  .grid__cell.grid__cell--50.grid__cell--25-at-medium
42
- .product-summary.product-summary--small{ itemprop: 'isRelatedTo', itemscope: true, itemtype: 'http://schema.org/Product' }
45
+ .product-summary.product-summary--small
43
46
  = render 'workarea/storefront/products/summary', product: product
44
47
 
45
48
  = append_partials('storefront.product_show', product: @product)
@@ -5,9 +5,9 @@
5
5
  .grid__cell.grid__cell--40-at-medium
6
6
  .product-details__info
7
7
  .product-details__name
8
- %h1.product-details__heading{ itemprop: 'name' }= product.name
8
+ %h1.product-details__heading= product.name
9
9
 
10
- .product-prices.product-prices--details{ itemprop: 'offers', itemscope: true, itemtype: 'http://schema.org/Offer' }
10
+ .product-prices.product-prices--details
11
11
  = render 'workarea/storefront/products/pricing', product: product
12
12
 
13
13
  - if product.description.present?
@@ -15,7 +15,7 @@
15
15
  %p= truncated_product_description(product, t('workarea.storefront.products.read_more'))
16
16
 
17
17
  %p.product-details__id
18
- %span{ itemprop: 'productID' }= product.id
18
+ %span= product.id
19
19
 
20
20
  = form_tag cart_items_path, method: 'post', class: 'product-details__add-to-cart-form', data: { dialog_form: { dialogOptions: { closeAll: true, initModules: true } }, analytics: add_to_cart_analytics_data(product).to_json } do
21
21
  = hidden_field_tag :product_id, product.id, id: dom_id(product, 'product_id')
@@ -51,4 +51,4 @@
51
51
 
52
52
  = append_partials('storefront.product_details', product: product)
53
53
 
54
- %p.product-details__full-details=link_to t('workarea.storefront.products.view_full_details'), product_path(product, color: params[:color]), class: 'text-button', itemprop: 'url'
54
+ %p.product-details__full-details=link_to t('workarea.storefront.products.view_full_details'), product_path(product, color: params[:color]), class: 'text-button'
@@ -5,9 +5,9 @@
5
5
  .grid__cell.grid__cell--40-at-medium
6
6
  .product-details__info
7
7
  .product-details__name
8
- %h1.product-details__heading{ itemprop: 'name' }= product.name
8
+ %h1.product-details__heading= product.name
9
9
 
10
- .product-prices.product-prices--details{ itemprop: 'offers', itemscope: true, itemtype: 'http://schema.org/Offer' }
10
+ .product-prices.product-prices--details
11
11
  = render 'workarea/storefront/products/pricing', product: product
12
12
 
13
13
  - if product.description.present?
@@ -15,7 +15,7 @@
15
15
  %p= truncated_product_description(product, t('workarea.storefront.products.read_more'))
16
16
 
17
17
  %p.product-details__id
18
- %span{ itemprop: 'productID' }= product.id
18
+ %span= product.id
19
19
 
20
20
  = form_tag cart_items_path, method: 'post', class: 'product-details__add-to-cart-form', data: { dialog_form: { dialogOptions: { closeAll: true, initModules: true } }, analytics: add_to_cart_analytics_data(product).to_json } do
21
21
  = hidden_field_tag :product_id, product.id, id: dom_id(product, 'product_id')
@@ -64,4 +64,4 @@
64
64
 
65
65
  = append_partials('storefront.product_details', product: product)
66
66
 
67
- %p.product-details__full-details=link_to t('workarea.storefront.products.view_full_details'), product_path(product, color: params[:color]), class: 'text-button', itemprop: 'url'
67
+ %p.product-details__full-details=link_to t('workarea.storefront.products.view_full_details'), product_path(product, color: params[:color]), class: 'text-button'
@@ -5,9 +5,9 @@
5
5
  .grid__cell.grid__cell--40-at-medium
6
6
  .product-details__info
7
7
  .product-details__name
8
- %h1.product-details__heading{ itemprop: 'name' }= product.name
8
+ %h1.product-details__heading= product.name
9
9
 
10
- .product-prices.product-prices--details{ itemprop: 'offers', itemscope: true, itemtype: 'http://schema.org/Offer' }
10
+ .product-prices.product-prices--details
11
11
  = render 'workarea/storefront/products/pricing', product: product
12
12
 
13
13
  - if product.description.present?
@@ -15,7 +15,7 @@
15
15
  %p= truncated_product_description(product, t('workarea.storefront.products.read_more'))
16
16
 
17
17
  %p.product-details__id
18
- %span{ itemprop: 'productID' }= product.id
18
+ %span= product.id
19
19
 
20
20
  = form_tag cart_items_path, method: 'post', class: 'product-details__add-to-cart-form', data: { dialog_form: { dialogOptions: { closeAll: true, initModules: true } }, analytics: add_to_cart_analytics_data(product).to_json } do
21
21
  = hidden_field_tag :product_id, product.id, id: dom_id(product, 'product_id')
@@ -54,4 +54,4 @@
54
54
 
55
55
  = append_partials('storefront.product_details', product: product)
56
56
 
57
- %p.product-details__full-details=link_to t('workarea.storefront.products.view_full_details'), product_path(product, color: params[:color]), class: 'text-button', itemprop: 'url'
57
+ %p.product-details__full-details=link_to t('workarea.storefront.products.view_full_details'), product_path(product, color: params[:color]), class: 'text-button'
@@ -5,9 +5,9 @@
5
5
  .grid__cell.grid__cell--40-at-medium
6
6
  .product-details__info
7
7
  .product-details__name
8
- %h1.product-details__heading{ itemprop: 'name' }= product.name
8
+ %h1.product-details__heading= product.name
9
9
 
10
- .product-prices.product-prices--details{ itemprop: 'offers', itemscope: true, itemtype: 'http://schema.org/Offer' }
10
+ .product-prices.product-prices--details
11
11
  = render 'workarea/storefront/products/pricing', product: product
12
12
 
13
13
  - if product.description.present?
@@ -15,7 +15,7 @@
15
15
  %p= truncated_product_description(product, t('workarea.storefront.products.read_more'))
16
16
 
17
17
  %p.product-details__id
18
- %span{ itemprop: 'productID' }= product.id
18
+ %span= product.id
19
19
 
20
20
  = form_tag cart_items_path, method: 'post', class: 'product-details__add-to-cart-form', data: { dialog_form: { dialogOptions: { closeAll: true, initModules: true } }, analytics: add_to_cart_analytics_data(product).to_json } do
21
21
  = hidden_field_tag :product_id, product.id, id: dom_id(product, 'product_id')
@@ -59,4 +59,4 @@
59
59
 
60
60
  = append_partials('storefront.product_details', product: product)
61
61
 
62
- %p.product-details__full-details=link_to t('workarea.storefront.products.view_full_details'), product_path(product, color: params[:color]), class: 'text-button', itemprop: 'url'
62
+ %p.product-details__full-details=link_to t('workarea.storefront.products.view_full_details'), product_path(product, color: params[:color]), class: 'text-button'
@@ -5,9 +5,9 @@
5
5
  .grid__cell.grid__cell--40-at-medium
6
6
  .product-details__info
7
7
  .product-details__name
8
- %h1.product-details__heading{ itemprop: 'name' }= product.name
8
+ %h1.product-details__heading= product.name
9
9
 
10
- .product-prices.product-prices--details{ itemprop: 'offers', itemscope: true, itemtype: 'http://schema.org/Offer' }
10
+ .product-prices.product-prices--details
11
11
  = render 'workarea/storefront/products/pricing', product: product
12
12
 
13
13
  - if product.description.present?
@@ -15,7 +15,7 @@
15
15
  %p= truncated_product_description(product, t('workarea.storefront.products.read_more'))
16
16
 
17
17
  %p.product-details__id
18
- %span{ itemprop: 'productID' }= product.id
18
+ %span= product.id
19
19
 
20
20
  = form_tag cart_items_path, method: 'post', class: 'product-details__add-to-cart-form', data: { dialog_form: { dialogOptions: { closeAll: true, initModules: true } }, analytics: add_to_cart_analytics_data(product).to_json } do
21
21
  = hidden_field_tag :product_id, product.id, id: dom_id(product, 'product_id')
@@ -63,4 +63,4 @@
63
63
 
64
64
  = append_partials('storefront.product_details', product: product)
65
65
 
66
- %p.product-details__full-details=link_to t('workarea.storefront.products.view_full_details'), product_path(product, color: params[:color]), class: 'text-button', itemprop: 'url'
66
+ %p.product-details__full-details=link_to t('workarea.storefront.products.view_full_details'), product_path(product, color: params[:color]), class: 'text-button'
@@ -1,4 +1,4 @@
1
- - if @recent_views.products.any? || @recent_views.categories.any? || @recent_views.searches.any?
1
+ - if @recent_views.products.any? || @recent_views.categories.any?
2
2
  .recent-views
3
3
 
4
4
  - if @recent_views.products.any?
@@ -6,8 +6,9 @@
6
6
  %h2.recent-views__heading= t('workarea.storefront.recommendations.recent_products')
7
7
  .grid
8
8
  - @recent_views.products.each do |product|
9
+ = render_schema_org(product_schema(product))
9
10
  .grid__cell.grid__cell--50.grid__cell--25-at-medium
10
- .product-summary.product-summary--small{ itemscope: true, itemtype: 'http://schema.org/Product' }
11
+ .product-summary.product-summary--small
11
12
  = render 'workarea/storefront/products/summary', product: product
12
13
 
13
14
  - if @recent_views.categories.any?
@@ -17,11 +18,3 @@
17
18
  - @recent_views.categories.each do |category|
18
19
  %li.recent-views__item
19
20
  = link_to category.name, category_path(category), class: 'recent-views__link'
20
-
21
- - if @recent_views.searches.any?
22
- .recent-views__section.recent-views__section--searches
23
- %h2.recent-views__heading= t('workarea.storefront.recommendations.recent_searches')
24
- %ul.recent-views__list
25
- - @recent_views.searches.each do |search|
26
- %li.recent-views__item
27
- = link_to search, search_path(q: search), class: 'recent-views__link'