Die Erstellung von QR-Codes in großen Mengen besteht aus zwei API-Aufrufen pro Zeile und einem Ordner am Ende. Erstellen Sie für jede Zieladresse einen Kurzlink, rendern Sie für diesen Kurzlink einen QR-Code und schreiben Sie SVG und PNG auf die Festplatte. Aus einer Tabelle mit 5000 Produkten werden in wenigen Minuten 5000 druckfertige Dateien.
Das Werkzeug ist nicht die entscheidende Frage, sondern das, was der Code codiert. Codieren Sie die Zieladresse direkt, ist der Code in dem Moment unveränderlich, in dem er in den Druck geht. Eine einzige falsche URL in einer Auflage von 5000 Aufklebern bedeutet dann, dass die gesamte Auflage unbrauchbar ist. Codieren Sie dagegen einen von Ihnen kontrollierten Kurzlink, bleibt die Zieladresse dauerhaft bearbeitbar, während jeder Code unauffällig seine eigenen Scans meldet.
Erstellen Sie nur einen Code statt Tausender? So erstellen Sie einen QR-Code ist die einfachere Anleitung, und QR-Code-Kampagne von Grund auf behandelt Platzierung und Messung.
Die Pipeline in vier Phasen
Behalten Sie in der CSV eine id-Spalte bei, auch wenn sie überflüssig wirkt. Sie wird zum Dateinamen, zum Idempotenzschlüssel und zu dem Wert, anhand dessen Sie den Abgleich durchführen, wenn das Designteam Ihnen zurückmeldet: "Code 412 ist falsch". Ohne sie gleichen Sie anhand von URLs ab, und URLs sind lang und leicht falsch abzutippen.
import csv, base64, hashlib, pathlib, os, requests
API = "https://api.elido.app"
HEAD = {"Authorization": f"Bearer {os.environ['ELIDO_API_KEY']}"}
out = pathlib.Path("qr-out")
out.mkdir(exist_ok=True)
with open("products.csv") as f:
for row in csv.DictReader(f): # columns: id, destination
key = hashlib.sha256(row["destination"].encode()).hexdigest()
link = requests.post(
f"{API}/v1/links",
headers={**HEAD, "Idempotency-Key": key},
json={"destination_url": row["destination"]},
timeout=10,
)
link.raise_for_status()
short_url = link.json()["short_url"]
qr = requests.post(
f"{API}/v1/qr/generate",
headers=HEAD,
json={
"content": short_url, # the short link, never the destination
"formats": ["svg", "png"],
"size": 1024,
"error_correction": "M",
},
timeout=20,
)
qr.raise_for_status()
payload = qr.json()
(out / f"{row['id']}.svg").write_text(payload["svg"])
(out / f"{row['id']}.png").write_bytes(base64.b64decode(payload["png"]))
print(row["id"], short_url)
Der Idempotenzschlüssel wird aus der Zieladresse abgeleitet. Wenn Sie die Datei nach der Korrektur von drei Zeilen erneut ausführen, wird nichts doppelt erstellt und es entstehen keine zusätzlichen Kosten. Diese Eigenschaft macht einen Batch-Job sicher wiederholbar. Sie sollten sie genau verstehen, bevor Sie ihn auf 5000 Zeilen anwenden: Rate-Limits und Idempotenz behandelt die Mechanik.
Die Schleife oben läuft sequenziell, was bis zu einigen Hundert Zeilen in Ordnung ist. Bei größeren Mengen führen Sie etwa acht Aufrufe parallel aus. Die Anleitungen zu Python und JavaScript enthalten beide ein Muster für begrenzte Nebenläufigkeit, das Sie direkt übernehmen können.
Möchten Sie es ausführen? Erstellen Sie einen Schlüssel im kostenlosen Tarif, exportieren Sie ELIDO_API_KEY und richten Sie das Skript zunächst auf eine CSV mit fünf Zeilen, bevor Sie es auf die echte Datei anwenden.
Statisch oder dynamisch bei großen Mengen
Ein statischer Code hat genau einen Vorteil: Er hängt von nichts ab. Keine Domain, die aktiv bleiben muss, kein Dienst, für den Sie weiter bezahlen müssen. Das ist wichtig für einen Code, der in eine Maschine geätzt wird, die Ihren Anbieter überdauern wird, und fast nirgendwo sonst.
Alles andere spricht für dynamisch. Scan-Zahlen pro Code sind die einzige Möglichkeit, Regalplatzierungen oder Standorte von Geschäften zu vergleichen. Eine Zieladresse, die Sie korrigieren können, wenn die Kampagnenseite verschoben wird. Außerdem sind die Codes kleiner und dünner besetzt, weil ein Kurzlink nur einen Bruchteil der Zeichen einer markierten Produkt-URL enthält. Dynamische und statische QR-Codes enthält den vollständigen Vergleich.
Druckeinstellungen, die wirklich wichtig sind
Drei Parameter entscheiden darüber, ob der Batch in der echten Welt gescannt werden kann.
Fehlerkorrektur. Stufe M gleicht ungefähr 15 Prozent Beschädigung aus und hält den Code dünn besetzt. Wechseln Sie zu Q, wenn ein Logo in der Mitte sitzt oder der Code angefasst, abgerieben oder auf etwas Gewölbtes gedruckt wird. H klingt sicherer und ist es meistens nicht: Durch die zusätzliche Redundanz werden mehr Module untergebracht, und dichtere Codes lassen sich bei kleinen Größen schwerer scannen. Der QR-Standard dokumentiert alle vier Stufen.
Format. SVG für den Druck, weil es auf ein Poster skaliert werden kann, ohne dass die Kanten der Module weich werden. PNG für Folien, Marketplaces und alles, was Vektoren ablehnt. Fordern Sie beides in einem Aufruf an, dann entfällt der zusätzliche Durchlauf, wenn jemand das jeweils andere Format benötigt.
Ruhezone. Der freie Rand um den Code gehört zum Code. Vier Module sind das vorgegebene Minimum, und Designer schneiden ihn zuverlässig weg, weil er wie verschwendeter Platz aussieht. Ein Code mit knappem Rand wird von günstigen Handykameras schlecht gescannt, und niemand bringt die beiden Dinge miteinander in Verbindung.
Noch etwas sollten Sie wissen, bevor Sie eine Größe für den gesamten Batch festlegen: Die Datenmenge bestimmt die Version, und die Version bestimmt, wie viele Module der Code hat. Denso Wave, das Unternehmen, das das Format erfunden hat, veröffentlicht die Tabelle zu Versionen und Kapazitäten. Ein 30 Zeichen langer Kurzlink liegt nahe am unteren Ende; eine markierte Produkt-URL mit 180 Zeichen nicht. Bei derselben Druckgröße zeigt sich der Unterschied als sichtbar dichterer Code.
Die Größe in der Datei ist weniger wichtig als die Größe auf dem Gegenstand. Wie groß sollte ein QR-Code sein enthält die Regel für die Scanentfernung, die über die physische Abmessung entscheidet.
Prüfen, bevor etwas in den Druck geht
Generieren Sie einen Batch und prüfen Sie anschließend fünf zufällige Codes. Nicht an Ihrem Schreibtisch bei voller Bildschirmhelligkeit: Drucken Sie sie in der tatsächlichen Größe aus, kleben Sie einen an das Regal oder die Verpackung und scannen Sie ihn von der Stelle aus, an der ein Kunde stehen würde.
Prüfen Sie anschließend auch den Redirect selbst. curl -sI für drei der Kurzlinks bestätigt, dass sie einen Redirect zur richtigen Zieladresse zurückgeben. Das findet den klassischen Off-by-one-Fehler, bei dem Spalte zwei der CSV als Spalte drei gelesen wurde und jeder Code auf das benachbarte Produkt zeigt. Dieser Fehler bleibt unbemerkt, übersteht jede visuelle Prüfung und ist nur an der Zieladresse erkennbar.
Bewahren Sie die CSV auf, aus der der Batch entstanden ist, einschließlich ID, Zieladresse, Kurzlink und Dateiname. Wenn in sechs Monaten jemand fragt, welcher Code auf welcher Palette angebracht ist, liefert diese Datei die Antwort. Sie aus dem Dashboard neu zu erstellen, wäre deutlich mehr Arbeit, als sie aufzubewahren.
Wo die Scans auftauchen
Sobald die Codes live sind, meldet jeder einzelne seine Daten separat. Genau deshalb gibt es einen Code pro Artikel statt eines gemeinsamen Codes: Ein einzelner Code zeigt, dass die Kampagne funktioniert hat, und Codes pro Artikel zeigen, welches Geschäft, welches Regal oder welche SKU funktioniert hat.
QR-Code-Scans verfolgen behandelt das Auslesen dieser Daten, und Webhooks für Linkereignisse beschreibt, wie Sie Scans in Ihre eigenen Systeme übertragen, statt ein Dashboard zu prüfen. Für den Kontext physischer Produkte behandelt QR-Codes für den digitalen Produktpass die regulatorische Variante derselben Pipeline.
Die Cornerstone-Serie lesen
Dieser Beitrag gehört zum Features-Cluster. Beginnen Sie mit So erstellen Sie einen QR-Code für die Variante mit einem einzelnen Code und lesen Sie anschließend QR-Code-Kampagne von Grund auf für die Kampagnenplanung. Die Feature-Seite zu QR-Codes behandelt die Gestaltungsoptionen, die dieses Skript auslässt.
Verwandte Beiträge im Blog
Häufig gestellte Fragen
Wie erstelle ich QR-Codes in großen Mengen?
Gehen Sie eine CSV durch, erstellen Sie für jede Zeile einen Kurzlink, rendern Sie anschließend über die API einen QR-Code für jeden Kurzlink und schreiben Sie die Dateien auf die Festplatte. Zwei Aufrufe pro Zeile und am Ende ein Ordner. Dass der Kurzlink statt der Zieladresse codiert wird, sorgt dafür, dass jeder Code nach dem Drucken bearbeitbar bleibt.
Sollten QR-Codes in großen Mengen statisch oder dynamisch sein?
Dynamisch, in fast jedem Fall bei großen Mengen. Ein statischer Code codiert die Zieladresse direkt. Eine falsche URL in einer Druckauflage von 5000 Exemplaren bedeutet daher einen Neudruck. Ein dynamischer Code codiert einen von Ihnen kontrollierten Kurzlink. Dadurch lässt sich die Zieladresse nachträglich korrigieren und jeder Code meldet seine eigenen Scans.
Welche Fehlerkorrekturstufe sollte ich für gedruckte QR-Codes verwenden?
Stufe M ist der sinnvolle Standard: Sie gleicht ungefähr 15 Prozent Beschädigung aus und hält den Code so dünn besetzt, dass er schnell gescannt werden kann. Verwenden Sie Q, wenn ein Logo die Mitte bedeckt oder der Code an einer Stelle angebracht wird, an der er abgerieben werden kann. H lohnt sich selten, weil die zusätzliche Dichte das Scannen bei kleinen Größen erschwert.
In welchem Dateiformat sollten QR-Codes in großen Mengen vorliegen?
SVG für alles, was gedruckt wird, weil es auf jede Größe skaliert werden kann, ohne dass die Kanten der Module weich werden. PNG für Bildschirme, Folien und Marketplace-Uploads, die Vektoren ablehnen. Wenn Sie beides auf einmal generieren, kostet das einen Aufruf und erspart den zusätzlichen Durchlauf, wenn das Designteam nach dem jeweils anderen Format fragt.
Wie viele QR-Codes kann ich auf einmal generieren?
So viele, wie das Rate-Limit zulässt. Das ist eine Frage des Durchsatzes und keine feste Obergrenze. Führen Sie etwa acht Aufrufe parallel aus, senden Sie einen aus der jeweiligen Zeile abgeleiteten Idempotenzschlüssel, damit ein erneuter Durchlauf nichts doppelt erstellt, und ein Batch mit mehreren Tausend Einträgen ist in wenigen Minuten fertig.
Brauche ich für jedes Produkt oder jeden Standort einen eigenen QR-Code?
Ja, wenn Sie wissen möchten, welcher Code gescannt wurde. Ein gemeinsamer Code zeigt, dass die Kampagne funktioniert hat; ein Code pro Artikel zeigt, welches Regal, welches Geschäft oder welche SKU funktioniert hat. Die Variante pro Artikel kostet bei der Erstellung nichts extra und ist die einzige Möglichkeit, Platzierungen zu vergleichen.
Elido testen
URL einfügen, kurzer Link in Sekunden
Kein Konto nötig. Link bleibt 30 Tage aktiv. Konto erstellen, um ihn dauerhaft zu behalten.
Kostenlos, keine Anmeldung erforderlich · 2 pro Tag