- Pour démarrer une importation, vous devez préparer un fichier. Le format des données de l’historique des achats est très strict. Il doit avoir ce format exact, sinon l’importation échouera. Le délimiteur doit être un point-virgule (;) et les colonnes doivent avoir l’ordre spécifié ci-dessous. Certaines colonnes sont obligatoires et d’autres sont facultatives. Si vous voulez inclure des champs facultatifs, tous les champs facultatifs avant votre champ dans l’ordre doivent être inclus. Les données peuvent être vides; vous pouvez donc simplement ajouter des points-virgules pour les champs optionnels intermédiaires que vous ne voulez pas ajouter. Les champs personnalisés peuvent être nommés pour l’utilisateur dans l’interface utilisateur de Symplify.
- Une fois le fichier préparé, il est temps de faire la première demande à l’API. Vous aurez besoin de l’identifiant de la liste à laquelle vous voulez associer les données de l’historique des achats.
- Après la demande initiale et le retour d’une pièce d’identité, il est temps de téléverser vos données. Utilisez l’identifiant obtenu dans la réponse à la première demande pour téléverser vos données.:POST <server>/rest/<customerId>/purchasehistory/<listid>/imports/<id>/data
- Lorsque le fichier a été téléversé avec succès, vous pouvez faire une requête à l’API pour suivre la progression des importations. Utilisez le batchId de la requête précédente. Vous pouvez continuer à interroger la méthode jusqu’à ce que vous receviez une réponse avec le statut “FINISHED”. N’effectuez pas trop souvent des requêtes, car cela mettra inutilement le système à rude épreuve. Une requête toutes les 30 secondes ou toutes les minutes est normalement suffisante.
Historique d'achat - API
Introduction
Qu’est-ce que l’historique d’achat et comment puis-je l’utiliser?
Pour commencer, il est nécessaire d’avoir une connaissance de base des listes de Symplify et de la gestion des contacts. Les lecteurs sont supposés avoir une certaine familiarité avec l’interface graphique de Symplify.
Flux de travail général
NOTE!
Le fichier ne doit pas contenir de ligne d’en-tête. La première ligne doit contenir des données.
Colonne Fichier | Champs | Description |
0* | Originalid | Votre identifiant du contact auquel les données doivent être associées. |
1* | Sku | Stock Keeping Unit (Unité de gestion des stocks) |
2* | itemPrice | Prix d’une unité avec point (.) pour les décimales, soit 20,50. |
3** | Transaction Time | Heure au format ISO-8601 ; aaaaa-MMM-jjj HH:mm:ss:ss |
4** | No of Items | Nombre d’items |
5 | Total price | itemPrix*noDeItems |
6 | Currency | Devise |
7 | Invoice Id | ID facture du système client |
8 | category | Catégorie |
9 | Item Name | Nom de l’item |
10 | Item Description | |
11 | Custom1 | |
12 | Custom2 | |
13 | Custom3 | |
14 | Custom4 | |
15 | Custom5 | |
16 | Custom6 | |
17 | Custom7 | |
18 | Custom8 | |
19 | Custom9 | |
20 | Custom20 |
*Champs obligatoires
** Non obligatoire, mais fortement recommandé.
NOTE!
Pour que les données dans les champs personnalisés soient analysées correctement, les dates doivent être formatées en ISO-8601 et les prix doivent être formatés en 00000000.00 (point décimal).
Une fois cette information recueillie, il est temps de faire la demande. La réponse, si tout s’est bien passé, contiendra un identifiant unique qui sera utilisé plus tard.
Pour démarrer l’importation, une demande POST avec des métadonnées décrivant l’importation est envoyée :
POST <server>/rest/<customerId>/purchasehistory/<listid>/imports
Exemple de corps de réponse
{
“id”: “bd48b5cc-b118-4062-8d06-09efa765592b”
}
TYPE-DE-CONTENU: text/csv
<données du fichier>
Exemple de corps de réponse
{
“batchId”: “101111”
}
NOTE!
Les données sont ajoutées seulement, donc si les mêmes données sont importées deux fois, la deuxième importation sera ajoutée, sans écraser l’importation précédente.
GET <server>/rest/<customerId>/batches/<batchId>
Corps de réponse
{
“id”: 101111,
“type”: “IMPORT”,
“customerId”: 0,
“startTime”: 1394636797030,
“endTime”: 1394636799710,
“affected”: 500,
“processed”: 500,
“total”: 501,
“status”: ” PENDING|IN_PROGRESS|FINISHED”
}