Les Rides
Une Ride correspond à une annonce chez Cocolis.
Vous pouvez regarder le Model pour voir toutes les informations renseignées sur une Ride.
Le volume
Nos algorithmes de calcul de poids sont basés sur le volume en m3 et la distance de l'annonce. Voici le tableau des correspondances format des objets/volumes :
| Format | Volume en m3 | Exemple |
|---|---|---|
| s | 0.01 | Tient dans une boîte à chaussures (téléphone, clés, doudou…) |
| m | 0.05 | Tient dans une valise cabine (ordinateur, caisse de vin, platine vinyle…) |
| l | 0.3 | C’est l’équivalent de 4 petites valises cabine. Tient dans le coffre d’une voiture (tableau, télévision, lit parapluie...) |
| xl | 0.75 | Tient dans un break ou un monospace (commode, fauteuil, table basse…) |
| xxl | 1.50 | Nécessite un petit utilitaire (scooter, armoire, canapé, lit…) |
Lier votre commande
Lors de la création d'une annonce, vous devez envoyer dans le champ external_id l'id de la commande chez vous qui a déclenché la création de l'annonce. C'est cette valeur que nous vous renvoyons sur nos webhooks afin de relier nos objets à ceux dans votre base de données.
Les objets d'une annonce
Lors de la création d'une ride, vous devez envoyer les objets à transporter dans le format spécifié.
Il est important de donner le plus d'informations possibles concernant ces objets :
-
Le format peut soit être donnée via les dimensions exactes (
height,width,length) ou bien via un paramètreformatqui prend une des valeurs suivantes :s,m,l,xl,xxlcorrespond à des volumes d'objets tel que défini dans le tableau ci-dessous.- format S : 0.01 m3
- format M : 0.05 m3
- format L : 0.3 m3
- format XL : 0.8 m3
- format XXL : 1.5 m3
-
Le poids peut soit être donnée via un paramètre
exact_weightavec le poids exacte en kg ou bien via un paramètre plus généralweightqui prend une des valeurs suivantesless_than_5_kg,between_5_and_30_kg,between_30_and_100_kg,more_than_100_kg.
Les options de livraison
Lors de la création d'une ride, vous pouvez envoyer l'id de(s) option(s) de livraison sélectionnée(s) par l'utilisateur dans le champ ride_delivery_options_ids. Ces ids sont disponibles sur la réponse du can_match dans la clée available_options :
Voir la documentation détaillée
"available_options": {
"handling": {
"title": "Manutention",
"description": "Choisissez une option de manutention pour votre livraison",
"options": [
{
"option_id": 1,
"label": "Au pied du véhicule",
"price": 0.0,
"is_default": true,
"description": "Aucune aide du transporteur pour porter le bien."
},
{
"option_id": 2,
"label": "Dans la pièce de mon choix - avec 1 personne",
"price": 2900.0,
"is_default": false,
"description": "Une personne est nécessaire pour porter le bien dans la pièce de votre choix"
},
{
"option_id": 3,
"label": "Dans la pièce de mon choix - avec 2 personnes",
"price": 5900.0,
"is_default": false,
"description": "Deux personnes sont nécessaires pour porter le bien dans la pièce de votre choix."
}
]
}
}
Une seule option n'est possible par catégorie d'option (ici dans l'exemple : handling)
Actuellement Cocolis propose uniquement comme catégorie la manutention, pour laquelle 3 choix sont proposés :
- Aucune aide du transporteur pour porter le bien.
option par défaut - Une personne est nécessaire pour porter le bien dans la pièce de votre choix.
- Deux personnes sont nécessaires pour porter le bien dans la pièce de votre choix.
Si l'option retenue est payante, le champ price ne doit pas prendre en compte le prix de l'option, ce champ ne représente que la part livraison.
Les statuts des rides
| Statuts | Correspondance | Prochains statuts possibles | Commentaire |
|---|---|---|---|
| published | Ride publiée sur Cocolis | availabilities_pending, expired, removed, moderated | La ride est publiée sur le site. Elle est visible par les transporteurs disponibles. |
| availabilities_pending | En attente de validation des créneaux | in_progress, removed | Un transporteur a proposé des créneaux de passage que l'expéditeur et le destinataire doivent confirmer |
| in_progress | Ride en cours de livraison | completed, published, removed | L'expéditeur et le destinataire ont validé le créneau de collecte et livraison et la livraison est en cours. |
| expired | La ride n'a pas trouvé de transporteur. | removed | La ride a expiré sans qu’un transporteur ne se soit proposé. L’équipe de Cocolis reprend la main pour trouver un transporteur. |
| completed | La ride est terminée | La livraison a été effectuée | |
| removed | La ride est supprimée | L'annonce est supprimée suite à l’annulation de la vente ou bien si aucun créneau proposé n'a été confirmé plusieurs fois d'affilée par l'expéditeur ou le destinataire. | |
| moderated | La ride est modérée | La livraison a été modérée par un administrateur Cocolis |
Enchaînement des status
L'enchaînement standard d'une annonce est : published > availabilities_pending > in_progress > completed
Voici le cycle de vie d'une annonce :
Documents de facturation
Les documents de facturation sont accessibles depuis une URL non-authentifiée de 2 façons.
Ils sont accessibles seulement si le statut est completed ou removed
1. Retrouver les URLs à partir de l'API
Dans le modèle Ride, vous pouvez retrouvez les propriétés [billing_documents][buyer] et [billing_documents][seller] qui contiennent les URLs des Billing Documents :
{
'billing_documents': {
'buyer': 'https://www.cocolis.fr/cocolis-api/rides/recipient/CFE9E3620F1626F9/billing_document',
'seller': 'https://www.cocolis.fr/cocolis-api/rides/sender/CFE9E3620F1626F9/billing_document'
}
}
2. Construire l'URL
Les attributs buyer_tracking et le seller_tracking de la ride vous permettent de générer les documents de facturation de l'acheteur et du vendeur au format PDF. Cela se fait via une URL qui prend l'une des formes suivantes :
# Buyer Billing Documents
> https://:domain/cocolis-api/rides/recipient/:buyer_tracking/billing_document
# Seller Billing Documents
> https://:domain/cocolis-api/rides/sender/:seller_tracking/billing_document
- Paramètres
- Exemples
| Paramètre | Valeur | Commentaire |
|---|---|---|
| :domain | www.cocolis.fr | En sandbox, le domaine sera sandbox.cocolis.fr |
| :buyer_tracking | ride.buyer_tracking | Lors de la création de la ride, nous vous avons renvoyé ce paramètre dans la clé buyer_tracking |
| :seller_tracking | ride.seller_tracking | Lors de la création de la ride, nous vous avons renvoyé ce paramètre dans la clé seller_tracking |
Nous vous conseillons de remonter ce lien pour télécharger la facture Cocolis sur la page de suivi de commande de votre client. Ce lien est également disponible à partir de la page de suivi de livraison sur Cocolis.
Production
# GET Buyer Billing Documents
> https://www.cocolis.fr/cocolis-api/rides/recipient/CFE9E3620F1626F9/billing_document
# GET Seller Billing Documents
> https://www.cocolis.fr/cocolis-api/rides/sender/CFE9E3620F1626F9/billing_document
Sandbox
# GET Buyer Billing Documents
> https://sandbox.cocolis.fr/cocolis-api/rides/recipient/CFE9E3620F1626F9/billing_document
# GET Buyer Billing documents
> https://sandbox.cocolis.fr/cocolis-api/rides/sender/CFE9E3620F1626F9/billing_document
Idempotence des requêtes
L'API prend en charge l'idempotence pour permettre la répétition sécurisée des requêtes de création d'annonce sans risque d'exécuter accidentellement la même opération deux fois. Lors de la création, vous pouvez optionnellement utilisez une clé d'idempotence. Ensuite, en cas d'erreur de connexion, vous pouvez répéter la requête en toute sécurité sans risque de créer une deuxième annonce.
Pour effectuer une requête idempotente, fournissez une clé d'idempotence supplémentaire dans les options de la ride idempotency_key.
Vous devez générer manuellement une clé d'idempotence, qui est une clé unique que le serveur utilise pour reconnaître les nouvelles tentatives de la même requête. La manière dont vous créez des clés uniques vous appartient, mais nous vous suggérons d'utiliser des UUID V4 ou une autre chaîne aléatoire avec suffisamment d'entropie pour éviter les collisions. Les clés d'idempotence peuvent avoir jusqu'à 255 caractères.
En cas d'appel de création d'annonce, si notre API detecte une annonce existante avec la même clé d'idempotence, elle renverra l'annonce déjà existante en base ayant la même clé d'idempotence.
Date d'expiration de l'annonce
La date d'expiration d'une annonce est de 21 jours par défaut après sa publication. Cette valeur peut être ajustée à différents niveaux en contactant l'équipe Cocolis:
- globalement pour toutes les annonces d'un utilisateur
A noter que si la personne à réception ou à l'expédition a spécifié qu'elle n'est pas disponible avant une date donnée T, la date d'expiration sera recalculée en se basant sur cette date (T + 21 jours).