Path
iVendNext Desk → Retail → Setup → 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
- Navigate to Barcode Mask in the Retail Setup section of iVendNext Desk.
- 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 active masks. If another active mask uses the same sentinel, the system will block the save with a validation error.
- 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.
- 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:
- Set the Value Type — choose from Item Barcode, Item Code, Price, Quantity, Serial or Batch, or Skip Characters.
- For Fixed Length masks, enter the Segment Length — the number of characters this segment occupies.
- 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 first segment must always 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.
- When the mask is fully configured and verified, leave the Disabled checkbox unchecked to keep the mask active. Active masks are loaded to POS terminals during session initialisation and applied automatically during scanning.
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 Segment 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 all active mask definitions. 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.
Disabled Flag
Each mask has a Disabled checkbox. When checked, the mask is completely excluded from POS scanning — it is not loaded to terminals during session initialisation and cannot match any barcode. Disabling a mask is the correct approach when a mask needs to be temporarily taken out of service, such as when a supplier changes their barcode format and the new mask is being configured. Disabled masks remain in the system for reference and can be re-enabled at any time. Deleting a mask is only possible when no items are currently assigned to it.
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 reference the Mask ID from the item configuration in iVendNext Desk.
Offline Operation
Barcode masking works fully when a POS terminal is operating offline. During POS session initialisation, all active mask definitions are 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.