diff --git a/app/controllers/spree/checkout_controller_decorator.rb b/app/controllers/spree/checkout_controller_decorator.rb index fea9b84e..01e8a1fc 100644 --- a/app/controllers/spree/checkout_controller_decorator.rb +++ b/app/controllers/spree/checkout_controller_decorator.rb @@ -21,5 +21,5 @@ def before_payment end end -Spree::CheckoutController.prepend Spree::CheckoutControllerDecorator +Spree::CheckoutController.prepend Spree::CheckoutControllerDecorator if defined? Spree::Frontend diff --git a/app/models/spree/product_decorator.rb b/app/models/spree/product_decorator.rb index f8154bd2..0b09a635 100644 --- a/app/models/spree/product_decorator.rb +++ b/app/models/spree/product_decorator.rb @@ -6,10 +6,17 @@ def self.prepended(base) base.scope :individual_saled, -> { where(individual_sale: true) } - base.scope :search_can_be_part, ->(query){ not_deleted.available.joins(:master) - .where(arel_table["name"].matches("%#{query}%").or(Spree::Variant.arel_table["sku"].matches("%#{query}%"))) - .where(can_be_part: true) - .limit(30) + base.scope :search_can_be_part, ->(query){ + results = not_deleted.available.joins(:master) + + if defined?(SpreeGlobalize) + # FIXME add sku search when globalize + results = results.search_by_name(query) + else + results = results.where(arel_table["name"].matches("%#{query}%").or(Spree::Variant.arel_table["sku"].matches("%#{query}%"))) + end + + results = results.where(can_be_part: true).limit(30) } base.validate :assembly_cannot_be_part, if: :assembly?