Tracking labels are used to track individual parcels that move through the last mile of the parcel journey.
Label Requirements
Name | Required | Description |
---|---|---|
Parcelpoint logo | Yes | The Parcelpoint logo must appear on the label with a minimum size of 420px width or 112mm width (based on 6x4 label) |
Addressee | Yes | The full name of the customer must be clearly identifiable on the label and readable at arms length |
Address | Yes | The full destination address of the Parcelpoint location/customer's address |
Suburb | Yes | The destination suburb of the Parcelpoint location/customer's address |
State | Yes | The destination state of the Parcelpoint location/customer's address |
Postcode | Yes | The destination postcode of the Parcelpoint location/customer's address |
Sort Code | Yes | The sortation code for sorting the parcel to be delivered to the closest HUB to the customer's address |
SSCC Barcode | Yes | A GS1 SSCC compliant barcode and corresponding human-readable serial reference |
Verification | Yes | A prominent tag that is located near the tracking label to alert the driver of the verification method on delivery. This should always be AUTHORITY TO LEAVE unless otherwise agreed. |
Dead Weight | Yes | The total dead weight (kg) of the parcel to be clearly identifiable on the label and readable at arms length |
Cubic Weight | Yes | The total cubic weight (kg) of the parcel to be clearly identifiable on the label and readable at arms length. Formula: height x width x length x 250 |
Delivery Instructions | No | Any delivery instructions or communication that needs to be relay to the driver |
Sender Details | No | Details of the sender in the event of Return To Sender (RTS) |
Barcode Requirements
A GS1 Serial Shipping Container Code (SSCC) compliant barcode and corresponding human-readable serial reference must be included on the tracking label. Be sure to check that it can be scanned easily by the carrier.
A Company Prefix range will be issued to you by Parcelpoint, however, if you wish to use your own range, you will need to inform Parcelpoint to see if that range is available.
The barcode must meet the following requirements:
- Be in GS1-128 format (or at the very least use Code-128 format)
- Be at least 78mm width
- Be at least 26mm height
- Human-readable SSCC Number should have a font size of at least 10pt
- Spacing around the barcode should be at least 5mm of white space
A GS1-128 SSCC barcode must include the following structure:
GS1 App ID | Ext. Digit | GS1 Company Prefix | Serial Reference | Checksum |
---|---|---|---|---|
00 | Single digit (0-9) | 8 digit number (0-9) | 8 digit number (0-9) | Single digit (0-9) |
- Parcelpoint will supply you with a Extension Digit and Company Prefix
- The Serial Reference can be any numerical serial that is 8 digits in length (99.9M barcodes)
An example of a barcode would be as follows:
How to generate the SSCC
To generate the SSCC, use the generateSSCC
function:
function generateSSCC(i) {
var extDigit = '1', // Parcelpoint to supply Ext. Digit
companyPrefix = '93499680', // Parcelpoint to supply Company Prefix
barcode = extDigit + companyPrefix + generateSerial(i);
sscc = barcode + generateChecksum(barcode);
console.log(sscc + " " + isValidSSCC(sscc));
return sscc;
}
How to calculate the checksum
- The check digit is mathematically calculated and ensures the whole number is correct.
- Instructions for calculating the check digit are available from GS1 (Note: The AI (00) is not part of the Check Digit calculation)
- Check digit computation rules are on p465-466 of GS1 General Specifications Version 15 (issue 2), Jan-2015
- You can use the online check digit checker
To generate the checksum, use the generateChecksum
function:
function generateChecksum(barcode) {
var arr = barcode.substring(0,barcode.length).split("").reverse();
var oddTotal = 0, evenTotal = 0;
for (var i=0; i<arr.length; i++) {
if (isNaN(arr[i])) {
return false;
}
else if (i % 2 == 0) {
oddTotal += Number(arr[i]) * 3;
}
else {
evenTotal += Number(arr[i]); }
}
checkSum = (10 - ((evenTotal + oddTotal) % 10)) % 10;
return checkSum;
}
Checking the barcode for errors
It's recommended that spot test your barcode to make sure that the barcode is being generated correctly.
To test if the SSCC is valid use the isValidSSCC
function:
function isValidSSCC(sscc) {
if (sscc.length < 8 || sscc.length > 18 ||
(sscc.length != 8 && sscc.length != 12 && sscc.length != 13 && sscc.length != 14 && sscc.length != 18)) {
return false;
}
let lastDigit = Number(sscc.substring(sscc.length - 1));
let checkSum = 0;
if (isNaN(lastDigit)) {
return false;
}
let arr = sscc.substring(0,sscc.length - 1).split("").reverse();
let oddTotal = 0, evenTotal = 0;
for (var i=0; i<arr.length; i++) {
if (isNaN(arr[i])) {
return false;
}
else if (i % 2 == 0) {
oddTotal += Number(arr[i]) * 3;
}
else {
evenTotal += Number(arr[i]);
}
}
checkSum = (10 - ((evenTotal + oddTotal) % 10)) % 10;
return checkSum == lastDigit;
}