Path
iVendNext Desk, then search for Barcode Mask
Prerequisites
Before you create barcode masks, ensure the following are in place:
- You have the Retail Manager role in iVendNext Desk.
- The items that will use masked barcodes are already created in iVendNext with their standard item codes or barcodes configured.
- You have the barcode specification from your supplier, labelling system, or internal team — including the total barcode length (for fixed-length formats), the segment order, the data type in each segment, and the scale factors for any price or quantity values.
How to Create a Barcode Mask
- In iVendNext Desk, search for Barcode Mask and open the list.
- Click New to open a blank Barcode Mask form.
- Enter a unique Mask ID that clearly identifies the mask's purpose — for example, PRODUCE01 or PHARMA-BATCH. This becomes the document name and must be unique across all masks in the system.
- Optionally, enter a Description to explain what the mask handles. This is useful when multiple masks cover similar product categories.
- Set the Mask Type — select Fixed Length if every segment occupies the same number of characters in every barcode, or select Delimiter if segments are separated by a consistent character and may vary in length.
- Enter the Start Sentinel — exactly two characters that identify which barcodes this mask should process. The sentinel must be unique across all masks. If another mask uses the same sentinel, the screen blocks the save and says "Start Sentinel 'XX' is already used by Barcode Mask 'name'. Please use a unique Start Sentinel."
- If you selected Fixed Length, enter the Barcode Length — the total number of characters in the barcode body, not counting the two-character sentinel. This value must exactly equal the sum of all segment lengths you define in the next step. The sentinel plus the body can be at most 100 characters.
- If you selected Delimiter, enter the Delimiter character that separates segments in the barcode string.
- In the Mask Segments child table, add one row for each segment in the barcode. For each row:
- Enter the Order: 1 for the first segment, then 2, 3 and so on.
- Set the Value Type — choose from Item Barcode, Item Code, Price, Quantity, Serial or Batch, Expiry Date, or Skip Characters. Use each type once, except Skip Characters.
- For Fixed Length masks, enter the Length — the number of characters this segment occupies. An Expiry Date segment is always 6 characters, written year, month, day.
- For Price and Quantity segments, enter the Factor — the scale multiplier that converts the raw integer in the barcode to its actual decimal value (for example, a factor of 100 converts the raw value 00250 to 2.50).
- The segment with the lowest Order is the first segment. It must be an item identification type, either Item Barcode or Item Code.
- Save the record. The system validates that the sum of all segment lengths equals the declared Barcode Length (for Fixed Length masks). If they do not match, the save is blocked with a message showing the discrepancy.
- Every saved mask is loaded to the till when a session starts, and the till applies it when a scan starts with the sentinel.
Features
Fixed-Length and Delimiter Parsing
Barcode Masking supports two parsing strategies to match the format used by your supplier or labelling system.
Fixed Length masks parse the barcode by character position. Each segment occupies a defined number of characters in a fixed sequence, starting immediately after the two-character sentinel. The total of all segment lengths must equal the declared Barcode Length. This format is common for barcodes produced by weighing scales, deli counters, and produce labelling equipment.
Delimiter masks parse the barcode by splitting the string on a separator character. Each token is mapped to a segment row in order. There is no Barcode Length requirement and no Length per row — the parser works from the delimiter splits alone. This format suits barcodes generated by systems that produce variable-length fields.
Start Sentinel Matching
When a cashier scans a barcode at an iVendNext POS terminal, the system reads the first two characters of the scanned string and checks them against every mask. If the two characters match a mask's Start Sentinel, the masking engine takes over and parses the barcode according to that mask's segment configuration. If no sentinel matches, the barcode is passed to the standard item resolution engine without any modification. This means that non-masked barcodes are completely unaffected by the presence of mask configurations in the system.
Embedded Price and Quantity
When a barcode contains a Price or Quantity segment, the value extracted from the barcode is applied to the POS transaction line for that scan. The extracted price becomes the selling price on the line — the item master price is not changed and is not used for that transaction. The extracted quantity is applied as the line quantity, capturing the exact weight or count encoded at the time of labelling.
The Factor field on each Price or Quantity segment is essential for accuracy. Because barcodes carry only integers, the factor converts the raw value to its correct decimal form. This factor must match the convention used by the system that produced the barcode. A mismatch will result in prices or quantities that are off by a multiple.
Serial and Batch Pre-Population
If the barcode contains a Serial or Batch segment, the extracted value is pre-populated on the transaction line automatically. For items that require serial or batch tracking, this eliminates the separate manual entry step that would otherwise be required after scanning.
Skip Characters
Any portion of the barcode that carries no useful data — check digits, technical filler, or padding — can be declared as a Skip Characters segment. The system parses these characters positionally and discards them. Skip Characters segments count towards the total Barcode Length in fixed-length masks but produce no output.
Taking a Mask Out of Use
To stop a mask matching, delete it. The till loads every mask you save. The screen refuses the delete while an item still has that mask in its Barcode Mask field. Clear the field on those items first. If a supplier changes a barcode format, edit the mask or add a mask with a different sentinel.
Assigning a Mask to an Item
A barcode mask takes effect for a specific item when that item's barcode matches the mask's sentinel and segment structure. Items do not need to be explicitly linked to a mask — the sentinel match during scanning is what determines which mask applies. However, if your setup requires explicit item-to-mask assignment, you can pick the mask in the Barcode Mask field on the item.
Offline Operation
Barcode masking works fully when a POS terminal is operating offline. When a POS session starts, every mask is downloaded and cached in the browser on the POS device. The masking engine runs entirely in the browser using this cached data — no network request is needed to apply a mask during a scan. Transactions processed offline with masked barcodes are merged normally when connectivity is restored, with all masked data preserved on the relevant lines.
Barcode Masked Flag on Transaction Lines
Every POS invoice line carries a Barcode Masked field. When a mask is applied during a scan — meaning the price or quantity on a line was derived from the barcode rather than from the item master or a price list — this field is set to Yes. The flag is visible on the POS Invoice and carries through to the Sales Invoice when the POS session is merged. It can be filtered in reports, allowing supervisors and finance teams to identify at a glance which lines had their price or quantity set by a barcode scan rather than by a standard pricing rule.