API Delivety
Chez Delivety, nous essayons de simplifier les processus autant que possible. C'est également le cas de l'API Delivety.
Dans ce guide, vous trouverez des informations détaillées sur la façon d'utiliser l'API Delivety pour commencer à envoyer des commandes depuis votre site web ou de votre application existante vers l'application web Delivety.
Nous aimerions vous aider à commencer à travailler avec l'API Delivety le plus rapidement possible. Si vous avez des questions, nous sommes là pour vous aider.
Introduction
L'API Delivety est un service web RESTful permettant aux développeurs d'envoyer des données de commande depuis leur site web ou leur application existante vers l'URL du webhook Delivety.
URL web-hook Delivety
Pour interagir avec l'API Delivety, vous devrez vous inscrire pour obtenir un compte Delivety. Une fois que vous avez créé un compte chez nous, ouvrez la section "Domaine" de votre tableau de bord administrateur Delivety, puis sélectionnez le domaine avec lequel vous souhaitez intégrer votre site web ou votre application (ou créez un nouveau domaine si vous n'en avez pas encore). Ensuite, choisissez "Recevoir des commandes depuis le site web existant". L'URL du webhook dédié s'affichera. Il est maintenant temps de configurer votre site web ou votre application pour envoyer les données de commande à cette URL du webhook.
Utilisation des web-hooks
Votre site web ou votre application doit envoyer un rappel HTTPS à l'URL du webhook Delivety chaque fois que le client passe une commande sur votre site web ou votre application. S'il est reçu avec succès, Delivety répondra avec un code HTTP 2xx, et la commande apparaîtra immédiatement dans le tableau de bord de l'opérateur. Veuillez noter qu'il y a des exigences pour que le rappel HTTPS soit traité avec succès.
Toujours utiliser HTTPS
Les appels effectués via HTTP non sécurisé échoueront. Les demandes d'API sans les paramètres obligatoires échoueront également.
Régulation des flux
Vous ne pouvez pas effectuer plus de 10 requêtes par seconde sur l'ensemble des URL web-hook de votre entreprise. Si vous dépassez le seuil de 10 requêtes par seconde, vous recevrez d'abord une erreur 426. Ne pas réduire votre nombre de requêtes peut entraîner une restriction temporaire.
Sécurité
Vous êtes responsable de l'utilisation sécurisée des URL web-hook que nous vous fournissons. En cas de compromission, vous pouvez générer une nouvelle URL appropriée pour le domaine concerné dans la section "Domaine" de votre tableau de bord administrateur Delivety. N'oubliez pas qu'à partir de ce moment, vous devrez envoyer la requête POST à la nouvelle URL de web-hook que vous avez créée.
Types et Formats des Données
À quelques exceptions près, les chiffres sont des chiffres et non des chaînes de caractères. L'API respecte strictement la représentation la plus naturelle des données sous-jacentes, et la valeur nulle est toujours renvoyée pour les propriétés facultatives qui n'ont pas encore été assignées.
Les coordonnées géographiques sont formatées ainsi : [ longitude, latitude ]
, conformément à la norme GeoJSON.
Les horodatages sont consommés et produits au format de temps de l'ère Unix, avec une précision à la milliseconde.
Les numéros de téléphone seront toujours renvoyés au format E.164. Cependant, ils peuvent être fournis au format E.164 ou dans un format localisé valide en fonction de la configuration du pays de votre entreprise. Si vous souhaitez fournir des numéros provenant d'autres pays que celui de votre entreprise, vous devez utiliser exclusivement le format E.164. Nous recommandons vivement l'utilisation de bibliothèques telles que libphonenumber pour la validation et le formatage des numéros de téléphone.
Comment Envoyer des Données
Requête Post
Envoyez les données sous forme d'une requête POST avec un contenu incluant les paramètres suivants:
Paramètre | Description |
---|---|
téléphone | Numéro de téléphone du client, seuls les symboles numériques sont acceptés. Sert d'identifiant client.
|
id | Identifiant commande selon le système d'identification de votre site web/application.
|
prénom | Prénom du client. Vous pouvez également inclure leur nom de famille ici (optionnel).
|
Email du client (optionnel). | |
adresse | Adresse du client (optionnel). |
commentaire | Note ou commentaire du client (optionnel).
|
date_livraison | Date à laquelle la commande doit être livrée. Il s'agit d’un paramètre facultatif. La commande aura une date de livraison prévue AUJOURD'HUI si le paramètre est absent.
|
heure_livraison | Heure à laquelle la commande doit être livrée. Il s'agit d’un paramètre facultatif. La commande aura une heure de livraison prévue AU PLUS VITE si le paramètre est absent. |
produit | Produits commandés (champ, voir ci-dessous) |
paiement | Données de paiement (optionnel, voir ci-dessous). La commande aura le statut NON PAYÉ si le champ est vide. |
promotion | Données Promotion (champ optionnel, voir ci-dessous) |
Champ Produit
Le champ produit doit contenir les paramètres suivants:
Paramètre | Description |
---|---|
api_id | L'identifiant du plat selon le système d'identification des plats de votre site web/application. Vous devez définir les mêmes identifiants API que les identifiants de produits pour chaque plat individuel dans votre Créateur de Menu Delivety |
quantité | La quantité de plats correspondant à l’api_id |
prix | Le prix du plat correspondant à l'api_id |
Champ Paiement
Le champ paiement doit contenir les paramètres suivants:
Paramètre | Description |
---|---|
type | La méthode de paiement utilisée pour cette commande. La valeur doit être:
“1” si la commande a été réglée en espèces, ou “2” si la commande a été réglée par carte, ou “3” si la commande est payée par carte à la li |
statut | Le statut du paiement par carte utilisé pour cette commande. La valeur doit contenir :
“-1” si le paiement est remboursé “0” si le paiement a été annulé “1” si le paiement n'a pas encore été traité “2” si le paiement a été traité avec succès |
total | La somme des prix de tous les articles de la commande. Dans la plupart des cas, il s'agit du montant total de la commande avant déduction de tout rabais et/ou frais de traitement du paiement (reciver_commission). |
montant | Le montant total payé (ou à payer) pour la commande. Dans la plupart des cas, le montant équivaut à la somme initiale, déduction faite de la remise et de la commission du processeur de paiement (reciver_commission) |
public_key | Le paramètre facultatif pour les paiements par carte permet d'identifier le numéro de compte vers lequel effectuer le paiement. Ce paramètre est utilisé si vous avez plus d'un compte bancaire et/ou si vous utilisez plusieurs méthodes de paiement et que vous puissiez les différencier dans Delivety. |
reciver_commission | La commission du processeur de paiement, le cas échéant. |
Champ Promotion
Le champ promotion doit contenir les paramètres suivants:
Paramètre | Description |
---|---|
discount | Le paramètre facultatif qui contient le montant total de la remise dans la commande. |
discount_percent | Le paramètre facultatif qui contient le pourcentage de remise sur la commande. |
discount_code | Le paramètre facultatif qui contient le code promo alphanumérique appliqué à la commande. |
involved_dishes | Le tableau optionnel qui contient les plats inclus dans la promotion. |
resulted_dishes | Le tableau optionnel qui contient les plats résultant de la promotion. |
Tableau des Plats Résultants
Le tableau resulted_dishes doit contenir les paramètres optionnels suivants :
Parameter | Description |
---|---|
api_id | L'identifiant du plat qui est le résultat de la promotion. Vous ne devez pas envoyer ce plat dans le tableau des produits
|
count | La quantité des plats ayant un api_id particulier
|
modification | La modification de prix du plat qui est le résultat de la promotion
|
Requête Post
L'exemple du code PHP de la requête POST réussie ci-dessous illustre la commande, avec les deux plats commandés (api_id = 139, api_id = 385) avec une remise de 10% et un plat reçu gratuitement, en résultat de la réduction de prix :
$url = 'https://delivety.com/hooks/catch/sdf34asdv1';
$incoming_order = [
"access_token" => "ACCESS_TOKEN_HERE",
"phone" => '123680000000',
"id" => 123456,
"first_name" => 'John Dowe',
"email" => '[email protected]',
"address" => '123, Sunset blvd',
"comment" => 'no sesame please',
"delvery_date" => '2021-12-31',
"delvery_time" => '18:45:00',
"products" => [
[
"api_id" => 139,
"count" => 1,
"price" => 15
],
[
"api_id" => 385,
"count" => 1,
"price" => 18
],
],
"payment" => [
"type" => 2,
"status" => 2,
"sum" => 33,
"amount" => 28.95,
"receiver_commision" => 1.05
],
"promotion" => [
"discount_percent" => 10,
"involved _dishes" => [
[
"api_id" => 139,
"count" => 1
],
[
"api_id" => 385,
"count" => 1
]
],
"resulted _dishes" => [
[
"api_id" => 598,
"count" => 1,
"modification" => -12
]
]
]
];
$data = sendRequest($url, 'post', $incoming_order);