Sha256: a7d39551fbacd01c8ad1d2ec533fd06bae48c1d9fc906390f129595578c13c8f

Contents?: true

Size: 1.55 KB

Versions: 22

Compression:

Stored size: 1.55 KB

Contents

# frozen_string_literal: true

# module Spree
#   Taxon.class_eval do
#     def products_by_zone(product_zone)
#       flow_experience_key = product_zone.flow_data&.[]('key')
#       sku_regex = product_zone.sku_regex
#
#       if flow_experience_key.present?
#         products_by_experience(product_zone, sku_regex)
#       else
#         products.joins(:master).where('spree_variants.sku ~ ?', sku_regex)
#       end
#     end
#
#     def products_by_experience(flow_experience_key, sku_regex)
#       # To make the following query return a distinct array of products, raw SQL had to be used:
#       # object.products.joins(:variants).where(
#       #   "spree_variants.meta -> 'flow_data' -> 'exp' ->> '#{flow_experience_key}' IS NOT NULL"
#       # )
#       query = <<~SQL
#           SELECT DISTINCT spree_products.* FROM spree_products
#             INNER JOIN spree_variants ON spree_variants.product_id = spree_products.id AND
#               spree_variants.is_master = 'f' AND spree_variants.deleted_at IS NULL AND
#               (spree_variants.sku ~ '#{sku_regex}')
#             INNER JOIN (
#               SELECT spree_products_taxons.*, spree_products_taxons.position as position from spree_products_taxons
#                 ORDER BY position ASC
#             ) I2 ON spree_products.id = I2.product_id
#               WHERE spree_products.deleted_at IS NULL AND I2.taxon_id = #{id} AND
#                 (spree_variants.meta -> 'flow_data' -> 'exp' ->> '#{flow_experience_key}' IS NOT NULL)
#       SQL
#
#       Spree::Product.find_by_sql(query)
#     end
#   end
# end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
flowcommerce_spree-0.0.22 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.21 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.20 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.19 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.18 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.17 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.16 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.15 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.14 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.13 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.12 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.11 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.10 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.9 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.8 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.7 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.6 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.5 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.4 app/models/spree/taxon_decorator.rb
flowcommerce_spree-0.0.3 app/models/spree/taxon_decorator.rb