Salta al contenuto principale
Per la Quick Service Restaurant

Pubblica menu e promozioni il giorno del lancio

Fai l'upload del web layer della tua app di ordinazione via CI quando la promo è live. Gestisci il routing per mercato o brand con i canali, parti con un pilota e fai il rollback se l'ordinazione si rompe.

Perché i team dei ristoranti usano live update

Menu e promozioni cambiano più velocemente dei rilasci in store

Un bug il giorno del lancio sul percorso store-only

Un articolo a tempo limitato viene lanciato in una data prestabilita. La mattina del rilascio, il QA scopre che non appare nel menu dell'app.

La correzione riguarda il web layer, ma un processo legato agli store richiede un nuovo binario e la revisione, che spesso richiede 24–48 ore, a volte molto di più.

Anche dopo l'approvazione, i clienti devono installare l'aggiornamento e i kiosk nei punti vendita necessitano di un proprio percorso di update.

Le promozioni hanno date fisse

Un'offerta a tempo limitato parte con l'inizio della campagna. Un fix nel web layer non dovrebbe attendere il rilascio dagli store.

Diversi brand e mercati

Ogni app di brand e ogni mercato possono richiedere menu, promozioni e testi legali differenti partendo dallo stesso codebase.

Le modifiche richiedono un pilota

Un nuovo flusso di ordinazione dovrebbe essere testato in un singolo mercato o su pochi dispositivi prima del rollout globale.

Nelle ore di punta non c'è spazio per gli errori

Uno schermo di ordinazione rotto durante il pranzo richiede un rollback che non dipenda dal rilascio degli store.

Use case

Dove le app per la ristorazione usano i Live Update

Ordini e checkout

Correggi le schermate di ordine e checkout nel web layer e aggiorna il menu senza un nuovo binario.

Loyalty e premi

Aggiorna schermate premi, display dei punti e flussi di riscatto. I valori dei punti gestiti dal tuo backend cambiano lì.

Localizzatore store e ritiro

Aggiorna le info sugli store, le istruzioni per il ritiro e le opzioni curbside nel web layer.

Promozioni

Lancia banner promozionali, pagine offerte e campagne quando vuoi. Testale prima su un singolo canale.

Chioschi in store

Le app per chioschi possono restare aperte tutto il giorno. Applica gli update durante i controlli periodici o quando tornano in idle.

App multi-brand

Mantieni ogni app del brand in un'unica organizzazione Capgo, ciascuna con il proprio app ID, canali e cronologia dei rilasci.

Cosa offre Capgo ai team dei ristoranti

Rilascia secondo i tuoi tempi, per mercato e brand

Fai l'upload dalla CI quando preferisci

Capgo non ha uno scheduler di rilascio. È la tua CI ad avviare l'upload: al merge, con un run manuale o con un cron schedule impostato per il lancio.

  • Guide per GitHub Actions, GitLab CI, Bitbucket e Azure DevOps
  • Mantieni la Capgo API key nei secret della tua CI
  • Fai il rollback dalla console o tramite CLI se il lancio va male
# .github/workflows/capgo-launch.yml
on:
  workflow_dispatch:
  schedule:
    - cron: '0 6 15 11 *' # 06:00 UTC on 15 Nov, your launch time

jobs:
  upload:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - run: npm ci && npm run build
      - run: npx @capgo/cli@latest bundle upload --channel production --delta
        env:
          CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }}
# one app ID per brand, same web codebase
npx @capgo/cli@latest bundle upload com.yourgroup.brand-a --channel production
npx @capgo/cli@latest bundle upload com.yourgroup.brand-b --channel production

Diversi brand da un unico account

Ogni app del brand è un'app separata in Capgo, con i propri canali e la propria cronologia dei rilasci. Gestiscile in un'unica organizzazione con ruoli per ogni membro del team.

  • Un'unica organizzazione per ogni brand app
  • Canali e cronologia separati per ogni app ID
  • Ruoli per l'accesso a organizzazione, app e canali

Canali per mercati e gruppi pilota

Crea un canale per ogni mercato, regione o gruppo pilota. L'app si unisce ai canali che permettono l'auto-assegnazione tramite setChannel(), e il tuo team può bloccare un dispositivo con un override.

  • Canali per mercati, regioni o store pilota
  • I dispositivi si uniscono con setChannel() o device override
  • Rollout progressivo all'interno di ogni canale
// in the app, after the user or kiosk picks a market
import { CapacitorUpdater } from '@capgo/capacitor-updater'

await CapacitorUpdater.setChannel({ channel: 'market-uk' })
aggiornamenti kiosk
// capacitor.config.ts
CapacitorUpdater: { autoUpdate: 'onlyDownload' }

// kiosk app
let next
CapacitorUpdater.addListener('updateAvailable', ({ bundle }) => {
  next = bundle
})

// when the kiosk is back on its idle screen
if (next) await CapacitorUpdater.set({ id: next.id })

Chioschi sempre operativi tutto il giorno

La modalità predefinita applica gli aggiornamenti quando l'app passa in background, cosa che un chiosco raramente fa. Scarica gli aggiornamenti automaticamente e applicali quando il chiosco è in idle.

  • la modalità onlyDownload emette updateAvailable quando un bundle è pronto
  • Chiama set() sulla tua schermata in idle per applicarlo
  • Plugin per la modalità chiosco Android per bloccare il dispositivo sulla tua app
Aggiornamenti consegnati al mese
1B+
Latenza tipica di API
~50ms
Dispositivi raggiunti
90M+
App che usano Capgo
4,7K+

Come funziona

Come i team dei ristoranti rilasciano un cambio menu con Capgo

Un flusso tipico per una promozione che parte da un singolo mercato. Ogni comando qui sotto proviene dalla documentazione Capgo CLI.

  1. Crea un canale per ogni mercato o pilota

    Permetti l'auto-assegnazione in modo che l'app possa unirsi al canale del mercato in cui si trova l'utente o il kiosk.

    npx @capgo/cli@latest channel add market-uk --self-assign
    Docs canali
  2. Upload della promo per una parte del mercato

    Eseguilo dalla CI al momento del lancio. Il rollout invia il bundle a una quota di dispositivi sul canale, mentre gli altri restano sulla versione stable.

    npx @capgo/cli@latest bundle upload --channel market-uk --delta --rollout 10
    Docs sui rollout progressivi
  3. Promuovi quando gli ordini funzionano

    Quando l'ordinazione funziona come previsto, promuovi il bundle su tutti i dispositivi del canale.

    npx @capgo/cli@latest channel set market-uk --rollout-promote
    Docs sui rollout progressivi
  4. Rollback durante i picchi di traffico

    Se l'ordinazione si rompe, riporta il rollout alla versione stabile o seleziona il bundle precedente dalla cronologia del canale nella console.

    npx @capgo/cli@latest channel set market-uk --rollout-rollback
    Docs sui rollback

App buildate con Capacitor

Le app dei ristoranti cambiano menu e promozioni continuamente

Le app per la ristorazione veloce possono aggiornare promozioni, contenuti del restaurant finder, avvisi d'ordine e campagne regionali senza attendere l'approvazione degli store.

Icona app BURGER KING® APPLICAZIONE

BURGER KING®

App per ristoranti con voucher, contenuti finder e campagne.

Installazioni Google Play
14,3M
Valutazione store
3.9
Jack in the Box® - Icona app Order Food Food & Drink

Jack in the Box® - Ordina il cibo

App per ordini dove menu, premi e checkout possono cambiare rapidamente.

Installazioni Google Play
2,7M
Valutazione store
2.5
Icona dell'app Denny's CIBO E BEVANDE

Denny's

App per ristoranti in cui i flussi loyalty e food-ordering richiedono ritocchi frequenti.

Installazioni Google Play
1,7M
Valutazione store
4.7

Cosa dicono i clienti

Cosa dicono i team che rilasciano con Capgo

5.0/5 valutato dai team di sviluppatori 9,400+ team Leggi le recensioni

Kapil

Fondatore, NuTriQ

“Poter rilasciare aggiornamenti OTA in produzione all'istante, senza attendere i cicli completi di revisione dell'App Store, è stato un enorme vantaggio operativo.”

Ritratto di Sergiu S

Sergiu S

Lead Developer, drivolino GmbH

“Il plugin Capgo Capacitor Updater ha rivoluzionato il nostro modo di rilasciare gli aggiornamenti. Quello che prima richiedeva giorni, ora si fa in pochi minuti.”

no-tone @ Webincode

Sviluppatore, Webincode

“Poter aggiungere i Device ID a determinati gruppi e inviare le modifiche solo a quei gruppi è una manna.”

FAQ

Le domande dei team dei ristoranti

Tempistiche, kiosk, mercati e come un live update può fare la differenza.

Possiamo programmare il lancio di un menu?

Capgo non ha uno scheduler di rilascio. Avvia l'upload dalla tua CI al momento desiderato, ad esempio tramite un workflow di GitHub Actions pianificato o un run manuale la mattina del lancio. Se la nuova UI deve rimanere nascosta fino a una certa data, gestisci l'accesso tramite la tua app o il backend.

Guida a GitHub Actions

Come ricevono gli aggiornamenti i kiosk se l'app non si chiude mai?

In modalità predefinita, gli aggiornamenti vengono applicati quando l'app va in background, cosa che un kiosk raramente fa. Imposta autoUpdate su 'always' per applicare gli aggiornamenti durante il controllo periodico (ogni 10 minuti di default), oppure su 'onlyDownload' e chiama set() quando il kiosk torna alla schermata idle.

Docs sul comportamento degli update

Ogni mercato o brand può eseguire una versione diversa?

Sì. Assegna a ogni brand il proprio app ID in Capgo e a ogni mercato o gruppo pilota il proprio channel. I dispositivi si uniscono a un channel tramite setChannel() se l'auto-assegnazione è consentita, oppure tramite un device override.

Docs canali

Cosa succede se un rilascio promozionale rompe gli ordini?

Effettua il rollback del rollout progressivo o seleziona il bundle precedente dalla cronologia del channel. Se il nuovo bundle non riesce ad avviarsi e non chiama mai notifyAppReady(), il dispositivo torna da solo all'ultimo bundle funzionante.

Docs sui rollback

Un live update può cambiare i prezzi del menu?

I prezzi di solito arrivano dal tuo backend o dall'integrazione POS, quindi modificali lì. Un live update cambia le schermate web che mostrano menu e prezzi. Plugin nativi, SDK di pagamento e aggiornamenti Capacitor richiedono un rilascio sugli store.

Docs sulla compatibilità nativa

Pronto a rilasciare secondo i tuoi tempi?

Configura i canali di mercato e l'upload CI sulla tua app durante la prova.