Guida alle tecnologie

Scanner codici a barre con PHP e un'app da $10

6 min read Sviluppo Web Aggiornato 24 Sep 2025
Scanner codici a barre con PHP e app economica
Scanner codici a barre con PHP e app economica

Scanner di codici a barre su dispositivo mobile collegato a un database

Perché farlo

Collegare i codici a barre al database aziendale permette di:

  • trovare rapidamente la posizione di un prodotto in magazzino;
  • confrontare prezzo per unità e prezzo per confezione;
  • semplificare inventari e operazioni in mobilità senza investire in scanner dedicati.

Questa guida mostra una soluzione pratica, economica e facilmente replicabile in ambienti che usano PHP (ad es. WordPress).

Importante: la soluzione descritta si basa su app di terze parti (Pic2Shop PRO) e su PHP/WordPress. Se usi un CMS o un framework diverso, i concetti restano validi ma i dettagli della query e delle API cambiano.

Requisiti

  • conoscenze di base di PHP;
  • accesso al server/webroot per caricare una pagina PHP (es. barcode.php);
  • database (qui usiamo WordPress come esempio) che contiene un campo custom con il codice a barre;
  • un dispositivo mobile con fotocamera e Pic2Shop PRO (iOS/Android, app intorno ai $10).

Dati di partenza

In questo esempio scannerizzeremo il codice a barre di un gioco da tavolo e recupereremo la recensione corrispondente sul sito. La procedura richiede che nei metadati del post (custom field) sia presente il codice a barre — es.: 0655132002387 per il gioco “San Juan”.

Il workflow è:

  1. Scannerizzare il codice con l’app;
  2. l’app invia il valore via HTTP a una URL configurata sul tuo server;
  3. la pagina PHP cerca nel database il post con quel codice e risponde con il link o i dati.

Schermata di Pic2Shop che mostra il codice letto dal gioco

Copia il valore letto nel campo custom del post (nella demo: campo barcode):

Esempio di campo personalizzato per il codice a barre in WordPress

Implementazione: la pagina PHP (barcode.php)

Crea nel webroot un file chiamato barcode.php. Per iniziare, inserisci questo test minimo per verificare che l’app raggiunga il server:

Configura nell’app il “Lookup URL” così:

http://YOUR_SITE_URL.COM/barcode.php?code=CODE

Quando scannerizzi, il placeholder CODE verrà sostituito dall’app con il valore reale del codice letto. Dovresti vedere un array con i parametri inviati.

Ricerca del post tramite meta

Dopo il test, sostituisci il file con la logica per trovare il post che ha il campo barcode corrispondente e ottenere il permalink:

 'post',
    'meta_key' => 'barcode',
    'meta_value' => $code,
    'meta_compare' => '='
));

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        $url = get_permalink();
        echo $code . "\n";
        echo $url;
    }
    wp_reset_postdata();
} else {
    echo 'No entry for game ' . esc_html($code) . ' exists yet';
}
?>

Note tecniche:

  • uso sanitize_text_field/esc_html per mitigare input malevoli;
  • WP_Query è preferibile a query_posts per evitare effetti collaterali globali.

Esempio di risposta HTTP con codice e permalink

Distribuire automaticamente la configurazione sull’app

Digitare manualmente l’URL su centinaia di telefoni è poco pratico. Pic2Shop PRO supporta una URL di configurazione che, se aperta nel browser mobile, imposta l’app automaticamente:

p2spro://configure?lookup=http%3A//ipadboardgames.org/barcode.php?code=CODE

La parte %3A è la codifica URL per :. Sostituisci ipadboardgames.org/barcode.php con il tuo dominio. Offri questo link ai tuoi operatori: aprendolo su dispositivi con Pic2Shop installato, l’app verrà configurata automaticamente.

Link di configurazione dell'app disponibile via browser

Varianti e alternative

  • App alternative: iCody (solo iOS) è più economica ma meno cross-platform. Altre app possono usare formati di callback diversi (POST invece di GET).
  • Android: su Android potresti usare intent custom o app che supportano deep link simili.
  • API REST: invece di una pagina che stampa URL, puoi restituire JSON strutturato con dettagli prodotto (nome, SKU, prezzo, link) per app più avanzate.
  • Lettura multi-codice: se gestisci confezioni con più SKU, considera la memorizzazione di relazioni 1:N tra barcode e prodotto.

Sicurezza, privacy e GDPR

  • Tratta i dati scannerizzati come input non fidato: validali e sanitizzali prima di usare in query o output.
  • Se l’app invia anche informazioni sul dispositivo o la posizione, valuta se questa raccolta di dati rispetta la normativa sulla privacy. Mantieni un registro minimo e informa gli utenti su quali dati vengono trasferiti.
  • Usa HTTPS in produzione per evitare sniffing dei codici inviati via rete.

Checklist di distribuzione (ruoli)

  • IT/Amministratore:
    • caricare barcode.php nel webroot;
    • assicurarsi che il server usi HTTPS;
    • aggiungere logging e monitoraggio delle chiamate;
  • Content Manager:
    • popolare il custom field barcode per i prodotti/post;
    • verificare corrispondenza tra EAN/UPC e database;
  • Operatori di magazzino:
    • installare Pic2Shop PRO;
    • aprire il link di configurazione per impostare il lookup URL;
    • testare con 5-10 articoli reali.

Criteri di successo

  • scansione di un codice restituisce il link al prodotto in meno di 2 secondi;
  • almeno il 90% dei prodotti principali ha il campo barcode popolato;
  • nessun dato sensibile trasmesso senza cifratura (HTTPS).

Troubleshooting rapido

  • Nessuna risposta dal server: verifica che barcode.php sia raggiungibile via browser e che non ci siano blocchi firewall.
  • Valore CODE vuoto: controlla la configurazione dell’app e la sintassi del lookup URL.
  • Più risultati trovati: assicurati che i codici siano univoci o estendi la logica per restituire una lista.

Esempio di risposta JSON (opzionale)

Se preferisci restituire JSON (per app personalizzate), modifica la pagina così:

 $code, 'found' => false);

$query = new WP_Query(array(
    'post_type' => 'post',
    'meta_key' => 'barcode',
    'meta_value' => $code,
    'meta_compare' => '='
));

if ($query->have_posts()) {
    $response['found'] = true;
    $response['posts'] = array();
    while ($query->have_posts()) {
        $query->the_post();
        $response['posts'][] = array(
            'title' => get_the_title(),
            'permalink' => get_permalink(),
            'barcode' => get_post_meta(get_the_ID(),'barcode',true)
        );
    }
    wp_reset_postdata();
}

echo json_encode($response);
?>

Quando questa soluzione NON è adatta

  • se hai bisogno di scansioni ad alta velocità in ambienti industriali (meglio scanner industriali dedicati);
  • se il dispositivo deve funzionare offline in modo affidabile (richiede sincronizzazione e gestione cache);
  • se la sicurezza dei dati è critica e non puoi usare app di terze parti: in tal caso sviluppa un’app interna con crittografia end-to-end.

Riepilogo

Questa soluzione è economica, rapida da implementare e utile per molte piccole imprese: usa un’app mobile per la scansione e una pagina PHP che interroga il database per restituire i dati rilevanti. Con pochi accorgimenti su sicurezza, validazione e distribuzione automatizzata del lookup URL puoi rendere il processo scalabile.

Azione consigliata

  1. popola i campi barcode per una selezione di prodotti;
  2. carica barcode.php e testa con Pic2Shop su un device;
  3. una volta stabile, distribuisci il link di configurazione ai terminali del magazzino.

FAQ

Posso usare un’app diversa da Pic2Shop?

Sì, ma verifica il formato della callback (GET vs POST) e la sintassi del deep link; adegua la pagina PHP di conseguenza.

È possibile inviare la scansione via POST invece che GET?

Dipende dall’app. Alcune app consentono POST; in quel caso leggi php://input o $_POST invece di $_GET.

Come gestisco più codici per lo stesso prodotto?

Memorizza relazioni 1:N (tabella di mapping) o salva i codici in un campo serializzato/structured e adatta la query.


Spero che questa guida ti aiuti a trasformare smartphone economici in strumenti pratici per il tuo inventario. Lascia un commento se provi la procedura o hai bisogno di aiuto per adattarla al tuo sistema.

Autore
Redazione

Materiali simili

Installare e usare Podman su Debian 11
DevOps

Installare e usare Podman su Debian 11

Guida rapida a apt-pinning su Debian
Linux

Guida rapida a apt-pinning su Debian

Forzare FSR 4 con OptiScaler: guida completa
Guide.

Forzare FSR 4 con OptiScaler: guida completa

Dansguardian + Squid NTLM su Debian Etch
Rete

Dansguardian + Squid NTLM su Debian Etch

Riparare errore installazione SD su Android
Android

Riparare errore installazione SD su Android

Cartelle di rete con KNetAttach e remote:/
Linux

Cartelle di rete con KNetAttach e remote:/