Webhooks : livraison
Vous pouvez utiliser le webhook des tarifs de livraison lorsque vous souhaitez gérer vous-même le calcul des tarifs de livraison. Snipcart appellera votre application à l'URL spécifiée dans votre tableau de bord.
Dans votre tableau de bord, allez dans Store configurations → Shipping → Webhooks et entrez les informations de point de terminaison requises.
Snipcart fera une requête HTTP POST
à l'URL spécifiée. Le corps de la demande contiendra tous les détails de la commande en cours.
Requête
Méthode POST
Content-Type application/json
Corps
{
"eventName": "shippingrates.fetch",
"mode": "Live",
"createdOn": "2015-02-21T14:58:02.6738454Z",
"content": {
"token": "22808196-0eff-4a6e-b136-3e4d628b3cf5",
"creationDate": "2015-02-21T14:58:02.6738454Z",
"modificationDate": "2015-02-21T14:58:02.6738454Z",
"status": "Processed",
"currency": "USD",
"lang": "en",
"paymentMethod": "CreditCard",
"email": "customer@snipcart.com",
"cardHolderName": "Nicolas Cage",
"billingAddressName": "Nicolas Cage",
"billingAddressCompanyName": "Company name",
"billingAddressAddress1": "888 The street",
"billingAddressAddress2": "",
"billingAddressCity": "Québec",
"billingAddressCountry": "CA",
"billingAddressProvince": "QC",
"billingAddressPostalCode": "G1G 1G1",
"billingAddressPhone": "(888) 888-8888",
"shippingAddressName": "Nicolas Cage",
"shippingAddressCompanyName": "Company name",
"shippingAddressAddress1": "888 The street",
"shippingAddressAddress2": "",
"shippingAddressCity": "Québec",
"shippingAddressCountry": "CA",
"shippingAddressProvince": "QC",
"shippingAddressPostalCode": "G1G 1G1",
"shippingAddressPhone": "(888) 888-8888",
"shippingAddressSameAsBilling": true,
"finalGrandTotal": 310.00,
"shippingAddressComplete": true,
"creditCardLast4Digits": "4242",
"shippingFees": 10.00,
"shippingMethod": "Livraison",
"items": [{
"uniqueId": "eb4c9dae-e725-4dad-b7ae-a5e48097c831",
"token": "22808196-0eff-4a6e-b136-3e4d628b3cf5",
"id": "1",
"name": "Movie",
"price": 300.00,
"originalPrice": 300.00,
"quantity": 1,
"url": "https://snipcart.com",
"weight": 10.00,
"description": "Something",
"image": "http://placecage.com/50/50",
"customFieldsJson": "[]",
"stackable": true,
"maxQuantity": null,
"totalPrice": 300.0000,
"totalWeight": 10.00,
"shippable": true,
}],
"subtotal": 610.0000,
"totalWeight": 20.00,
"discounts": [],
"willBePaidLater": false
}
}
Réponse
Snipcart s'attend à recevoir un objet JSON contenant un tableau de taux de livraison.
Succès
Le code d'état de la réponse doit être 2XX
pour indiquer que la demande a été traitée avec succès.
En-têtes HTTP obligatoires
Clé | Valeur |
---|---|
Content-Type | application/json |
Contenu
{
"rates": [{
"cost": 10,
"description": "10$ shipping"
}, {
"cost": 20,
"description": "20$ shipping",
"guaranteedDaysToDelivery": 5
},
...
]
}
Erreur
Si vous voulez que Snipcart affiche un message d'erreur à vos clients, vous pouvez le faire en nous retournant un code d'état 2XX
avec l'objet JSON suivant.
{
"errors": [{
"key": "invalid_postal_code",
"message": "The postal code is invalid."
},
...
]
}