Tarif pengiriman memungkinkan Anda menampilkan berbagai pilihan pengiriman—seperti standar, ekspres, dan besok sampai—dengan estimasi pengiriman yang lebih akurat. Charge pelanggan Anda untuk pengiriman menggunakan produk Stripe yang berbeda. Sebelum Anda membuat tarif pengiriman, pelajari cara mengumpulkan alamat tagihan dan pengiriman.
Catatan
Tarif pengiriman hanya mendukung nilai jumlah tetap untuk seluruh pesanan. Anda tidak dapat menyesuaikan tarif pengiriman berdasarkan jumlah item dalam pesanan.
Catatan
Tarif pengiriman hanya mendukung nilai jumlah tetap untuk seluruh pesanan. Anda tidak dapat menyesuaikan tarif pengiriman berdasarkan jumlah item dalam pesanan.
Untuk menambahkan tarif pengiriman menggunakan Dashboard:
- Klik Buat tarif pengiriman.
- Masukkan jumlah, deskripsi, dan estimasi pengiriman opsional.
- Klik Simpan, dan salin Identifikasi tarif pengiriman (
shr_123456
).

Masukkan detail tarif pengiriman Anda
Untuk membuat Sesi Checkout yang menyertakan tarif pengiriman Anda, teruskan identifikasi tarif pengiriman yang dihasilkan ke parameter shipping_options. Jika Anda ingin membuat tarif pengiriman bersamaan dengan Sesi Checkout, gunakan parameter shipping_rate_data
dengan shipping_options
. Hanya Sesi Checkout dalam mode pembayaran yang mendukung opsi pengiriman.
Sampel kode berikut menambahkan dua opsi pengiriman ke Sesi Checkout:
- Pengiriman gratis, dengan estimasi pengiriman 5-7 hari kerja.
- Pengiriman semalam lewat udara, dengan biaya 15,00 USD, dengan estimasi pengiriman tepat 1 hari kerja.
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"
Pada client Anda, gunakan objek shippingOptions untuk menyajikan opsi pengiriman yang tersedia, seperti dalam daftar tombol radio. Bila pelanggan Anda memilih opsi pengiriman, panggil updateShippingOption dengan identifikasi opsi pengiriman.
<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');