商品セット割引計算ツール:価格と節約額
セット割引は単純に見えますが、複数の価格、小数、販促率を商品ページ、見積書、決済画面で一致させるには正確な計算が必要です。このツールは各商品の個別価格を合計し、その小計に一つの割引率を適用して、最終的なセット価格と節約額を表示します。販売担当者、店舗運営者、開発者は、表計算や暗算に頼らず、すばやく再現可能な結果を得られます。同じ入力からは常に同じ結果が返るため、手作業の商品企画にもEC業務の自動化にも安心してお使いいただけます。
無料で実行
セットに含まれる価格をご入力ください
まず、セットに含める各商品の通常販売価格を一覧でご入力ください。キャンペーンを適用する前に、お客様が各商品を別々に購入した場合の価格を使用します。入力値の合計が小計となり、割引後価格と表示する節約額の基準になります。同じ商品を複数個含める場合は、個数分の価格を別々に入力してください。入力件数は結果の商品数にも反映されます。小数および本当に無料の構成品に対するゼロ価格は使用できますが、負数、欠損値、通貨記号を含む文字列は使用できません。すべての金額は同じ通貨にそろえてください。このツールは通貨換算や税込・税抜の判定を行いません。異なる通貨や税条件の価格を混在させると、計算自体は可能でも商取引上は誤解を招く結果になります。統一された価格一覧を使うことで、カタログ企画、販促の確認、決済結果の検証に活用できます。
割引率を適用して結果をご確認ください
セット全体に適用する割引率を、ゼロから百までの範囲で入力します。最初に個別価格を合計し、次に小計へ割引率を掛けて節約額を求めます。その節約額を小計から差し引いた値がセット価格です。たとえば二十パーセント割引では、お客様は合計価格の八十パーセントを支払います。二十通貨単位を差し引くという意味ではありません。結果には、小計、入力した割引率、節約額、最終価格、価格の入力件数が含まれます。金額は読みやすく安定した結果にするため、小数点以下二桁に丸められます。割引率がゼロならセット価格は小計と同じになり、百なら無料になります。百を超える値は価格が負になるため受け付けません。負の割引率も値上げを意味し、この計算の目的と異なるため無効です。
価格判断と自動処理にご活用ください
キャンペーンを公開する前に、算出したセット価格を原価、目標利益率、既存の販促と比較してください。節約額は「15.00お得」のような案内に使え、小計は透明性のある比較価格になります。販売担当者は複数の割引率を試せます。開発者はAPIを利用し、商品ページと決済処理が同じ計算を行っているか確認できます。APIの各リクエストは$0.002で、ブラウザー版は対話的な確認にご利用いただけます。このツールが扱うのは、個別価格の合計に対する割合割引のみです。税金、送料、定額クーポン、段階割引、無料提供、通貨換算は追加しません。それらの商取引ルールは、適切な順序で別途適用してください。丸め方はEC基盤によって異なるため、セット全体で一度丸めるか、各明細を個別に丸めるかもご確認ください。このツールではセット単位の最終金額を丸めます。
活用例
季節限定セットを企画する
カタログ価格に割引率を適用し、販売価格と告知する節約額をすぐに確認できます。
店舗表示価格を検証する
想定される小計、節約額、最終価格を、商品ページや決済画面の表示と比較できます。
販売業務を自動化する
承認済みの企画をカタログや社内ツールへ送る前に、商品価格一覧から一貫したセット価格を生成できます。
よくある質問
セット価格はどのように計算されますか?
個別価格を合計し、小計に割引率を適用して、算出した節約額を小計から差し引きます。
割引率が100%を超えるとどうなりますか?
セット価格が負になるため、100%を超える割引率のリクエストは無効として拒否されます。
どの通貨でも利用できますか?
はい。すべての商品で同じ通貨をご使用ください。このツールは通貨換算を行いません。
税金と送料は含まれますか?
含まれません。用途に合う商品価格を入力し、税金、送料、クーポンなどは別途計算してください。
APIでの計算料金はいくらですか?
APIの各リクエストは$0.002です。このページのブラウザー版では無料で計算できます。
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
curl -X POST https://api.kit.forhosting.com/ecom/product-bundle-discount \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"item_prices":[19.99,12.5,7.51],"discount_percentage":20}'const res = await fetch("https://api.kit.forhosting.com/ecom/product-bundle-discount", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"item_prices": [
19.99,
12.5,
7.51
],
"discount_percentage": 20
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/ecom/product-bundle-discount",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"item_prices": [
19.99,
12.5,
7.51
],
"discount_percentage": 20
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/ecom/product-bundle-discount", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"item_prices":[19.99,12.5,7.51],"discount_percentage":20}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"item_prices":[19.99,12.5,7.51],"discount_percentage":20}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/ecom/product-bundle-discount", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)リクエスト例
{
"item_prices": [
19.99,
12.5,
7.51
],
"discount_percentage": 20
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "ecom.product_bundle_discount",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |