DEPRECATED API
Migrating from Order API v2
Nouvelle Commande

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": "[email protected]"
  }
}

Attention : les prix sont en centimes

Les champs listés correspondent aux champs modifiables par une requête POST

Order

AttributTypeNullable ?Commentaires
numberEntierNONNuméro de la commande (pas forcément unique)
nameString (MaxLength: 32)OUINom de la commande
externalIdString (MaxLength: 255)OUIRé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)
statusStringNONValeur 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.
nbCustomersEntierNONNombre de couverts
openDateDate (Format: "yyyy-mm-dd hh:mm:ss")OUIDate de la commande (Exemple: "2014-12-31 23:59:59")

Si non précisée, la valeur par défaut est : NOW()
tableIdEntierOUIId de la table
waiterIdEntierOUIId de la waiter
waiterNameStringOUINom du serveur
typeEntierNONType de la commande (bitmask)
1 => ORDER
2 => BOOKING
isBookingBoolean-Est-ce que la commande est (ou était) une réservation
linesListe de OrderLine-Ligne de commandes (produits, prix, quantité, ...)
paymentsListe de Payment-Paiements
customerCustomer-Compte du client

OrderLine et ExtraLines

AttributTypeNullable ?Commentaires
productIdEntierOUIId du produit
quantityEntierNONQuantité
nameString (MaxLength: 31)NONNom du produit requis si le productId n'est pas renseigné
typeStringOUIRecommandé pour éviter des ambiguïtés
Au niveau line : PRODUCT ou DISCOUNT
Au niveau extraLine : OPTION
priceEntierNONPrix 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
initialPriceEntierNONPrix du total de la ligne hors formule en centimes
discountAmountEntierNONMontant de la remise sur le produit (min: 0, max: price)
taxDecimal (2,2)NONTVA de la ligne requis si le productId n'est pas renseigné
commentString (MaxLength: 255)OUICommentaire de la ligne
statusStringNONStatus de la ligne. Valeurs possibles:
"CANCELED", "DELETED", "WAITING", "IN_PROGRESS", "DONE"
dateDateNONDate de la ligne (Exemple: "2014-12-31 23:59:59")

Si non précisée, la valeur par défaut est : NOW()
positionEntierOUIPosition de la ligne par rapport a son envoie (optionnel)
extraLinesListe de OrderExtraLine-Extras (suppléments et options)
nbPayedEntierNONQuantité de la ligne payée

Payment

AttributTypeNullable ?Commentaires
amountEntierNONMontant du paiement en centimes
typeStringNONType du paiement. Valeurs possibles (peut être modifié) :
"CASH", "CASH_BACK", "CARD", "BANK_CHECK", "TICKET_RESTAURANT", "DISCOUNT"
statusStringNON"REFUSED", "ACCEPTED", "CANCELED"
dateDate (Format: "yyyy-mm-dd hh:mm:ss")NONDate du paiement.

Si non précisée, la valeur par défaut est : NOW()
waiterIdEntierOUIid du waiter qui a réalisé le Payment
waiterNameStringOUIname du waiter qui a réalisé le Payment
Language
Click Try It! to start a request and see the response here!