Module Cherry Commerce
Register your sales from your store with Cherry Commerce.
Properties
| Name | Value |
|---|---|
| Version | 26.202506.36638.0 |
| Publisher | Cap Vision |
| Brief | Cash register for your store. |
Namespace
Créer des actions spécifiques sur le ticket de caisse
L'extensibilité est la capacité de l'application à accepter le développement de fonctionnalités supplémentaires uniques à votre entreprise.
Cette page décrit des cas d'extensibilité possibles sur les actions visibles sur la caisse.
Un développeur peut étendre la liste des actions disponibles sur un ticket de caisse et paramétrables dans la disposition des touches.
Implémentation
Pour ajouter une action personnalisée, le développeur doit suivre les étapes suivantes dans son projet Business Central :
- Ajouter une dépendance à Cherry Commerce dans son fichier
app.json. - Créer une
enumextensionsur l'objetKey Action Type CCCAP.
enumextension 50000 "Key Action Type PTE" extends "Key Action Type CCCAP"
{
value(50000; "Simple Custom AD PTE")
{
Caption = 'Simple Custom Action';
Implementation = "Key Action Definition CCCAP" = "Simple Custom AD PTE";
}
}
Créer un
codeunitimplémentant l'interfaceKey Action Definition CCCAP.L'action doit avoir un nom qui débute par
custom.et suivi par un identifiant qui est propre.
codeunit 50000 "Simple Custom AD PTE" implements "Key Action Definition CCCAP"
{
procedure GetDefinition(): JsonObject;
var
Helper: Codeunit "Key Action Helper CCCAP";
Parameters: JsonArray;
MessageToDisplayLbl: Label 'Message to display';
begin
Parameters.Add(
Helper.CreateActionParameterDefinition(
'customParameter1',
MessageToDisplayLbl,
FieldType::Text,
true
));
exit(Helper.CreateActionDefinition('custom.simplePTE', Format(Enum::"Key Action Type CCCAP"::"Simple Custom AD PTE"), Parameters));
end;
}
Seuls deux noms de paramètres sont supportés :
customParameter1etcustomParameter2, tous deux de typeText.
- S'abonner à l'événement OnCustomAction et y répondre.
codeunit 50000 "Simple Custom AD PTE" implements "Key Action Definition CCCAP"
{
//...
[EventSubscriber(ObjectType::Page, Page::"APIV1 Custom Action CCCAP", 'OnCustomAction', '', false, false)]
local procedure OnCustomAction(ActionName: Text; RequestPayload: JsonObject; var ResponsePayload: JsonObject);
var
CustomActionHelper: Codeunit "Custom Action Helper CCCAP";
CommandList: JsonArray;
CustomMessage: Text;
begin
if ActionName <> 'custom.simplePTE' then
exit;
//Récupère le paramètre message renseigné au paramétrage de la disposition des touches
CustomMessage := CustomActionHelper.GetRequestParameters(RequestPayload).Get('customParameter1');
//Génère une commande pour faire afficher ce message sur la caisse
CommandList.Add(CustomActionHelper.CreateResponseCommandMessage(CustomMessage));
ResponsePayload.Add('result', 'success');
ResponsePayload.Add('commands', CommandList);
end;
}
A propos de l'événement OnCustomAction
Cet événement est déclenché à chaque fois qu'une action personnalisée est exécutée depuis une caisse. Il est attendu que l'événement soit traité par un souscripteur.
Ce souscripteur peut utiliser l'objet RequestPayload, définit ci-après pour comprendre le contexte d'exécution et réaliser les actions appropriées. Il est attendu de la part du souscripteur de remplir le ResponsePayload avec au minimum la propriété result. Celle-ci doit avoir la valeur success. Si tel est le cas, Cherry Commerce peut exécuter localement une série de commandes. Vous pouvez typiquement afficher un message à l'utilisateur pour confirmer que les actions se sont bien déroulées dans Business Central ou lancer une succession d'actions pour parcourir chaque ligne du ticket et changer le % de remise de la ligne.
Définition de RequestPayload
La requête envoyée par Cherry Commerce possède la structure ci-dessous et permet à l'action personnalisée de réaliser les actions qu'elle souhaite.
{
"actionName": "", //Nom de l'action, débutant par "custom." à exécuter
"parameters": {
// Liste des paramètres de l'action sous la forme de clé/valeur
},
"context": {
"cashRegisterCode": "", //Code de la caisse
"clientAppVersion": "", //Numéro de version de l'application Cherry Commerce
"location": 0|1, //Indique le contexte d'exécution de l'action. Il peut s'agir d'un ticket (0) ou d'un devis (1)
"data": {
//Représente l'objet actuellement manipulé par Cherry Commerce dans le spécifié. Il peut s'agit de la version sérialisée d'un ticket ou d'un devis
},
"selection": 0 //Indique la ligne sélectionnée : -1 si aucune ligne n'est sélectionnée, sinon indique l'index de base 0 de la ligne sélectionnée.
}
}
Définition de ResponsePayload
La réponse renvoyée à Cherry Commerce doit avoir la structure suivante :
{
"result": "success",
"commands": [
{
"command": "{Nom de la commande}",
//Les autres propriétés sont les paramètres de la commande à exécuter.
}
//...Liste des commandes à faire exécuter à Cherry Commerce, ce tableau peut être vide.
]
}
Les commandes supportées sont les suivantes :
| Commande | Description | Paramètres |
|---|---|---|
| forceSync | Force une synchronisation des données avec Business Central | |
| message | Affiche un message à l'utilisateur. | content : (string) chaîne de caractère spécifiant le contenu de la boîte de dialogue. |
| notify | Afficher une notification à l'utilisateur. | content : (string) chaîne de caractère spécifiant le contenu de la notification. type : (string) peut prendre la valeur information ou error. duration : (integer) durée d'affichage (en millisecondes) de la notification. 0 signifie que la notification nécessite une action utilisateur pour disparaître. |
| selectLine | Place le curseur sur la ligne indiquée. | lineNumber : (integer) numéro de la ligne dans le contexte d'exécution actuel de Cherry Commerce. |
| Autres valeurs | Exécute une action. | Les paramètres dépendent de l'action utilisée. |
Limitations
Lorsque ces actions sont invoquées sur Cherry Commerce une connexion à Business Central est nécessaire.