5 dakikalık okumaÖzellikler

Toplu QR Kod Üretimi: CSV'den Baskıya Hazır Dosyalara

Bir elektronik tablodan toplu QR kod üretin: satır başına kısa bağlantı, API ile SVG ve PNG, baskıdan önce örnek doğrulama.

Ana Kowalska
Marketing solutions engineering

Toplu QR kod üretimi, satır başına iki API çağrısı ve sonunda bir klasördür. Her hedef için bir kısa bağlantı oluşturun, o kısa bağlantı için bir QR kodu üretin, SVG ve PNG'yi diske yazın. 5.000 ürünlük bir elektronik tablo, birkaç dakikada 5.000 baskıya hazır dosyaya dönüşür.

Karar araçta değil. Karar, kodun neyi kodladığında. Hedefi doğrudan kodlarsanız kod, baskıya girdiği anda donar; 5.000 etiketlik bir baskıdaki tek yanlış URL tüm baskıyı hurdaya çevirir. Kontrol ettiğiniz bir kısa bağlantıyı kodlarsanız hedef sonsuza dek düzenlenebilir kalır ve her kod sessizce kendi taramalarını raporlar.

Binlerce yerine tek bir kod mu yapıyorsunuz? QR kodu nasıl oluşturulur daha basit anlatım, sıfırdan QR kod kampanyası ise yerleşim ve ölçümü kapsıyor.

Dört Aşamalı Hat

Dört aşamalı toplu QR kod hattı: hedeflerden oluşan bir CSV okunur, satır başına bir kısa bağlantı oluşturulur, QR kodu SVG ve PNG olarak üretilir ve basılı bir örnek tarayarak doğrulanır

CSV'de gereksiz görünse bile bir id sütunu tutun. Dosya adı, idempotency anahtarı ve tasarım ekibi "412 numaralı kod yanlış" diye döndüğünde eşleştireceğiniz şey olur. Onsuz URL'lerle eşleştirirsiniz ve URL'ler uzundur, yanlış yazması kolaydır.

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)

Idempotency anahtarı hedeften türetildiği için, üç satırı düzelttikten sonra dosyayı yeniden çalıştırmak hiçbir şeyi iki kez oluşturmaz ve hiçbir maliyeti yoktur. Bir toplu işi tekrarlanabilir kılan bu özellik ve bunu 5.000 satıra yöneltmeden önce düzgün anlamaya değer: hız sınırları ve idempotency mekaniği anlatıyor.

Yukarıdaki döngü sıralı; birkaç yüz satıra kadar sorun değil. Ötesinde yaklaşık sekizini paralel çalıştırın; Python ve JavaScript rehberlerinin ikisinde de doğrudan alabileceğiniz sınırlı eşzamanlılık kalıbı var.

Çalıştırmak ister misiniz? Ücretsiz planda bir anahtar oluşturun, ELIDO_API_KEY değişkenini dışa aktarın ve gerçek dosyaya yöneltmeden önce betiği beş satırlık bir CSV'ye yöneltin.

Ölçekte Statik mi Dinamik mi

Hedefi kodlayan statik QR kodları ile kısa bağlantıyı kodlayan dinamik QR kodlarının, hedeflerin değişebileceği toplu bir baskı için karşılaştırması

Statik kodun tam olarak bir avantajı var: hiçbir şeye bağımlı değil. Canlı tutulacak alan adı yok, ödemeye devam edilecek servis yok. Bu, satıcı sözleşmenizden daha uzun yaşayacak bir makineye kazınmış kod için önemli, başka neredeyse hiçbir yerde önemli değil.

Geri kalan her şey dinamikten yana. Kod başına tarama sayıları: raf yerleşimlerini veya mağaza konumlarını karşılaştırmanın tek yolu. Kampanya sayfası taşındığında düzeltebileceğiniz bir hedef. Ve daha küçük, daha seyrek kodlar, çünkü kısa bağlantı etiketli bir ürün URL'sinin karakterlerinin yalnızca bir kesri kadar. Dinamik ve statik QR kodları tam karşılaştırmayı veriyor.

Gerçekten Önemli Baskı Ayarları

Toplu işin gerçek dünyada taranıp taranmayacağını üç parametre belirler.

Hata düzeltme. M düzeyi yaklaşık yüzde 15 hasardan kurtarır ve kodu seyrek tutar. Ortada bir logo varsa ya da kod elle tutulacak, aşınacak veya eğri bir yüzeye basılacaksa Q'ya geçin. H daha güvenli gibi duyulur ve genellikle değildir: ek yedeklilik daha fazla modül sığdırır ve daha yoğun kodlar küçük boyutlarda daha zor taranır. QR standardı dört düzeyi de belgeliyor.

Biçim. Baskı için SVG, çünkü modül kenarlarını yumuşatmadan bir posteri dolduracak kadar ölçeklenir. Slaytlar, pazar yerleri ve vektör reddeden her şey için PNG. Tek istekte ikisini birden isteyin, başkası diğerine ihtiyaç duyduğunda gidiş gelişi atlarsınız.

Sessiz bölge. Kodun çevresindeki boş kenar boşluğu kodun parçasıdır. Dört modül belirtilen asgari değerdir ve tasarımcılar boşa yer gibi göründüğü için onu düzenli olarak kırpar. Dar kenarlıklı bir kod ucuz telefon kameralarında kötü taranır ve kimse ikisini birbirine bağlamaz.

Tüm toplu iş için bir boyut belirlemeden önce bilmeye değer bir şey daha: veri miktarı sürümü, sürüm ise kodun kaç modülü olacağını belirler. Biçimi icat eden Denso Wave, sürüm ve kapasite tablosunu yayımlıyor. 30 karakterlik bir kısa bağlantı tablonun alt kısmına yakın durur; 180 karakterlik etiketli bir ürün URL'si durmaz ve fark, aynı basılı boyutta gözle görülür biçimde daha yoğun bir kod olarak ortaya çıkar.

Dosyadaki boyut, nesnedeki boyuttan daha az önemli. Bir QR kodu ne kadar büyük olmalı yazısında, fiziksel boyutu belirleyen tarama mesafesi kuralı var.

Baskıya Girmeden Önce Doğrulayın

Bir toplu iş üretin, sonra rastgele beş kodu kontrol edin. Masanızda tam ekran parlaklıkta değil: tam basılacakları boyutta yazdırın, birini rafa veya ambalaja bantlayın ve bir müşterinin duracağı yerden tarayın.

Sonra yönlendirmenin kendisini kontrol edin. Üç kısa bağlantıda curl -sI, doğru hedefe bir yönlendirme döndürdüklerini doğrular; CSV'nin ikinci sütununun üçüncü sütun olarak okunduğu ve her kodun komşu ürüne işaret ettiği klasik bir birim kayması hatasını yakalar. O hata sessizdir, her görsel kontrolden sağ çıkar ve yalnızca hedefte görünür.

Toplu işi üreten CSV'yi, içinde id, hedef, kısa bağlantı ve dosya adıyla birlikte saklayın. Altı ay sonra biri hangi kodun hangi paletde olduğunu sorduğunda cevap o dosyadır ve onu panodan yeniden üretmek, saklamaktan çok daha fazla iştir.

Taramalar Nerede Görünür

Kodlar yayına girdikten sonra her biri ayrı raporlanır. Paylaşılan tek kod yerine öğe başına bir kodun tüm nedeni bu: tek kod kampanyanın işe yaradığını söyler, öğe başına kodlar hangi mağazanın, rafın veya SKU'nun işe yaradığını söyler.

QR kodu taramaları nasıl takip edilir bu veriyi okumayı, bağlantı olayları için webhook'lar ise taramaları bir panoya bakmak yerine kendi sistemlerinize itmeyi anlatıyor. Özellikle fiziksel ürün bağlamı için, dijital ürün pasaportu QR kodları aynı hattın düzenleyici sürümünü kapsıyor.

Temel Seriyi Okuyun

Bu yazı özellikler kümesinde yer alıyor. Tek kod sürümü için QR kodu nasıl oluşturulur ile başlayın, kampanya tasarımı için ardından sıfırdan QR kod kampanyası yazısına geçin. QR kodları özellik sayfası, bu betiğin atladığı stil seçeneklerini kapsıyor.

Blogda İlgili Yazılar

Sıkça sorulan sorular

Toplu QR kodu nasıl üretirim?

Bir CSV üzerinde döngü kurun, her satır için bir kısa bağlantı oluşturun, sonra her kısa bağlantı için API aracılığıyla bir QR kodu üretin ve dosyaları diske yazın. Satır başına iki çağrı ve sonunda bir klasör. Hedef yerine kısa bağlantıyı kodlamak, her kodu basıldıktan sonra da düzenlenebilir tutan şeydir.

Toplu QR kodları statik mi dinamik mi olmalı?

Hemen her toplu durumda dinamik. Statik kod hedefi doğrudan kodlar; bu yüzden 5.000'lik bir baskıdaki tek bir yanlış URL yeniden baskı demektir. Dinamik kod kontrol ettiğiniz bir kısa bağlantıyı kodlar; yani hedef sonradan düzeltilebilir ve her kod kendi taramalarını raporlar.

Basılı QR kodları için hangi hata düzeltme düzeyini kullanmalıyım?

Makul varsayılan M düzeyidir: yaklaşık yüzde 15 hasardan kurtarır ve kodu hızlı taranacak kadar seyrek tutar. Ortayı bir logo kaplıyorsa ya da kod aşınacak bir yerde duracaksa Q'ya geçin. H nadiren değer; ek yoğunluk, kodu küçük boyutlarda taramayı zorlaştırır.

Toplu QR kodları hangi dosya biçiminde olmalı?

Basılacak her şey için SVG, çünkü modül kenarlarını yumuşatmadan her boyuta ölçeklenir. Ekranlar, slaytlar ve vektör kabul etmeyen pazar yeri yüklemeleri için PNG. İkisini birlikte üretmek tek bir isteğe mal olur ve tasarım ekibi diğerini istediğinde gidiş gelişten kurtarır.

Aynı anda kaç QR kodu üretebilirim?

Hız sınırının izin verdiği kadar; bu, kesin bir üst sınırdan çok bir aktarım hızı sorusudur. Yaklaşık sekiz isteği paralel çalıştırın, yeniden çalıştırmada hiçbir şeyin iki kez oluşmaması için her satırdan türetilmiş bir idempotency anahtarı gönderin; birkaç bin satırlık bir toplu iş dakikalar içinde biter.

Her ürün veya konum için ayrı bir QR koduna ihtiyacım var mı?

Hangisinin tarandığını bilmek istiyorsanız evet. Paylaşılan tek kod kampanyanın işe yaradığını söyler; öğe başına bir kod hangi rafın, mağazanın veya SKU'nun işe yaradığını söyler. Öğe başına sürüm üretmek ek maliyet getirmez ve yerleşimleri karşılaştırmanın tek yoludur.

Elido'yu deneyin

Bir URL yapıştırın, çalışan bir kısa bağlantı alın

Kayıt gerekmez. Bağlantı 30 gün boyunca yaşar. Sonsuza kadar saklamak için kaydolun.

Kayıt gerekmez. Ücretsiz kaydolun, ayda 50 bağlantı oluşturun.

Elido'yu deneyin

Özel alan adları, derinlemesine analitik ve açık bir API'ye sahip AB'de barındırılan URL kısaltıcı. Ücretsiz katman - kredi kartı gerekmez.

Etiketler
bulk qr code generation
generate qr codes from csv
bulk qr code generator api
qr codes at scale
dynamic qr codes bulk
qr code print files

Okumaya devam et