Class: Locomotive::Ecommerce::EcommerceDrop
- Inherits:
-
Liquid::Drop
- Object
- Liquid::Drop
- Locomotive::Ecommerce::EcommerceDrop
- Defined in:
- lib/locomotive/ecommerce/plugin/ecommerce_drop.rb
Instance Method Summary collapse
- #cart ⇒ Object
-
#initialize(source) ⇒ EcommerceDrop
constructor
A new instance of EcommerceDrop.
- #products ⇒ Object
- #purchase ⇒ Object
- #purchases ⇒ Object
- #show_out_of_stock? ⇒ Boolean
Constructor Details
#initialize(source) ⇒ EcommerceDrop
Returns a new instance of EcommerceDrop.
4 5 6 7 8 9 10 11 12 13 |
# File 'lib/locomotive/ecommerce/plugin/ecommerce_drop.rb', line 4 def initialize(source) @source = source urls = ['cart_url', 'checkout_url', 'new_checkout_url', 'product_url', 'products_url', 'purchases_url'] urls.each do |name| self.class.send(:define_method, name) do source.mounted_rack_app.config_or_default(name) end end end |
Instance Method Details
#cart ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/locomotive/ecommerce/plugin/ecommerce_drop.rb', line 23 def cart unless @cart session = @context.registers[:controller].session site = Thread.current[:site] user_from_plugin = site.plugin_object_for_id('identity_plugin').js3_context['identity_plugin_users'] user = user_from_plugin.where(id: session[:user_id]).first id = user == nil ? nil : user.id @cart = Cart.find_or_create(id, session) end @cart end |
#products ⇒ Object
15 16 17 |
# File 'lib/locomotive/ecommerce/plugin/ecommerce_drop.rb', line 15 def products search_filter(source.inventory_items) end |
#purchase ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/locomotive/ecommerce/plugin/ecommerce_drop.rb', line 35 def purchase unless @purchase session = @context.registers[:controller].session site = Thread.current[:site] user_from_plugin = site.plugin_object_for_id('identity_plugin').js3_context['identity_plugin_users'] user = user_from_plugin.where(id: session[:user_id]).first puts "Count in Drop 1: #{Purchase.count}" @purchase = cart.purchase || Purchase.new cart.purchase = @purchase cart.save! @purchase.save! puts "Count in Drop 2: #{Purchase.count}" end @purchase end |
#purchases ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/locomotive/ecommerce/plugin/ecommerce_drop.rb', line 51 def purchases session = @context.registers[:controller].session site = Thread.current[:site] user_from_plugin = site.plugin_object_for_id('identity_plugin').js3_context['identity_plugin_users'] user = user_from_plugin.where(id: session[:user_id]).first Purchase.where(user_id: user.id).all.to_a end |
#show_out_of_stock? ⇒ Boolean
19 20 21 |
# File 'lib/locomotive/ecommerce/plugin/ecommerce_drop.rb', line 19 def show_out_of_stock? !!Engine.config_or_default('with_quantity') end |