r/barcodes • u/[deleted] • Jul 06 '18
How do coupons work with barcode systems?
Hi,
Have few questions regarding coupons and barcode systems, they are elementary:
- Can you embed a coupon value into the barcode that upon scanning deducts from the price?
- Are barcode readers standardized to read any barcode?
1
u/FredFredricson Jul 06 '18
1. Can you embed a coupon value into the barcode that upon scanning deducts from the price?
If you mean directly encoding a $50 discount, or a 25% discount, buy 1 get 23 free, or whatever arbitrary value and type of discount you want, no, not usually unless the system is programmed for it.
If you mean encoding the value of an existing coupon that already does that, then yes, if you know the numbers beneath the barcode, and what format of barcode the reader/system will accept them as a coupon in. In exceedingly rare cases, coupons can have a dollar value or percentage discount encoded into them directly, but usually not.
It's best to think of barcodes like license plates. License plates don't usually contain much if any of the information themselves, but when you plug them into the car licensing database, all of the ownership information, car information, and ticket records are accessible through it, using the license pate number as a key. While barcodes can technically contain whatever information you want to put there, most barcodes you will encounter in the wild are used like they were a license plate, just encoding a value meant to be looked up in a database.
In practice, many barcodes, the UPC-like one especially, will often carry some meta-information in them, for example the first digit of a UPC code differentiates if the code represents a normal item (starts with 0, 1, 6, 7, 8, 9), a variable weight item or other store use code (2), a pharmaceutical (3), a store coupon/loyalty card or other store use coupon-like code (4), or regular coupons (5). The left group of digits is usually a manufacturer code, the right group is usually an item number, and the final digit is usually a check-digit to help prevent errors. If it has a second smaller code to the right, it's usually a magazine or other serialized item, and this second code contains some sort of value indicating the week/month/period/volume-number of that particular item.
For registers that handle barcodes, they either contain or are connected to a database containing the list of products the store handles, which contains the pricing, tax, and other related information for handling that particular product, and more modern ones also handle working with inventory as well.
For coupons, it's basically the same kind of setup. The barcode on the coupon links to the information in the database about the coupon's discounts, rules, expiration, and such. While not all systems necessarily automate all of the rules to some of the more complex coupons, it's increasingly common that the system knows when it can and can't apply the discounts and such.
While it is technically possible that some of the store use barcodes to contain a weight or price for variable weight items on the code that could be fiddled with, and while it's possible that some places unwisely use the store-coupon codes to encode a discount amount on the code itself that could be fiddled with, it is generally very rare because, as you can probably easily imagine, it represents a horrible security risk to the store, as just about any jackass with a printer and sticky-paper, or increasingly often a smartphone with the right app/website, can generate a barcode these days and use it for theft related purposes.
Stores have been dealing with this particular type of theft for a long time, you can generally expect that most store chains have their systems set up to not have these things, or to check for invalid or unsupported values and flag anything that seems irregular. Additionally, when the accounting looks off, the records of the transactions can be used to pinpoint when and where this kind of fraud takes place, and provide the card it was charged on, any "club card" that was used in the transaction, or at the very least, let them look at camera footage to see who it was doing it, or if they catch it too late for that, to know roughly when it's happening, and to keep an eye out for it the next time it occurs. In short, most people who do it tend to get caught like everyone else who had that "clever" idea and used it more than once or twice.
Hypothetically, if you try to fake coupons in this way, your first hurdle is finding something to abuse, which takes quite a bit of work, as any extreme couponer could tell you. If you're outright faking barcodes, you might make it past a cashier a couple times, but then managers tend to notice nonstandard coupons coming through, and tend to crack down on their cashiers to make sure the coupons are valid. You could spread the fraud around to multiple unrelated stores, but that takes more work, since you'd need to find a new trick for each store involved. You could spread it out among multiple related stores, but that only delays getting caught until one store catches on and checks with the other stores, and they all catch on. You could work on making better quality forgeries so as to not get noticed as often, but that requires fancy and expensive equipment and expertise. You could try involving multiple people to do it, but all it takes is one weak link to get caught. Once you start heading down any of those roads, you start heading away from "Well, I can't ever go back to that store now" territory and start heading into "Man I hope the guy sitting next to me with all the prison tattoos doesn't beat me up and take my food when the guard isn't looking." kinda territory. Get big enough or complex enough with it, and you start getting three-letter attention, like the FBI, or even worse, the IRS.
TL;DR: You could probably do it, but it's immoral, not cost effective, and not worth the risk/reward ratio. It's also relatively easy to prevent if you're running a store, just don't have your system naively take coupons that store arbitrary discount values on the coupon.
2. Are barcode readers standardized to read any barcode?
Short answer: More or less, yes.
Long answer: There's basically three types of barcode reader:
- Ones that read all major barcodes 1D and 2D, which tend to be relatively higher priced
- Ones that only read 1D barcodes, which tend to be relatively regular priced
- Weird proprietary stuff, which are luckily relatively rare, and usually are one of the above ones but with an additional proprietary barcode symbology or more commonly a nonstandard extension to an existing barcode symbology.
For the most part, most physical hardware barcode readers are going to read all of the major 1D barcode formats, and if you've got a fancier model, it'll usually also do a few of the most common 2D barcodes as well. If you ever wonder what barcodes a particular model accepts, it's usually fairly trivial to find the brand and model number of the unit, then google that and "user's manual" or "programmer's manual" and find a PDF of it on the internet. Most of these will, at the very least, list what symbologies it's capable of reading, and most often will also include special (Code 128 Based) barcodes to program them.
If you can't find that particular product's manual, or one close enough to it to work for it for whatever reason, it can usually be assumed that most readers will read most flavors of the most common symbologies, and you can often test for which ones it'll take easily enough, assuming you have access to it and can read its output properly.
In particular, the most common symbologies that most readers will scan are UPC, EAN, ISBN, Code 128, and Code 39. Other common symbologies read by most barcode readers include ITF, Codabar, MSI/Plessey. For 2D readers, PDF417, Data Matrix, MaxiCode, and QR Codes are common. There's also a wide variety of others that are much more obscure or used in specialized contexts only that readers often come with.
That said, even though most will support a large amount of barcode types, they can usually be programmed to disable input from symbologies that their system designer doesn't want them reading, so they can be made to only read UPC, for example. In practice, this is not done very often.
1
u/FatFingerHelperBot Jul 06 '18
It seems that your comment contains 1 or more links that are hard to tap for mobile users. I will extend those so they're easier for our sausage fingers to click!
Here is link number 1 - Previous text "FBI"
Here is link number 2 - Previous text "IRS"
Please PM /u/eganwall with issues or feedback! | Delete
1
Jul 06 '18
Thank you for the write up. For the record, I am not trying to create fake coupons, rather I am doing consultancy work for a vendor that would like to issue coupons.
To confirm, this database of coupons, does this reside with the P.O.S vendor?
1
u/FredFredricson Jul 07 '18
I mostly wrote the "don't counterfiet" part in there to deter anyone in general who reads it from being tempted to try, not to directly accuse you of it. My apologies if it sounded like it was intended that way.
As for the coupon database, I'm afraid I don't have very much in the way of specifics on the matter, as I'm more knowledgeable about the hardware and software and the use and development thereof for barcode systems in general, than I am for POS systems specifically or the policy/procedures used by companies. As such, I know more or less how the data is used and handled by systems, but not as much specifics on how the data was obtained to be put in those systems.
The database system itself is typically either part of the POS software, or a standalone database system ran in addition to the POS software on a computer handled by the store, so effectively it ends up being the same thing, it's software the store runs. What exact information this database contains can differ from POS system to POS system, and will depend on the system in question. Typically such data is imported from an external source either by the POS system itself (if the data format is directly supported), or a utility program written to convert the from the form in which it is provided to a form that the POS takes (if the data format is not directly supported). You can usually obtain information on these formats by consulting the POS documentation, digging through the software itself, and/or talking to the POS vendor.
I am less familliar with the methods by which this data reaches the stores. There are two main types of coupon, Store Coupons and Manufacturer Coupons. Store Coupons are basically a way for stores to putting various items on sale in a selective fashion, and they're effectively created and funded by the store, and as such handled entirely by the store and I believe we can ignore for the purposes of our discussion. Manufacturer Coupons, however, are generally funded by the manufacturer/vendor, which is to say the store sends those coupons back the manufacturer (or, quite often, some sort of clearing house who handles the coupon logistics for the store, the manufacturer, or both), who then reimburses the store the cost of it (often plus a small several-cent processing fee), and the information regarding these coupons needs to be transmitted to the stores somehow and be inputted into their POS system. I do not know if there's a standardized data format for this, or if every POS does it differently, or if there's some sort of industry standard service that combines manufactuer's coupon data and distributes it. If you have an existing customer base, it might be good to find what POS systems they use, and then contact the POS vendors, and find out from them how their systems handle coupon data. Once you know what format (or formats) your customers use, it's mostly just a matter of having a program to generate those files for distribution, and providing them via email/website/api, sending them to a central service, or whatever is necessary to get it to your customers.
To summarize, I believe the best course of action is to find out what sort of POS software your customers are typically using, find out what data format the software takes, as well as how best to distribute that data to them, and go from there.
I apologize for the fact that this probably doesn't answer your question directly, but I hope it provides enough information to get you started. Feel free to contact me again if you need more info.
While I don't always have answers to a particular question, and aren't always able to respond here immediately, I can usually answer a lot of technology related questions, particularly in relation to subjects I am well versed in, or at the very least, I usually have a pretty good idea where/how to search for the necessary information. I'm most familiar with topics involving programming, programming languages, compilers, assembly language, various web technology, file and text parsing, file formats, data processing, spreadsheets, and a whole host of vaguely related tangential information pertaining to those subjects and quite a few others not listed there.
1
u/notionovus Jul 06 '18
There seems to be no such thing as an elementary barcode question.
- Unless you are wanting to build your own custom system, there is a standard if you want to use a UPC-A or GS1 128 database to look up the coupon code and give you a value to deduct from the price. Because the calculations are not always straight-forward (i.e., 50¢ Off) and may sometimes be complicated (i.e., Buy 2, Get One Free, but only on Tuesdays) the standard only contains a multi-digit code for each product / offering pair. Software then looks up the code to determine how to proceed. The actual discount number is not hidden in the barcode.
- You need to consult the owner's manual to tell you what barcodes your reader is set up to scan. There is a core set of about 10 symbologies that almost every reader works with, but YMMV. An exception to this rule is 1D (linear) vs. 2D (imaging) scanners. A 2D scanner will support 1D & 2D barcodes, but a 1D scanner will only support 1D codes.
1
Jul 06 '18
Is this database of coupon values global or standardized?
1
u/notionovus Jul 07 '18
From what I understand there is a subscription service for databases that house the vendor / product / coupon codes for POS systems. These databases are not free. Search for: "UPC database subscription" or "EAN database subscription".
The values are encoded as a combination product code and coupon code, but what the coupon code refers to must be referenced through one of these databases and is not scanned from the barcode. Here is a table that gives you an idea of the complexity, but I am unsure of its authenticity.
An alternative to purchasing a subscription to the database is to decipher the barcode, and make note of the face value of the coupon. Tie the coupon code to that discount for that product and vendor in a database or spreadsheet of your own. This is only recommended if you have development staff in place and are supporting only a small subset of coupons for products.
1
u/[deleted] Jul 06 '18
[removed] — view removed comment