🌐 言語: 🇻🇳 Tiếng Việt · 🇬🇧 English · 🇯🇵 日本語(現在)
GP247 の税金(Tax)
はじめに
このドキュメントでは、GP247(バージョン 2 以降)の 税金 機能の仕組みを説明し、ストアオーナーが自分のショップの税金を 設定する方法を案内します。技術に詳しくない方 向けです。読み終えると、税金の計算方法、税率を作成する場所、商品への 税金の割り当て方、そして税金がどのページに表示されるかがわかります。
1. GP247 の税金はどう動きますか?
押さえておきたい重要な点が 4 つあります。
- 税金は商品ごとに割り当てます。 商品ごとに別々の税率(例:8%、10%)を設定できます。先に「税率」を作成しておき、 商品に割り当てます。
- 表示価格は税抜き価格です(exclusive、外税)。税金は会計時に 上乗せ され、販売価格には含まれていません。 例:価格 100,000 の商品で税率 8% → お客様の支払いは 108,000 です。
- ショップ全体でオン/オフできます。 税金を完全にオフにすることも、全体に適用する 既定の 税率を設定することも できます。
- 1 つの商品に使える税率は 1 つだけです(複数の税金を重ねません)。GP247(v2)は商品ごとに税金を計算し、国/地域/ 配送先住所では計算 しません。
用語: 税率 は、名前(例:「VAT 8%」)と 値(パーセントの数値、例:
8)からなる 1 行です。税率は 1 回作成 すれば、多くの商品に割り当てられます。
各商品には、税金の選択肢が 3 つあります。
| 選択肢 | 意味 |
|---|---|
| 税金を使用しない(None) | この商品には税金がかかりません。 |
| 自動(Auto) | ショップの 既定の税率 をそのまま使います(下のステップ 2 で設定します)。 |
| 特定の税率 | この商品専用に選んだ税率を常に使います。 |
2. 税金の設定手順(順番に進めてください)
ステップ 1 — 税率を作成する
-
ショップの 管理画面(admin) にログインします。
-
管理画面のメニューで 税金(Tax) を開きます。
-
新規追加を押し、次を入力します。
- 名前(Name): わかりやすい名前。例:
VAT 8%または標準税率。 - 値(Value): パーセントの数値を入力します。例:
8(8% という意味)。8.5のような小数も入力できます。
- 名前(Name): わかりやすい名前。例:
-
保存します。
成功すると、新しい税率が税金の画面の右側の一覧に表示されます。
複数の税率(例:5%、8%、10%)を作成し、商品のグループごとに割り当てることができます。
ステップ 2 — ショップの既定の税率を設定する
- 管理画面のメニューで ショップ設定(Shop Configuration)を開きます。
- 税金の項目を探します(設定キーは
product_taxです)。 - 次のどれかを選びます。
- 特定の税率(例:「VAT 8%」)→ 自動(Auto) に設定した商品に適用される既定の税率になります。
- 使用しない(None) → ショップ全体で税金をオフ にします(Auto に設定した商品も含め、すべての商品が非課税になります)。
- 保存します。
これがいちばん重要なスイッチです:使用しない にすると、商品にどの税率を割り当てていても、ショップ全体で税金が かかりません。
ステップ 3 — 商品に税金を割り当てる
- 商品(Product) を開き、変更したい商品を開きます。
- 商品フォームの 税金(Tax) の選択欄を探し、次のどれかを選びます。
- 自動(Auto) — ステップ 2 の既定の税率を使います(ほとんどの商品におすすめです)。
- 使用しない(None) — この商品を非課税にします。
- 特定の税率 — この商品にはその税率を必ず使います。
- 商品を保存します。
ステップ 4 — ストアで確認する
-
変更した商品のページを お客様向けの画面(ストアフロント) で開きます。
-
カートに追加し、カート / 決済 ページに進みます。
-
合計金額の表にある 税金(Tax) の行を確認します。
正しければ、合計金額は 小計 + 税金 + 送料 − 割引 になります。
3. 税金はどこに表示されますか?
- 商品ページ(ストアフロント): 表示価格には税金が含まれています(税金が有効な場合)。
- カートと決済ページ: 合計金額の表に、独立した 税金 の行があります。
- お客様の注文(アカウント): 注文の合計部分に税金の行があります。
- 管理画面 — 注文詳細と請求書(invoice): 合計の表に税金の行があります。
4. 大切な注意点
- 税率を変えても、過去の注文は変わりません。 すでに確定した注文は記録された税額をそのまま保持します。変更が影響する のは 新しい 注文だけです。
- ショップ全体で税金をオフ にするいちばん早い方法は、
product_taxを 使用しない にすることです(ステップ 2)。商品を 1 つずつ直す必要はありません。 - 税額は商品の行ごとに小数点以下 2 桁に丸められます。 そのため、注文の税金合計は各行の合計と常に一致します。
5. 処理ロジックと税金の関数(開発者向け)
このセクションは 開発者 向けです。一般のユーザーは読み飛ばしてかまいません。
処理の流れ:作成 → 決定 → 計算 → 保存
税率の作成(管理画面) TaxManager → ShopTax (name + value%)
│
商品の税金を決定 config product_tax → ShopTax::checkStatus() (オン/オフ + 既定の税率)
│ product.tax_id (none|auto|<id>) → getTaxId() → getTaxValue() = %
▼
計算(行単位、ヘルパー 1 つ) gp247_line_tax(price+option, qty, rate) = round(...×rate/100, 2)
│
├─ カート ShopCurrency::sumCartCheckout() → subTotal, subTotalWithTax
├─ 注文の合計 ShopOrderTotal::processDataTotal() → 行 code='tax' = subTotalWithTax − subTotal
├─ 注文の保存 (SF) ShopOrder::createOrder() → shop_order_detail.tax per-line + shop_order.tax
└─ 注文の編集 (管理画面) AdminOrder::updateSubTotal() → shop_order.tax = Σ detail.tax
税金を処理する関数 / メソッド
税率の作成と管理
TaxManager(Livewire)— 税率の CRUD 画面です。value: numeric|min:0を検証し、ShopTaxに書き込みます。ShopTax— テーブルshop_taxのモデル(name、valueはdecimal(8,4)型、cast はfloat):getListAll()—none/autoを含む税率の一覧(ドロップダウン用)。getArrayId()/getArrayValue()— すばやく参照するためのid → value%のマップ。checkStatus()—gp247_config('product_tax')を読み込み、オフ/none/不正な場合は0を、それ以外は既定の税率のidを返します。
商品の税金の決定(ShopProduct)
getTaxId()— 税率のidを選びます:オフ →0、auto→checkStatus()、特定のid→ そのまま返します。getTaxValue()—getArrayValue()[$taxId]から%を返します。getFinalPriceTax()— 税込みの 1 単位 の価格(表示用)。
丸めの計算式(共通ヘルパー) — Library/Helpers/cart_store.php
gp247_line_tax($unitPriceWithOption, $qty, $rate)— 行ごと(line-level)に丸めます。計算式の 唯一の標準の情報源 です。gp247_tax_price($price, $tax)— 税込みの 1 単位の価格 =round(price×(100+tax)/100, 2)(表示専用)。
計算と集計
ShopCurrency::sumCartCheckout()— カートを走査し、subTotal(税抜き)とsubTotalWithTax(各行のgp247_line_taxを加算済み)を返します。ShopOrderTotal::processDataTotal()— 合計の行を組み立てます。tax = subTotalWithTax − subTotal。ShopOrderTotal::sumValueTotal($code, $dataTotal)— 合計の 1 行の値を取得します(例:'tax')。
注文への書き込み
ShopOrder::createOrder()—gp247_line_taxを使い、shop_order_detail.taxを 行ごとに 書き込みます(ストアフロントを含む、すべての注文作成経路に適用されます)。AdminOrder::updateSubTotal()— 管理画面で注文明細を追加/編集したとき、shop_order.tax = Σ detail.taxを再計算します。
設定
gp247_config('product_tax')— オン/オフのスイッチ + 既定の税率(グループgp247_cart)。ショップ設定の画面で変更します。
不変条件(invariant)
新しい注文では、次が成り立ちます。
shop_order.tax == Σ shop_order_detail.tax == (subTotalWithTax − subTotal)
よくある質問(Q&A)
Q1: ショップ全体で税金をオフにしたい場合は?
→ ショップ設定で product_tax を 使用しない(None) にします。商品を 1 つずつ直さなくても、ショップ全体ですぐに
税金がかからなくなります。
Q2: 商品の税金欄の「自動(Auto)」とはどういう意味ですか?
→ その商品がショップの 既定の税率(ステップ 2 で選んだ税率)を使うという意味です。既定の税率を変えると、Auto に設定した すべての商品が自動でそれに従います。
Q3: 商品に入力する価格には、税金が含まれていますか?
→ 含まれていません。GP247 は 上乗せ(exclusive、外税)方式で税金を計算します。入力する価格は 税抜き 価格で、税金は 会計時に加算されます。
Q4: 税率が 8.5%(小数)の場合も入力できますか?
→ できます。値 の欄には小数も入力できます。8.5% なら 8.5 と入力します。
Q5: 1 つの商品に複数の税金を同時に割り当てられますか?
→ できません。1 つの商品に使える税率は 1 つ だけです。
Q6: GP247 は、お客様の国や地域によって税金を変えて計算しますか?
→ しません。v2 では、税金は 商品ごと に計算し、配送先住所や国では計算しません。
Q7: 税率を変えると、過去の注文は再計算されますか?
→ されません。過去の注文は注文時の税額をそのまま保持します。変更は新しい注文だけに適用されます。
Q8: 商品を「使用しない(None)」にしていて、ショップには既定の税率がある場合は?
→ None に設定した商品には、ショップに既定の税率があっても税金は かかりません。
Q9: 税率を作成したのに、どの商品にも適用されていません。
→ 新しく作成した税率は、商品に自動では 適用されません。既定の税率にする(ステップ 2)か、商品に直接割り当てる (ステップ 3)必要があります。
Q10: 注文の税金合計は、各商品の行と一致しますか?
→ 一致します。税金は 行ごと に計算して丸めるので、注文の税金合計は常に各行の税額の合計と等しくなります。
📅 最終更新: 2026-10-22 · ✍️ 作成者 (Author): GP247