post https://app.tillersystems.com/api/orders
DEPRECATED API
Migrating from Order API v2
Nouvelle Commande
Log in to see full request history
Permet de créer une nouvelle commande
Pour qu'une OrderLine soit valide il faut soit :
- un productId valide et une quantity
- un name, un price, une tax et une quantity
IMPORTANT : la norme NF 525 oblige les logiciels de caisse à signer les commandes sur l'application. Il n'est donc plus possible de soumettre une commande en statut CLOSED. Une requête POST soumettant une commande fermée (CLOSE) sera enregistrée en statut IN_PROGRESS.
Voici un exemple de comment créer une commande avec des produits, des extras, des paiements et des envoies :
Créer une commande simple avec un produit associé
{
"restaurant_token": "{{restaurant_token}}",
"provider_token": "{{provider-token}}",
"lines": [
{
"productId": 1
}
]
}
Créer une commande avec un produit référencé (catalogue) et un non référencé
{
"provider_token": "{{provider-token}}",
"restaurant_token": "{{restaurant_token}}",
"waiterId": 31,
"name": null,
"openDate": "2015-06-25 20:00",
"nbCustomers": 2,
"type": 1, // 1: Order, 2: Booking, 3: Order+Booking
"customer": {
"id": 2,
},
"lines": [
{
"productId": 2291,
"quantity": 2,
"comment": "",
"sending": 0,
"extraLines": [],
"date": "2015-06-25 20:15",
"position": 0
},
{
"name": "Salade César",
"quantity": 2,
"price": 600,
"tax": 10.0,
"comment": "",
"extraLines": [],
"date": "2015-06-25 20:15",
"position": 1
}
],
"payments": [
{
"amount": 5000,
"type": "CASH",
"status": "ACCEPTED",
"date": "2015-06-25 21:00",
"waiterId": 1,
"waiterName": "name"
},
{
"amount": -800,
"type": "CASH",
"status": "ACCEPTED",
"date": "2015-06-25 21:00",
"waiterId": 1,
"waiterName": "name"
}
]
}
Ajouter un client à une order
1/ Relier un client déjà existant
{
"provider_token": "{{provider-token}}",
"restaurant_token": "{{restaurant_token}}",
"customer": {
"id": 2
}
}
2/ Créer un nouveau client
{
"provider_token": "{{provider-token}}",
"restaurant_token": "{{restaurant_token}}",
"customer": {
"firstname": "Josef",
"lastname": "Bovet",
"phone": "0652425785"
}
}
3/ Modifier un client existant
{
"provider_token": "{{provider-token}}",
"restaurant_token": "a102316a-927b-11e4-8641-fd414fc7f886",
"customer": {
"id": 2,
"firstname": "Josef",
"lastname": "Bovet",
"phone": "0652425785"
}
}
4/ Dissocier un client d'une order
{
"provider_token": "{{provider-token}}",
"restaurant_token": "{{restaurant_token}}",
"customer": null
}
Créer une réservation
{
"provider_token": "{{provider-token}}",
"restaurant_token": "{{restaurant_token}}",
"externalId": "ABC123",
"type": 2, // 2 => RESERVATION, 3 => Reservation + Order
"status": "WAITING",
"openDate": "2015-01-15 21:00", // Date & Heure de la reservation
"customer": {
"id": 2,
"firstname": "Josef",
"lastname": "Bovet",
"phone": "0652425785",
"email": "jbovet@tillersystems.com"
}
}
Attention : les prix sont en centimes
Les champs listés correspondent aux champs modifiables par une requête POST
Order
Attribut | Type | Nullable ? | Commentaires |
---|---|---|---|
number | Entier | NON | Numéro de la commande (pas forcément unique) |
name | String (MaxLength: 32) | OUI | Nom de la commande |
externalId | String (MaxLength: 255) | OUI | Référence externe : la valeur doit être unique pour toutes commandes de tous les clients de Tiller. En conséquence, il est indispensable d'avoir un plan de nommage unique. Pour des questions de compatibilité ascendante, il est fortement recommandé d'utiliser des UUID V4 (cf : https://www.uuidgenerator.net/version4) |
status | String | NON | Valeur possibles : "CANCELED", "IN_PROGRESS" IMPORTANT : la norme NF 525 oblige les logiciels de caisse à signer les commandes sur l'application. Il n'est donc plus possible de soumettre une commande en statut CLOSED. Une requête POST soumettant une commande fermée (CLOSED) sera enregistrée en statut IN_PROGRESS. |
nbCustomers | Entier | NON | Nombre de couverts |
openDate | Date (Format: "yyyy-mm-dd hh:mm:ss") | OUI | Date de la commande (Exemple: "2014-12-31 23:59:59") Si non précisée, la valeur par défaut est : NOW() |
tableId | Entier | OUI | Id de la table |
waiterId | Entier | OUI | Id de la waiter |
waiterName | String | OUI | Nom du serveur |
type | Entier | NON | Type de la commande (bitmask) 1 => ORDER 2 => BOOKING |
isBooking | Boolean | - | Est-ce que la commande est (ou était) une réservation |
lines | Liste de OrderLine | - | Ligne de commandes (produits, prix, quantité, ...) |
payments | Liste de Payment | - | Paiements |
customer | Customer | - | Compte du client |
OrderLine et ExtraLines
Attribut | Type | Nullable ? | Commentaires |
---|---|---|---|
productId | Entier | OUI | Id du produit |
quantity | Entier | NON | Quantité |
name | String (MaxLength: 31) | NON | Nom du produit requis si le productId n'est pas renseigné |
type | String | OUI | Recommandé pour éviter des ambiguïtés Au niveau line : PRODUCT ou DISCOUNT Au niveau extraLine : OPTION |
price | Entier | NON | Prix du total de la ligne en centimes (généralement prix du produit x quantité) requis si le productId n'est pas renseigné 0 si produit en formule |
initialPrice | Entier | NON | Prix du total de la ligne hors formule en centimes |
discountAmount | Entier | NON | Montant de la remise sur le produit (min: 0, max: price) |
tax | Decimal (2,2) | NON | TVA de la ligne requis si le productId n'est pas renseigné |
comment | String (MaxLength: 255) | OUI | Commentaire de la ligne |
status | String | NON | Status de la ligne. Valeurs possibles: "CANCELED", "DELETED", "WAITING", "IN_PROGRESS", "DONE" |
date | Date | NON | Date de la ligne (Exemple: "2014-12-31 23:59:59") Si non précisée, la valeur par défaut est : NOW() |
position | Entier | OUI | Position de la ligne par rapport a son envoie (optionnel) |
extraLines | Liste de OrderExtraLine | - | Extras (suppléments et options) |
nbPayed | Entier | NON | Quantité de la ligne payée |
Payment
Attribut | Type | Nullable ? | Commentaires |
---|---|---|---|
amount | Entier | NON | Montant du paiement en centimes |
type | String | NON | Type du paiement. Valeurs possibles (peut être modifié) : "CASH", "CASH_BACK", "CARD", "BANK_CHECK", "TICKET_RESTAURANT", "DISCOUNT" |
status | String | NON | "REFUSED", "ACCEPTED", "CANCELED" |
date | Date (Format: "yyyy-mm-dd hh:mm:ss") | NON | Date du paiement. Si non précisée, la valeur par défaut est : NOW() |
waiterId | Entier | OUI | id du waiter qui a réalisé le Payment |
waiterName | String | OUI | name du waiter qui a réalisé le Payment |
Responses