Sha256: 5f6fb05616322556afb6bed8ef7d76edb4b0f490986afe9de185d4c08383711c
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
module Harpiya module StructuredDataHelper def products_structured_data(products) content_tag :script, type: 'application/ld+json' do raw( products.map do |product| structured_product_hash(product) end.to_json ) end end private def structured_product_hash(product) Rails.cache.fetch(common_product_cache_keys + ["harpiya/structured-data/#{product.cache_key_with_version}"]) do { '@context': 'https://schema.org/', '@type': 'Product', '@id': "#{harpiya.root_url}product_#{product.id}", url: harpiya.product_url(product), name: product.name, image: structured_images(product), description: product.description, sku: structured_sku(product), offers: { '@type': 'Offer', price: product.default_variant.price_in(current_currency).amount, priceCurrency: current_currency, availability: product.in_stock? ? 'InStock' : 'OutOfStock', url: harpiya.product_url(product), availabilityEnds: product.discontinue_on ? product.discontinue_on.strftime('%F') : '' } } end end def structured_sku(product) product.default_variant.sku? ? product.default_variant.sku : product.sku end def structured_images(product) image = default_image_for_product_or_variant(product) return '' unless image main_app.rails_blob_url(image.attachment) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
harpiya_frontend-4.3.0.alpha | app/helpers/harpiya/structured_data_helper.rb |