Skip to Content

if possible now to create plugins for the kiosk or hospitality mode?

I would like to know is if possible now to create plugins for the kiosk or hospitality mode?

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

2 Answers

  • Posted on Jan 28, 2019 at 06:27 PM

    Hello @isaacceo,

    you can develop plugins for these UI Modes but afaik it is currently not possible to inject your own javascript like you can in retail mode.

    Can you be more precise about what you do want to achieve?



    Add a comment
    10|10000 characters needed characters exceeded

    • Hello Isaac,

      depending on what you want to achieve, you currently have the following options:

      1. create a quick selection button in ccom where you can insert custom js code which could call your cco plugin via REST.
      2. There are some paths you can use to send JSON Data via a broadcaster.

      BroadcasterHolder.INSTANCE.getBroadcaster().broadcastActionForPath("/ws/tech", "myPlugin", oJSON);

      The serialized oJSON object (from net.sf.json.JSONObject) should look something like this:
      { "type": "event", "eventId": "your_event_id", "eventName": "SET_USER_DEFINED_MESSAGE", "eventPayload": { elements: [ "key", "value"], "width" : "200"}}

      With this you can send e.g. a message to the cashier which is displayed left of the logout and config button.

      If, when and how a method like the JSInject in Retail mode will be available I really don't know.
      But you can drop me a line with further details on what features your plugin should implement and maybe it is already possible with the given functionality.



  • Posted on Feb 02, 2019 at 07:58 PM

    Hello Robert:

    Let me take the opportunity to describe our requirement. Isaac works with me.

    We are trying to localize CCO for the Dominican Republic. As part of that process we need to accomplish the following:

    • When creating each invoice, the cashier must select one of the following four "types" of invoices:
    1. End customers
    2. Companies
    3. Government
    4. Special entities
    • For all types of invoices, except end customers, the Tax ID of the customer is required and needs to be captured by the cashier.
    • Each type of invoice has it's own independent sequential numbering (kind of like series in B1). Together with a prefix, we generally store that number in a UDF in B1.
    • Each numbering block (except the one for end customers) also has an expiration date which needs to be printed on the invoice. (we usually store that one in a UDF in B1, too).

    We love the UI of the kiosk mode and also have several prospects for restaurant mode, which has a lot of similarities with the kiosk mode, so we have been trying to figure out the correct events/hooks for our needs in kiosk mode. However, we have noticed that several events (even in the backend) are never fired in kiosk mode. Such is the case for example for this event, which works fine in Retail mode but not in kiosk mode:

    @PluginAt(pluginClass=IReceiptManager.class, method="dirtyStore", where=POSITION.BEFORE)

    So, I guess the main questions for us are these:

    • Which events/methods do you consider most appropiate for our scenario?
    • What is the most appropriate location/fields to store our UDF values once generated in our code? Are generic fields available, or do we have to create fields either in the RECEIPTS table or in any other table?
    • Can we hook into the method to send our UDFs to the B1i standard scenario or will we need to modify the standard scenario (we can do that if necessary)?

    With regards to selecting the invoice type, since injecting JS to the sales screen is not currently possible, we came up with two options:

    1. Using some QuickSelection buttons for invoice type selection (we would have to check if we can gather the tax ID using the method as well, but I would suppose so)
    2. Running a background app on the cashdesk PC, that allows selection of the invoice type (before finalizing the invoice) using the taskbar or system tray, and write those values (invoice type and tax id) to a file on the disk that can then be read by a plugin when the invoice is generated.
    3. For managing the numbering blocks we are considering a UI5/REST interface, to be installed either together with CCOM, or eventually managed completely by us in the SCP.

    So, I know it's been an extensive message, but this is more or less our scenario. Kindly let me know your thoughts to point us in the right direction if you can.

    Thanks in advance!

    Best regards,


    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.