Pour identifier un contact, plusieurs options sont possibles :

  • Soit vous avez accès au CRM et vous pouvez récupérer la liste des contacts et les informations des clients associés par GET /api/v1/contacts puis utiliser l'ID d'un contact directement

  • Soit, si vous développez un module externe (application de prise de commande partenaire), vous devrez travailler avec les références externes de contact.

Là encore, deux options :

  • Soit l'instance vous met à disposition les contacts avec lesquels vous pourrez travailler. Ils seront alors disponibles par GET /api/v1/contact_references

  • Soit l'instance s'occupe de déterminer qui sont les contacts et vous n'avez qu'à envoyer les informations de contact lors de chaque commande.

Dans ce dernier cas, il est primordial de bien identifier vos contacts. Dans Hello Harel, un contact représente une personne travaillant pour une entreprise. Une même personne physique travaillant dans deux entreprises différentes sera donc représentée par deux contacts Hello Harel.
Pour permettre l'identification des contacts par l'utilisateur Hello Harel, vous pouvez les créer à l'avance :

POST /api/v1/contact_references { "contact": { "externalReference": "my-identifier", "firstName": "Jean", "lastName": "Martin", "email": "jean.martin@hoteldela.gare" }, "customer": { "name": "Hôtel de la gare" } }
ou bien les créer à la volée lors de la création de commande :

POST /api/v1/orders { "externalId": "my-order-id", "externalReference": "my-order-number", "contact": { "externalReference": "my-identifier", "firstName": "Jean", "lastName": "Martin", "email": "jean.martin@hoteldela.gare" }, "customer": { "name": "Hôtel de la gare" }, ... }
Dans les deux cas, un contact et un compte client temporaire seront créés et l'utilisateur pourra choisir s'il s'agit d'un contact et d'un compte déjà connus :