A new Nayax Core attribute has been introduced that allows operators to dynamically update text, prices, and configurations on selection screens. This attribute enables sending structured data from the Device Control System (DCS) to the Vending Machine Controller (VMC). This information is then processed and displayed on the Marshall selection screen.

The attribute definition is as follows:

AttributeValue
ID7700
NameMarshall Screens Info
GroupVMC
Maximum Length400 characters

This sends a JSON-formatted string containing details about selection screens, including layout configurations, text labels, prices, and timing.

JSON Logic Recommendation

The JSON string should include necessary instructions for each selection screen. The format is flexible, allowing operators to specify only the required parameters.

See the structure in the code block below:

{
  "Screen Name 1": {
    "layout_id": <ID>,
    "content": {
      "layout_title": "<title>",
      "text_1": "<text>",
      "text_2": "<text>",
      "text_3": "<text>",
      "text_4": "<text>"
    },
    "prices": {
      "price_1": "<price>",
      "price_2": "<price>"
    },
    "timing": {
      "time_1": "<time>",
      "time_2": "<time>"
    },
    "buttons": "<comma-separated list of button IDs>"
  },
  "Screen Name 2": {
    "layout_id": <ID>,
    "content": { ... },
    "prices": { ... }
  }
}

🚧

Validate the JSON

The JSON validity and defined prices are solely the operator's responsibility.
It is highly recommended to validate the JSON using a JSON validator before sending it to a remote machine since incorrectly formatted JSON may cause display errors or unexpected behavior.

Example

See the JSON below. It is sending the instructions to update the display of an Air Vac machine.

{
  "Select product from 2 options": {
    "layout_id": 2,
    "content": {
      "layout_title": "Select Air/Vac",
      "text_1": "Air",
      "text_2": "$2",
      "text_3": "%c 5 min",
      "text_4": "Vac",
      "text_5": "$3",
      "text_6": "%c 10 min"
    },
    "prices": {
      "price_1": "2",
      "price_2": "3"
    },
    "buttons": "104"
  }
}

The packet built from this JSON is the following:

Packet = 0x01 0x02 0x0100 
0x02 0x0C 0x00 0x00 “Select Air/Vac”
0x02 0x08 0x01 0x00 “Air” 
0x02 0x08 0x01 0x01 “$2”
0x02 0x08 0x01 0x02 “%c 5 min”
0x02 0x08 0x02 0x00 “Vac”
0x02 0x08 0x02 0x01 “$3” 
0x02 0x08 0x02 0x02 “%c 10 min”
0x03 0x01 0x68

📘

Packet Creation

Packets are created automatically by the SDK or Nayax Core.

The image below would be the display result.