Table of Contents

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 :

  1. Ajouter une dépendance à Cherry Commerce dans son fichier app.json.
  2. Créer une enumextension sur l'objet Key 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";
    }
}
  1. Créer un codeunit implémentant l'interface Key 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 : customParameter1 et customParameter2, tous deux de type Text.

  1. 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.