Les frais de livraison vous permettent d’afficher diverses options d’expédition (standard, express et 24 heures) avec des estimations de livraison plus précises. Facturez vos clients pour la livraison à l’aide de différents produits Stripe, dont certains nécessitent l’écriture de code. Avant de créer des frais de livraison, découvrez comment collecter les adresses de facturation et de livraison.
Remarque
Les frais de livraison ne prennent en charge que des valeurs de montant fixe pour l’ensemble de la commande. Vous ne pouvez pas ajuster les frais de livraison en fonction du nombre d’articles dans la commande.
Remarque
Les frais de livraison ne prennent en charge que des valeurs de montant fixe pour l’ensemble de la commande. Vous ne pouvez pas ajuster les frais de livraison en fonction du nombre d’articles dans la commande.
Pour ajouter des frais de livraison à l’aide du Dashboard :
- Cliquez sur Créer des frais de livraison.
- Renseignez un montant, une description et, si vous le souhaitez, une estimation du délai de livraison.
- Cliquez sur Enregistrer et copiez l’ID des frais de livraison (
shr_123456
).

Saisir les détails de vos frais de livraison
Pour créer une session de paiement incluant vos frais de livraison, transmettez l’ID des frais de livraison généré au paramètre shipping_options. Si vous souhaitez créer les frais 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 ajoute deux options de livraison à la session Checkout :
- Livraison gratuite sous 5 à 7 jours ouvrés (estimation).
- Livraison par voie aérienne sous 1 jour ouvré (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"
Côté client, utilisez l’objet shippingOptions pour afficher les options d’expédition disponibles, par exemple dans une liste avec des boutons radio. Lorsque votre client sélectionne une option d’expédition, appelez updateShippingOption avec l’ID de l’option d’expédition.
<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');