Printing QR codes

Every table gets its own QR code, generated automatically once the table exists. This page covers getting it onto the actual table.

Printing from your browser

The QR codes screen is built for direct printing:

  1. Go to your section, or the dedicated QR codes view, and select the tables you want to print, or print all of them at once.
  2. Press Ctrl+P (Windows/Linux) or Cmd+P (Mac).
  3. In the print dialog, set margins to minimum, enable background graphics (needed for QR contrast), and choose landscape for more codes per page.

Paper recommendations

TypeUseDurability
Adhesive labelsStick directly on tablesWeeks, indoors
Laminated paperPlace under glass or plasticMonths
Card stockTemporary or event useDays
Waterproof labelsOutdoor seatingMonths

For everyday use, adhesive vinyl labels or laminated cards are the best balance of cost and durability.

Sizing

Codes render as SVG, so they scale without losing quality. Minimum recommended size is about 3×3cm (roughly 1.2 inches). If guests regularly struggle to scan, try a larger print size before assuming something else is wrong.

Troubleshooting scanning issues

Code won’t scan at all

  • Check it isn’t smudged, torn, or covered in glare from a glossy table surface.
  • Try a different lighting angle.
  • Test the code’s own URL directly in a browser to rule out a printing issue versus a setup issue.

Scans, but doesn’t look right

  • Confirm the menu for that table is actually published and has at least one active product.
  • Make sure your restaurant isn’t currently marked closed, see Dashboard.

Bulk printing

For restaurants with many tables, print in batches rather than all at once, filter by a range of table numbers, print that batch, then continue with the next. This avoids browser slowdowns on very large print jobs.

Customizing the printed text

The table-number text shown on a printed code (beyond the QR graphic itself) is controlled by a template in your restaurant’s QR settings, see Settings. The “Badge” style’s header text (“Scan to order”) isn’t part of that template — it’s translated automatically to match your dashboard’s language instead.