QR Codes for a Shop Counter or a Menu
A QR code is a square that turns back into text when a phone camera sees it. For a shop, that text should be a short URL you control: a menu, a map pin, a WhatsApp chat link, or a one-page price list. I make the square with the QR code generator, then I scan it before anyone else does.
Put a short link in the code, not a novel
Long URLs make denser codes, and dense codes fail more often on a wrinkled menu or a photo taken at an angle. If the menu lives on a long address, make a short path. A slug keeps that path readable. You can change the page later and, if the short link is yours, keep the printed code working. You cannot edit a code that was printed with the old long URL baked in, except by printing again.
Do not put a Wi-Fi password, a full address plus a phone plus a CNIC, or any other pile of private text into a code that customers will photograph. A code on a counter will be posted somewhere you did not plan. A link to a public menu is fine. A password is not.
Test the screen, then test the paper
Generate the code and scan it from the laptop with your phone. If it fails, shorten the URL and leave a quiet margin of empty space around the square. A code jammed against a logo will not scan.
Then print one sample on the paper you will actually use. Glossy lamination and a dark tablecloth both cause failures that a bright monitor hides. Scan the paper in the lighting of the shop, not only under a desk lamp. If the code is for a slide in a hall, it has to be large enough for the back row. Size is not a detail.
Colour matters less than contrast. Dark modules on a light background work. A brand colour that is mid-grey on mid-grey does not. If you must use a colour, keep the contrast high and test it. Inverting the code to look clever is a good way to make cheap scanner apps give up.
What the code should open
A menu PDF or a simple page that loads on a slow phone. Compress the images on that page or people will give up before they see the prices. A WhatsApp link is fine if someone will actually answer it. A map link is better than a paragraph of directions if the lane is hard to describe.
Write a line of real text next to the code: "Menu" or "Directions". The square does not explain itself to everyone, and some people will still type the address if you print that too.
When the destination changes
If you own the short link, point it at the new menu and leave the print on the table. If the code contains the full old URL, reprint. There is no invisible update. I keep a note of which print uses which link so I do not throw away a stack of cards that still work.
Track nothing sneaky. A normal link is enough. If you add a mess of tracking parameters, the code gets denser and the page looks untrustworthy when someone glances at the address bar. URL encoding is for a query value with a space, not for hiding where the code goes.
A small launch checklist
The page loads on mobile data. The phone scan from the screen works. The phone scan from the printed sample works. The quiet margin is intact after the designer added a border. The text beside the code says what will open. The link is one you can change or you have accepted that a change means a reprint.
That is the whole job. Generate the code, scan it yourself, and print the version that survived the paper test.
After the cards are printed
Put one card in the drawer with the date and the URL written on the back, so next month you know which stack is current. If a customer says the code does not work, scan their copy before you reprint a hundred. A scratched laminate and a dead page look the same from across the counter. Open the URL on your phone on mobile data, not only on the shop Wi-Fi. If the page is heavy, compress the images. The code can be perfect and the menu can still fail because the photo of the biryani is 3 MB.
Keep the code away from folds. A menu that creases through the square will fail in a way no generator can fix after the fact. Leave margin, print once, scan the paper, then print the batch. If you redesign the menu next month, change the page behind the short link first and scan an old card before you throw the stack away. Reprint only when the old code itself is wrong, not when the biryani photo changed.