Module: Spree::Stores::Setup

Extended by:
ActiveSupport::Concern
Included in:
Spree::Store
Defined in:
app/models/concerns/spree/stores/setup.rb

Instance Method Summary collapse

Instance Method Details

#payment_method_setup?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'app/models/concerns/spree/stores/setup.rb', line 55

def payment_method_setup?
  payment_methods.active.where.not(type: Spree::PaymentMethod::StoreCredit.to_s).any?
end

#reload(options = nil) ⇒ Object

Drop the memoized checklist with the rest of the instance's state, so a mutate-then-rerender flow (e.g. a Turbo Stream update) can re-read completion within one request.



24
25
26
27
# File 'app/models/concerns/spree/stores/setup.rb', line 24

def reload(options = nil)
  @setup_tasks = nil
  super
end

#setup_completed?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'app/models/concerns/spree/stores/setup.rb', line 45

def setup_completed?
  setup_tasks_done == setup_tasks_total
end

#setup_percentageObject



49
50
51
52
53
# File 'app/models/concerns/spree/stores/setup.rb', line 49

def setup_percentage
  return 0 if setup_tasks_total.zero?

  (setup_tasks_done / setup_tasks_total.to_f * 100).to_i
end

#setup_task_done?(task) ⇒ Boolean

Returns:

  • (Boolean)


29
30
31
# File 'app/models/concerns/spree/stores/setup.rb', line 29

def setup_task_done?(task)
  setup_tasks.find { |t| t.name == task.to_s }&.done
end

#setup_tasksArray<Spree::SetupTask>

The evaluated Getting Started checklist for this store, in display order — what the Admin API serializes and every other setup method derives from. Memoized per instance: the dashboard evaluates the checklist several times per render (sidebar badge, progress bar, task list) and each done-check costs a query.

Returns:



13
14
15
16
17
18
19
# File 'app/models/concerns/spree/stores/setup.rb', line 13

def setup_tasks
  return [] if deleted?

  @setup_tasks ||= Spree.store_setup_tasks.for(self).map do |definition|
    Spree::SetupTask.new(name: definition.key.to_s, done: definition.done?(self))
  end
end

#setup_tasks_doneObject



41
42
43
# File 'app/models/concerns/spree/stores/setup.rb', line 41

def setup_tasks_done
  setup_tasks.count(&:done)
end

#setup_tasks_listObject



33
34
35
# File 'app/models/concerns/spree/stores/setup.rb', line 33

def setup_tasks_list
  setup_tasks.map { |task| task.name.to_sym }
end

#setup_tasks_totalObject



37
38
39
# File 'app/models/concerns/spree/stores/setup.rb', line 37

def setup_tasks_total
  setup_tasks.size
end

#storefront_setup?Boolean

A storefront counts as set up once the merchant has saved the storefront URL (entered manually or backfilled by the Vercel callback).

Returns:

  • (Boolean)


61
62
63
# File 'app/models/concerns/spree/stores/setup.rb', line 61

def storefront_setup?
  preferred_storefront_url.present?
end