Class: BaSpree::SetupService

Inherits:
Object
  • Object
show all
Defined in:
app/services/ba_spree/setup_service.rb

Overview

Spree のストアを日本仕様に初期設定する。

扱うのは「日本で EC を始めるなら誰でも必要になる設定」だけで、 ストア名・URL・メールアドレスといった各ショップ固有の情報には触れない。 それらは呼び出し側が設定する。

Defined Under Namespace

Classes: CountryNotFoundError

Constant Summary collapse

COUNTRY_NOT_FOUND_MESSAGE =
"日本 (iso: JP) が spree_countries に見つかりません。先に `rails db:seed` を実行してください。".freeze
PREFECTURES =
[
  "北海道", "青森県", "岩手県", "宮城県", "秋田県", "山形県", "福島県", "茨城県", "栃木県", "群馬県",
  "埼玉県", "千葉県", "東京都", "神奈川県", "新潟県", "富山県", "石川県", "福井県", "山梨県",
  "長野県", "岐阜県", "静岡県", "愛知県", "三重県", "滋賀県", "京都府", "大阪府", "兵庫県",
  "奈良県", "和歌山県", "鳥取県", "島根県", "岡山県", "広島県", "山口県", "徳島県", "香川県",
  "愛媛県", "高知県", "福岡県", "佐賀県", "長崎県", "熊本県", "大分県", "宮崎県", "鹿児島県", "沖縄県"
].freeze
FOREIGN_ZONE_NAMES =

Spree::Seeds::Zones が作る海外向けゾーン全7種。日本国内向けストアでは不要なので削除する。

See Also:

  • BaSpree::SetupService.spree_core-5spree_core-5.3spree_core-5.3.6/app/services/spree/seeds/zonesspree_core-5.3.6/app/services/spree/seeds/zones.rb
[
  "EU_VAT", "UK_VAT", "North America", "South America",
  "Middle East", "Asia", "Australia and Oceania"
].freeze
STANDARD_TAX_CODE =

標準税率。配送料の税区分にも使う

"consumption10".freeze
TAX_RATES =
[
  { amount: 0.1, name: "消費税10%", code: STANDARD_TAX_CODE },
  # 軽減税率 (飲食料品・定期購読の新聞)
  { amount: 0.08, name: "消費税8%", code: "consumption8" },
  { amount: 0, name: "消費税非課税", code: "consumption0" }
].freeze
ZONE_NAME =
"日本".freeze
SHIPPING_METHOD_CODE =
"fixed".freeze
SHIPPING_RATE =
500
SAGAWA_TRACKING_URL =
"https://k2k.sagawa-exp.co.jp/p/web/okurijosearch.do?okurijoNo=:tracking".freeze

Class Method Summary collapse

Class Method Details

.setup(store:, load_seed: true) ⇒ Object

Parameters:

  • store (Spree::Store)

    日本仕様に設定するストア

  • load_seed (Boolean) (defaults to: true)

    Spree の seed (国マスタ等) を先に流すか



49
50
51
52
53
54
55
56
57
58
# File 'app/services/ba_spree/setup_service.rb', line 49

def setup(store:, load_seed: true)
  Spree::Core::Engine.load_seed if load_seed

  japan = setup_country
  zone = setup_zone(japan)
  setup_tax_rates(zone)
  setup_store(store, japan, zone)
  setup_shipping_method(zone)
  store
end