What the Marks & Spencer (M&S) barcode is
The Marks & Spencer barcode is the UK retailer's own historical in-house barcode. bwip-js zero-pads a 7-digit value to 8 digits and delegates the entire bar pattern to its EAN-8 encoder -- at the encoding level, this is a real EAN-8 symbol with M&S's own "M"/"S" text presentation, not a separate symbology.
Generate it now
Enter your 7 or 8-digit value to see a live preview.
Valid input
The value must be 7 or 8 characters ("M&S barcode must be 7 or 8 characters"); a 7-character value is zero-padded to 8 digits before being handed to the underlying EAN-8 encoder, so it is subject to EAN-8's own digit and check-digit rules.
Key options
Supported options include includetext (show the human-readable text, flanked with literal "M" and "S" characters). bwip-js's own real default is false.
Output and printing
Export SVG for label artwork or PNG for a quick proof.
Common uses
The Marks & Spencer barcode historically appeared on M&S's own in-house retail labels before the retailer's move to standard EAN-13, and remains supported for reproducing that legacy label format.
Example
See the live preview above, seeded with a bwip-js-verified valid 7-digit value.
Size guidance
Since bwip-js delegates drawing to its own EAN-8 encoder, the Marks & Spencer barcode shares EAN-8's own bar-height and quiet-zone conventions.
Troubleshooting
A rejected value is usually the wrong character count (7 or 8 only) or a value that fails the underlying EAN-8 encoder's own digit/check-digit rules once zero-padded.
Related formats
Related formats: EAN-8 (the real underlying symbol the Marks & Spencer barcode delegates its drawing to) and EAN-13 (the standard retail barcode M&S itself moved to).
FAQ
Is the Marks & Spencer barcode a separate symbology from EAN-8?
No -- bwip-js zero-pads a 7-digit value to 8 digits and renders it with its own EAN-8 encoder. The only M&S-specific behavior is flanking the human-readable text with literal "M" and "S" characters when includetext is on.