Les tarifs de livraison vous permettent d’afficher différentes options de livraison, comme la livraison standard, express ou le lendemain, avec des estimations de livraison plus précises. Facturez à votre client les frais de livraison à l’aide de différents produits Stripe. Avant de créer un tarif de livraison, découvrez comment collecter les adresses de facturation et de livraison.
Remarques
Les frais de livraison ne prennent en charge que des valeurs de montant fixe pour la totalité de la commande. Vous ne pouvez pas rajuster les frais de livraison en fonction du nombre d’articles dans la commande.
Remarques
Les frais de livraison ne prennent en charge que des valeurs de montant fixe pour la totalité de la commande. Vous ne pouvez pas rajuster les frais de livraison en fonction du nombre d’articles dans la commande.
Pour ajouter des tarifs de livraison à l’aide du Dashboard :
- Cliquez sur Créer un tarif de livraison.
- Saisissez un montant, une description et, si vous le souhaitez, une estimation du délai de livraison.
- Cliquez sur Enregistrer et copiez l’ID du tarif de livraison (
shr_123456
).

Saisissez les informations de vos tarifs de livraison
Pour créer une session Checkout qui inclut vos frais de livraison, transmettez l’ID des frais de livraison générés au paramètre shipping_options. Si vous souhaitez créer les tarifs de livraison en même temps qu’une session Checkout, utilisez le paramètre shipping_rate_data
avec shipping_options
. Seules les sessions Checkout en mode de paiement prennent en charge les options de livraison.
L’exemple de code suivant permet d’ajouter deux options de livraison à la session Checkout :
- Livraison gratuite, avec un délai de livraison estimé à 5-7 jours ouvrables.
- Livraison par voie aérienne sous 1 jour ouvrable (estimation) pour un coût de 15,00 USD.
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"
Sur votre client, utilisez l’objet shippingOptions pour afficher les options d’expédition disponibles, par exemple dans une liste de cases d’option. Lorsque votre client sélectionne une option de livraison, faites appel à updateShippingOption avec l’ID de l’option de livraison.
<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');