配送料を使用すると、通常配送、エクスプレス配送、翌日配送など、さまざまな配送オプションを表示して、配達日の目安をより正確に提示できます。さまざまな Stripe プロダクトを使用して配送料を顧客に請求します。配送料を作成する前に、請求先住所と配送先住所を収集する方法を確認してください。
注
配送料は、注文全体に対する一定額のみ設定できます。注文の品目数に応じて配送料を調整することはできません。
注
配送料は、注文全体に対する一定額のみ設定できます。注文の品目数に応じて配送料を調整することはできません。
ダッシュボードを使用して配送料を追加するには、次の操作を実行します。
- 配送料を作成をクリックします。
- 金額、説明と、必要に応じて配達予定日を入力します。
- 保存をクリックし、配送料 ID (
shr_123456
) をコピーします。

配送料の詳細を入力する
配送料を含む Checkout セッションを作成するには、生成された配送料 ID を shipping_options パラメーターに渡します。Checkout セッションと同時に配送料を作成する場合は、shipping_rate_data
パラメーターと shipping_options
を使用します。配送オプションに対応しているのは、支払いモードの Checkout セッションのみです。
次のコードサンプルでは、Checkout セッションに 2 つの配送オプションを追加します。
- 送料無料、5 ~ 7 営業日での配達予定。
- 料金 15.00 USD の航空便での翌日配達、1 営業日での配達予定。
curl https://api.stripe.com/v1/checkout/sessions \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2
:" \
-d billing_address_collection=required \
-d "shipping_address_collection[allowed_countries][0]"=US \
-d "shipping_address_collection[allowed_countries][1]"=CA \
-d "shipping_options[0][shipping_rate_data][type]"=fixed_amount \
-d "shipping_options[0][shipping_rate_data][fixed_amount][amount]"=0 \
-d "shipping_options[0][shipping_rate_data][fixed_amount][currency]"=usd \
-d "shipping_options[0][shipping_rate_data][display_name]"="Free shipping" \
-d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][unit]"=business_day \
-d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][value]"=5 \
-d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][unit]"=business_day \
-d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][value]"=7 \
-d "shipping_options[1][shipping_rate_data][type]"=fixed_amount \
-d "shipping_options[1][shipping_rate_data][fixed_amount][amount]"=1500 \
-d "shipping_options[1][shipping_rate_data][fixed_amount][currency]"=usd \
-d "shipping_options[1][shipping_rate_data][display_name]"="Next day air" \
-d "shipping_options[1][shipping_rate_data][delivery_estimate][minimum][unit]"=business_day \
-d "shipping_options[1][shipping_rate_data][delivery_estimate][minimum][value]"=1 \
-d "shipping_options[1][shipping_rate_data][delivery_estimate][maximum][unit]"=business_day \
-d "shipping_options[1][shipping_rate_data][delivery_estimate][maximum][value]"=1 \
-d "line_items[0][price_data][currency]"=usd \
-d "line_items[0][price_data][product_data][name]"=T-shirt \
-d "line_items[0][price_data][unit_amount]"=2000 \
-d "line_items[0][quantity]"=1 \
-d mode=payment \
-d ui_mode=custom \
--data-urlencode return_url="https://example.com/return"
クライアントで shippingOptions オブジェクトを使用して、ラジオボタンリストなどで使用可能な配送オプションを表示します。顧客が配送オプションを選択したら、配送オプションの ID を指定して updateShippingOption を呼び出します。
<div id="shipping-options"></div>
checkout.session().shippingOptions.forEach((option) => {
const form = document.createElement('form');
shippingOptions.forEach(option => {
const label = document.createElement('label');
const radio = document.createElement('input');
radio.type = 'radio';
radio.id = option.id;
radio.name = 'shippingOption';
radio.value = option.id;
radio.addEventListener('click', () => {
checkout.updateShippingOption(option.id)
})
const labelText = document.createTextNode(option.displayName);
label.appendChild(radio);
label.appendChild(labelText);
form.appendChild(label);
});
document.getElementById('shipping-options').appendChild(form);
});
const shippingAddressElement = checkout.createShippingAddressElement();
shippingAddressElement.mount('#shipping-address');