How Barcode Generation, Label Printing and SKU Scanning Work
Learn how Inventory Manager creates permanent SKU barcodes, previews and prints product labels, and lets Inventory Manager, Order Manager and Staff Bill find the exact colour-size type by scanning.
My Local Shops uses one barcode to connect a physical garment or footwear piece with its exact digital SKU. Inventory Manager generates the SKU, prints it as a Code 128 label, and scans it to open Product Detail. The same label can be scanned while creating an invoice in Order Manager or Staff Bill.
For a wholesaler, the important result is not merely having black lines on a sticker. It is being able to distinguish Blue / M from Blue / L, find the correct stock record without typing a long code, and add the correct type to a bill without searching the complete catalogue.
This guide explains what the barcode contains, how labels are prepared and printed, what is stored on the phone, and what each app does after a scan.
The complete barcode workflow
| Stage | App | What happens |
|---|---|---|
| Create product | Inventory Manager | A permanent base SKU is generated for the product |
| Create variants | Inventory Manager | Colour and size are added to produce an exact SKU for each type |
| Preview label | Inventory Manager | Product name, optional identity details, colour/size and barcode are shown before printing |
| Print labels | Inventory Manager | The phone sends Code 128 label commands directly to the selected Bluetooth thermal printer |
| Attach labels | Physical stock | The correct label is placed on the matching garment, footwear box or stock packet |
| Scan for inventory | Inventory Manager | The exact SKU is found and its Product Detail opens |
| Scan for billing | Order Manager or Staff Bill | The exact active SKU is checked at the invoice location, then quantity and price are confirmed |
The barcode does not create a separate product identity. It is a machine-readable form of the SKU already stored on the product.
Product, item code, SKU and barcode are different
These four terms should not be mixed.
Product
The common design recognised by the buyer, such as Mickey Mouse Printed T-shirt.
Item code
An optional supplier or catalogue code shared by the design, such as 6120. It helps name or item-code search, but it may be the same across many colour-size variants.
SKU or stock code
The permanent identity of one exact sellable type, such as:
MLS-7K3F9Q-BLUE-M
The same product may have:
MLS-7K3F9Q-BLUE-S;MLS-7K3F9Q-BLUE-M;MLS-7K3F9Q-BLUE-L; andMLS-7K3F9Q-RED-M.
Barcode
The printed Code 128 representation of the exact SKU. Scanning the lines returns the SKU text, which the app uses for an exact product lookup.
| Information | Common product or exact type? | Used by barcode scan? |
|---|---|---|
| Product name | Common product | No fuzzy scan search |
| Item code 6120 | Common product | Not the printed barcode value |
SKU MLS-7K3F9Q-BLUE-M | Exact type | Yes |
| Code 128 lines | Exact type | Decodes to the SKU |
This is why every colour-size type needs its own label. Printing the common item code on all sizes would tell the app which design was scanned, but not which stock quantity must be opened or billed.
How Inventory Manager generates the SKU
When a new product is created, Inventory Manager generates a base using:
- the seller's configured SKU prefix; and
- a six-character random code that avoids visually confusing characters such as
0/Oand1/I.
The default prefix is MLS. A simplified generated base may be:
MLS-7K3F9Q
For a multi-variant product, the entered colour and size are appended:
MLS-7K3F9Q-RED-M
MLS-7K3F9Q-NAVY BLUE-L
If only one of colour or size applies, the SKU uses the available value without adding an empty separator.
The complete product's variants share the same base, while the suffix identifies the exact type. This makes related SKUs understandable to a human without sacrificing unique lookup.
Read how to create a product with colours, sizes and SKUs for the complete product-entry workflow.
Why users cannot type or replace the SKU manually
The generated SKU is read-only during new product creation. A restock keeps the existing SKU instead of accepting a replacement.
This protects connections that may already depend on that identity:
- printed labels attached to physical pieces;
- stock-movement history;
- invoice line items;
- exact product lookup;
- variant-group membership; and
- records created by Inventory Manager, Order Manager and Staff Bill.
Suppose a Blue / M label was printed as MLS-7K3F9Q-BLUE-M, then the SKU was casually edited in the database to a different value. The label on every existing package would point to an identity the scanner could no longer find.
Price, quantity, cost, photo and availability may legitimately change. The identity printed on the label should remain stable.
Can the SKU prefix be changed?
Inventory Manager Settings includes SKU Prefix. A seller may choose a short business-specific prefix for future generated SKUs. Use a simple alphanumeric value that remains clear when printed.
Changing the configured prefix affects newly generated SKU bases. It should not rename existing SKUs or invalidate labels already attached to stock.
The prefix is a seller setting stored with the owner's account. The selected printer, by contrast, is a device-specific setting explained later.
Where to print a label
Printing starts from the exact SKU's Product Detail, not from the common grouped-product card.
In Inventory Manager:
- open Products;
- open the required product;
- select the exact colour-size type;
- open Product Detail; and
- tap Print label.
Starting from the exact type ensures that the preview receives the correct:
- product name;
- item code when available;
- colour and size;
- SKU; and
- current stock quantity used as the initial number of labels.
Always verify the colour and size before printing a large batch. A perfectly printed Blue / M barcode attached to Blue / L stock still creates an operational mistake.
What appears on the label
The standard label contains:
- product name;
- colour and size when present;
- optional shop information when selected;
- the Code 128 barcode; and
- the human-readable SKU below the barcode.
The owner can optionally show:
- item code alongside the product name;
- shop name; and
- shop phone number.
Shop name and phone share one compact line when both are enabled. These details are optional because a small garment label has limited space, and some wholesalers want only internal stock identity.
The product name shown in the label form can be shortened or changed for that print. This changes the label output; it does not rename the saved product record.
The printed name is capped to fit one line. Long names are shortened cleanly rather than being allowed to collide with the barcode.
Preview before using label stock
The Print Label screen shows a 2:1 preview matching the intended 50 mm × 25 mm label shape.
The preview updates when the owner:
- edits the label text;
- turns item code on or off;
- turns shop name on or off; or
- turns the phone number on or off.
This lets the owner notice a crowded or unclear label before consuming the physical roll.
The preview is a representation of the final layout. Actual darkness, feed position and margins also depend on the printer, label roll and hardware calibration.
Choose how many labels to print
The screen initially uses the SKU's current total stock as the suggested print quantity, limited to the supported range. This suits the common case where a newly received or restocked batch needs one label per piece.
Review the number before printing. A SKU may exist in more than one location, or some pieces may already have labels.
The owner can:
- tap minus or plus for small changes; or
- type the required number for a large batch.
The supported range is 1 to 1,000 labels in one request. When more than one label is selected, the app reminds the owner to make sure the roll contains enough labels.
The selected content is repeated in one printer data stream, so printing 200 identical labels does not require 200 separate taps or 200 separate network requests.
Pair the Bluetooth label printer correctly
On Android, Inventory Manager lists devices that are already paired in the phone's Bluetooth settings.
The recommended setup sequence is:
- switch on the compatible Bluetooth thermal label printer;
- open the Android phone's Bluetooth settings;
- pair the printer with the phone;
- return to Inventory Manager;
- open Settings → Label Printer or tap Connect Printer from the label screen;
- allow the Nearby devices permissions;
- select the printer from Paired devices; and
- wait for confirmation that it has been saved as the label printer.
If Bluetooth is off, turn it on and pull down to refresh. If the printer does not appear, confirm that Android itself shows it as paired before returning to the app.
If Nearby devices permission was permanently denied, the app provides an Open Settings route so it can be enabled from Android application settings.
Printer selection is stored only on that device
The selected printer name and Bluetooth MAC address are saved in local phone preferences. They are not written to Firestore.
This is intentional:
- a printer paired to Shop 1's phone may not exist near Shop 2;
- the Bluetooth MAC address is useful only to a device that can reach that printer; and
- syncing it through the cloud would make another phone try to use unavailable hardware.
If the owner changes phones, reinstalls the application or uses another device for labels, pair and select the printer on that device.
The choices for showing item code, shop name and phone are also remembered locally for convenience. Review them when a different type of label is required.
How Inventory Manager sends the print
The application sends native ESC/POS commands directly over Bluetooth. It asks the printer firmware to render a Code 128 barcode instead of converting the barcode into a large image first.
This approach gives sharper barcode lines and more reliable scanning on compact thermal labels. It also avoids uploading a label image to Firebase Storage or downloading a print file from the cloud.
Printing itself is a local phone-to-printer operation. It does not create a Firestore document for every label and does not require one Firebase Storage download per copy.
The configured print profile uses a compact 58 mm printer width to produce the intended 50 mm label layout. The app does not send a paper-cut command because small die-cut label printers normally advance using the roll's gap sensor rather than a cutter blade.
Hardware implementations vary. Before printing hundreds of labels, test one copy on the actual printer and roll, then confirm that the phone camera can scan it.
What happens if printing fails?
The Print Label screen reports whether:
- the label was sent successfully;
- the phone could not connect to the selected printer; or
- writing the print data failed.
If connection fails:
- confirm the printer is switched on;
- keep it near the phone;
- confirm Bluetooth is on;
- verify Android still shows the device as paired;
- reopen Label Printer and select it again if necessary; and
- print one test label.
Do not immediately submit the same 200-label job repeatedly. First confirm whether the printer received the earlier request, otherwise duplicate labels may be produced when the connection resumes.
Scan a label in Inventory Manager
Inventory Manager provides scan entry points from Home and the Product Catalogue.
To find an item:
- tap the scanner icon;
- allow camera permission;
- place the printed barcode inside the frame; and
- use the torch button when the stockroom is dark.
When a valid SKU-shaped Code 128 barcode is detected, the phone gives success feedback and looks for an exact SKU belonging to the signed-in seller.
If found, the app opens that SKU's Product Detail. From there the owner can review its image, colour, size, stock by location, average cost, latest cost, selling price, label and movement information.
When scanning from a location-filtered catalogue, the item must belong to that location. Otherwise the app explains that the product is not at the selected shop or godown.
If no matching product exists under that owner, the app shows No product found for that code.
Why unrelated QR codes and barcodes are ignored
The scanner is configured for Code 128 and validates whether the decoded value resembles the system's SKU structure.
This prevents a camera pointed around a counter from treating unrelated content as stock, including:
- a Wi-Fi QR code;
- a UPI payment QR code;
- a website URL; or
- an arbitrary manufacturer code that is not the Inventory Manager SKU.
The app continues scanning until it sees a valid SKU-shaped Code 128 value. This barcode feature is therefore not a general QR-code reader and does not automatically import a manufacturer's EAN or UPC identity.
Scan a product while creating an invoice
Order Manager and Staff Bill show Scan in Create Invoice.
The billing flow is:
- select the party first;
- confirm the billing location;
- tap Scan;
- scan the Inventory Manager label;
- let the app find the exact active SKU for the owner;
- confirm quantity, selling price, HSN and GST information; and
- add the line to the invoice.
Scanning is a faster product-selection method. It does not silently add a fixed quantity or accept an old price without review.
If that SKU has no stock at the invoice location, the app reports that it has no stock there instead of using stock from another shop. If the barcode does not match an active SKU owned by the business, it is not added.
Staff Bill performs the lookup inside the linked owner's catalogue, not across every subscriber's products. A staff user cannot scan another seller's label and gain access to that seller's inventory.
The invoice's final stock-saving transaction still protects the latest available quantity. Scanning a label does not reserve stock indefinitely or bypass concurrent-sale validation.
Example: billing one product with several sizes
Suppose a buyer wants:
- Blue / M: 10 pieces;
- Blue / L: 12 pieces; and
- Red / M: 8 pieces.
Each physical type has a different barcode because each has a different SKU.
The billing staff can scan Blue / M, enter 10 and confirm; scan Blue / L, enter 12 and confirm; then scan Red / M, enter 8 and confirm.
Alternatively, for the common wholesale case where many variants of one design are sold together, the staff can use the grouped product picker and enter quantities for several types in one screen. Barcode scanning is most useful when the physical pieces or packages are already at the counter and the exact SKU must be identified immediately.
The two workflows complement each other:
| Situation | Faster choice |
|---|---|
| Buyer selects several variants of one known design | Grouped product picker |
| Staff is holding one labelled package and needs its exact type | Barcode scan |
| Owner needs to inspect an unidentified stock piece | Inventory Manager scan |
| Supplier item code is known but no label is available | Name/item-code search |
Cost and data-use behaviour
The barcode system is designed to avoid unnecessary backend work:
- the label is generated from product information already loaded on Product Detail;
- the printer choice and label-display preferences are device-local;
- printing goes directly over Bluetooth;
- each scan runs an exact seller-and-SKU lookup instead of downloading the complete product catalogue; and
- the query is limited to the matching result.
This is more efficient than fetching hundreds or thousands of products on every scan and searching them on the phone.
The camera image is used for detection on the device. The barcode scan does not need to upload a photo of the label to Firebase Storage.
Good physical labelling practice
Software can identify only the barcode it is shown. A simple shop procedure prevents most real-world mistakes:
- keep one exact colour-size batch on the counter while printing;
- verify the Product Detail colour and size;
- print one test label;
- scan the test label back into Inventory Manager;
- confirm that the expected SKU opens;
- print the remaining quantity; and
- finish attaching those labels before opening the next variant.
Do not print labels for Blue / M, Blue / L and Red / M together and leave three loose rolls or piles for staff to identify from memory.
For footwear, attach the label consistently to the box or stock tag rather than covering size, colour or manufacturer safety information needed by staff and buyers.
Common mistakes to avoid
Printing the same label for every variant
Each colour-size SKU requires its own barcode. The common item code is not enough to deduct exact stock.
Expecting a supplier barcode to work automatically
The current scanner looks for the Inventory Manager-generated SKU. It does not map every manufacturer EAN, UPC or QR code to a product.
Changing the label text and expecting the product name to change
The editable name on Print Label controls that print only. Edit the saved product through Product Detail when the catalogue name itself is wrong.
Printing the suggested quantity without checking
The initial number is a convenience based on current total stock. Some pieces may already be labelled or may be stored elsewhere.
Trying to discover an unpaired printer inside the app
Pair it in Android Bluetooth settings first, then select it in Inventory Manager.
Scanning before selecting an invoice party
Order Manager and Staff Bill require the party first so the invoice workflow has the necessary customer context.
Treating scan as stock reservation
The final invoice save validates current stock. Another completed sale can change availability after scanning.
Frequently asked questions
Which barcode format does the app print?
Code 128 containing the exact system-generated SKU.
Is the barcode the same as the item code?
No. The item code may identify the common design. The barcode identifies one exact colour-size SKU.
Does every piece need a label?
That depends on the business's physical process. The screen can print one label or a batch up to 1,000. Some wholesalers label each piece; others label an inner pack or box representing one exact SKU.
Can the shop name and phone be printed?
Yes, when those values are available. They are optional toggles and share one compact label line.
Is a printer compulsory for using Inventory Manager?
No. Products can still be searched by name, item code or SKU, and invoices can use the grouped product picker. Printing is an operational shortcut for physical identification.
Does the printer setting follow the owner to another phone?
No. Bluetooth printer selection is device-local and must be configured on the phone that will print.
Does scanning download the entire product catalogue?
No. It performs an exact SKU lookup restricted to the relevant seller.
Can Inventory Manager scan a product that belongs to another subscriber?
No. The lookup includes the signed-in seller's ID. Billing staff searches only within the linked owner's catalogue.
What if the SKU is out of stock at the billing shop?
Order Manager or Staff Bill reports that the SKU has no stock at the selected location and does not add it as available inventory.
Will changing price or quantity invalidate an old label?
No. Those values can change while the SKU identity remains the same. The printed label continues to identify that SKU.
One physical label, one exact business identity
The My Local Shops barcode workflow begins with a protected SKU, not an arbitrary sticker. Inventory Manager turns that SKU into a previewed Code 128 label and prints it directly to a selected Bluetooth thermal printer. Inventory Manager can scan it for product inspection, while Order Manager and Staff Bill can scan it for exact invoice selection.
Used carefully, this gives a small wholesale team a fast bridge between the piece on the shelf and the correct colour-size record in the cloud—without downloading the complete catalogue, exposing another seller's products or relying on staff memory.
Continue with how to restock, transfer and remove inventory safely, or read the complete Inventory Manager guide.
