Skip to content

⚡ Lightweight QR & Fast Docs

Sistema QR ultra-leggero per preventivi istantanei su mobile

Architettura

Preventivo creato → QR generato (URL corto)
                  → QR cached su disco
                  → Cliente scansiona
                  → Redirect 301 → Landing mobile-first
                  → View tracking nel DB
                  → CTA WhatsApp per conferma

Endpoint

Metodo URL Funzione
GET /q/:id Shortener → redirect 301 + tracking
GET /preventivo/:id Landing page mobile-first
GET /api/quotes/:id/qr QR Code PNG (cached)
GET /api/quotes/:id/qr-data QR Code base64
GET /api/quotes/:id/stats Views + last_viewed_at

Ottimizzazioni

QR Code

  • URL corto (/q/123) = QR piu semplice = lettura piu veloce
  • Error Correction Level M (15% ridondanza)
  • Colori brand: dark #0d1b2a, light #ffffff
  • Cache su disco: non rigenerato ad ogni richiesta
  • Path: /var/www/italiasushi/admin/public/cache/qr/

PDF Preventivo

  • Testo vettoriale (non rasterizzato) — nitido anche con zoom
  • System fonts — nessun download di font esterni
  • Viewport A4 96DPI — rendering consistente
  • Target < 500KB — si apre anche con poco campo
  • Warning in log se > 1MB

Landing Page

  • HTML puro — zero framework JS
  • < 5KB — carica in < 1 secondo su 4G
  • og:image SVG per preview WhatsApp professionale
  • CTA WhatsApp: link wa.me precompilato
  • Scarica PDF: link diretto al PDF
  • Cache HTTP: max-age=300 (5 minuti)

View Tracking

Ogni apertura di /q/:id incrementa: - quotes.views (contatore) - quotes.last_viewed_at (timestamp)

Utile per sapere se il cliente ha effettivamente aperto il preventivo.