Module: Spree::Core::ControllerHelpers::Store
- Extended by:
- ActiveSupport::Concern
- Included in:
- BaseController
- Defined in:
- lib/spree/core/controller_helpers/store.rb
Instance Method Summary collapse
- #available_menus ⇒ Object
-
#current_price_options ⇒ Object
Return a Hash of things that influence the prices displayed in your shop.
- #current_store ⇒ Object
- #ensure_current_store(object) ⇒ Object
- #store_locale ⇒ Object
Instance Method Details
#available_menus ⇒ Object
19 20 21 |
# File 'lib/spree/core/controller_helpers/store.rb', line 19 def @available_menus ||= current_store. end |
#current_price_options ⇒ Object
Return a Hash of things that influence the prices displayed in your shop.
By default, the only thing that influences prices that is the current order’s tax_zone
(to facilitate differing prices depending on VAT rate for digital products in Europe, see github.com/spree/spree/pull/6295 and github.com/spree/spree/pull/6662).
If your prices depend on something else, overwrite this method and add more key/value pairs to the Hash it returns.
Be careful though to also patch the following parts of Spree accordingly:
-
‘Spree::VatPriceCalculation#gross_amount`
-
‘Spree::LineItem#update_price`
-
‘Spree::Stock::Estimator#taxation_options_for`
-
Subclass the ‘DefaultTax` calculator
57 58 59 60 61 |
# File 'lib/spree/core/controller_helpers/store.rb', line 57 def { tax_zone: current_tax_zone } end |
#current_store ⇒ Object
15 16 17 |
# File 'lib/spree/core/controller_helpers/store.rb', line 15 def current_store @current_store ||= current_store_finder.new(url: request.env['SERVER_NAME']).execute end |
#ensure_current_store(object) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/spree/core/controller_helpers/store.rb', line 27 def ensure_current_store(object) return if object.nil? if object.has_attribute?(:store_id) if object.store.present? && object.store != current_store raise Spree.t('errors.messages.store_is_already_set') else object.store = current_store end elsif object.class.method_defined?(:stores) && object.stores.exclude?(current_store) object.stores << current_store end end |
#store_locale ⇒ Object
23 24 25 |
# File 'lib/spree/core/controller_helpers/store.rb', line 23 def store_locale current_store.default_locale end |