配送料を使用すると、通常配送、エクスプレス配送、翌日配送など、さまざまな配送オプションを表示して、配達日の目安をより正確に提示できます。さまざまな Stripe プロダクトを使用して配送料を顧客に請求します。配送料を作成する前に、請求先住所と配送先住所を収集 する方法を確認してください。
注 配送料は、注文全体に対する一定額のみ設定できます。注文の品目数に応じて配送料を調整することはできません。
注 配送料は、注文全体に対する一定額のみ設定できます。注文の品目数に応じて配送料を調整することはできません。
ダッシュボードを使用して配送料 を追加するには、次の操作を実行します。
配送料を作成 をクリックします。金額、説明と、必要に応じて配達予定日を入力します。 保存 をクリックし、配送料 ID (shr_ 123456
) をコピーします。配送料の詳細を入力する
配送料金を更新する ダッシュボードで配送料金を更新することはできません。ダッシュボードボードで配送料金を更新するには、配送料金をアーカイブしてから、新しい配送料金を作成する必要があります。
配送料金をアーカイブする 配送料金をアーカイブするには
配送料金 タブで、該当する配送料金を選択します。オーバーフローメニュー ( ) をクリックし、アーカイブ を選択します。 配送料金のアーカイブを解除するには、オーバーフローメニュー をクリックし、配送料金のアーカイブ解除 を選択します。
配送料を含む Checkout セッションを作成するには、生成された配送料 ID を shipping_options パラメーターに渡します。Checkout セッションと同時に配送料を作成する場合は、shipping_ rate_ data
パラメーターと shipping_ options
を使用します。配送オプションに対応しているのは、支払いモード の Checkout セッションのみです。
次のコードサンプルでは、Checkout セッションに 2 つの配送オプションを追加します。
送料無料、配達予定日は 5 〜 7 営業日。 翌日配送の航空便、費用は 15.00 USD、配達予定日はちょうど 1 営業日。 この例では、顧客が便利になるように、決済ページで shipping_ options
配列の最初のオプションが事前に選択されています。ただし、顧客はどちらのオプションも選択できます。
curl https://api.stripe.com/v1/checkout/sessions \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2
:" \
-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 \
- -data -urlencode success_url = "https://example.com/success "
成功すると、決済ページに配送セレクターが表示されます。
決済ページに配送セレクターが表示される
オプション 完了した取引を処理する
支払いが成功したら、shipping_cost の amount_total 属性で配送料を取得できます。shipping_ cost
の shipping_ rate
属性を使用して、選択した配送料を取得することもできます。shipping_ cost
プロパティにアクセスするには、完了した Checkout セッションを処理するイベントハンドラーを作成 する必要があります。ハンドラーをテストするには、Stripe CLI をインストール し、stripe listen --forward-to localhost:4242/webhook
を使用してイベントをローカルサーバーに転送 します。次のコードサンプルでは、ハンドラーによってユーザーが shipping_ property
にアクセスできます。
Stripe . api_key = "sk_test_BQokikJOvBiI2HlWgH4olfQ2"
require 'sinatra'
endpoint_secret = 'whsec_...'
post '/webhook' do
event = nil
begin
sig_header = request . env [ 'HTTP_STRIPE_SIGNATURE' ]
payload = request . body . read
event = Stripe : : Webhook . construct_event ( payload , sig_header , endpoint_secret )
rescue JSON : : ParserError = > e
return status 400
rescue Stripe : : SignatureVerificationError = > e
return status 400
end
if event [ 'type' ] == 'checkout.session.completed'
checkout_session = event [ 'data' ] [ 'object' ]
fulfill_order ( checkout_session )
end
status 200
end
def fulfill_order ( checkout_session )
selected_shipping_rate = Stripe : : ShippingRate . retrieve ( checkout_session . shipping_cost . shipping_rate )
shipping_total = checkout_session . shipping_cost . amount_total
raise NotImplementedError . new ( < < ~ MSG )
Given the Checkout Session " #{ checkout_session . id } " load your internal order from the database then implement your own fulfillment logic .
MSG
end
配送料は、複数の配達予定日の組み合わせを使用して設定できます。次の表は、平易な英語での配送予定日と、それに対応する delivery_ estimate. minimum
と delivery_ estimate. maximum
の値の例を示しています。
配達予定日 最短 最長 1 日 {
unit: 'day',
value: 1,
}
{
unit: 'day',
value: 1,
}
1 営業日 {
unit: 'business_day',
value: 1,
}
{
unit: 'business_day',
value: 1,
}
2 営業日以上 {
unit: 'business_day',
value: 2,
}
3 日 ~ 7 日 {
unit: 'day',
value: 3,
}
{
unit: 'day',
value: 7,
}
4 時間 ~ 8 時間 {
unit: 'hour',
value: 4,
}
{
unit: 'hour',
value: 8,
}
4 時間 ~ 2 営業日 {
unit: 'hour',
value: 4,
}
{
unit: 'business_day',
value: 2,
}
Stripe Tax を使用すると、配送料に tax_ code
と tax_ behavior
を設定することで、配送料に対する税金を自動的に計算できます。Stripe Tax は配送料が課税対象かどうかを自動的に判断し (課税対象は州や国によって異なるため )、課税対象の場合は正しい税率を適用します。
shipping_ rate_ data
を指定するか、配送料金の作成 を使用して配送料金を作成する際に、配送料金に tax_ behavior
と tax_ code
パラメーターを追加できます。
常に正しい税率で課税されるように、tax_ code
を Shipping
(txcd_ 92010001
) に設定することをお勧めします。配送料金に対して課税しない場合は、配送料金の tax_ code
を Nontaxable
(txcd_ 00000000
) に設定することもできます。
この例では、tax_ behavior
を exclusive
に設定します (アメリカではこれが一般的な設定となります)。税金処理 で詳細をご覧ください。
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][tax_behavior]" = exclusive \
-d "shipping_options[0][shipping_rate_data][tax_code]" = txcd_92010001 \
-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 "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][price_data][tax_behavior]" = exclusive \
-d "line_items[0][quantity]" = 1 \
-d "automatic_tax[enabled]" = true \
-d mode = payment \
- -data -urlencode success_url = "https://example.com/success "
顧客は決済ページで、配送料金に対して計算された税額が算入された消費税の合計を確認できます。
決済ページで、配送料金に対する税額が計算される