Scheda pasti combinati

I pasti combinati numerati di un tabellone di servizio rapido: foto, cosa contiene ogni combo, prezzo con risparmio, opzione upsize e calorie.

Live card

Questa scheda viene disegnata nel browser con lo stesso codice usato dai Player, con dati di esempio.

Categoria: Cibo e bevande. Tag: Ristoranti e caffè, Negozi, Prezzi e tariffe.

Layout

Questa scheda a schermo intero riempie tutto lo schermo in orizzontale o verticale e non è posizionata come angolo, chip o striscia.

Layout: pieno. Moduli: orizzontale, verticale.

Layout, temi e pubblicazione delle schede. Esplora le schede.

Dati e privacy

Questa scheda usa le proprietà configurate e i dati live della scheda.

Proprietà

Per tema, sfondo, accento e posizione, vedi Proprietà comuni.

Imposta le proprietà statiche nei params della scheda quando la crei. Il suo documento dati contiene solo proprietà dinamiche. Le righe annidate descrivono il contenuto della proprietà genitore.

Proprietà statiche

NomeTipoPredefinitoValori e limitiDescrizione
titlestring"Combo meals"maxLength: 40
currencystring"$"maxLength: 3
decimalsnumero, stringa"auto""auto", 0, 1, 2auto usa numeri interi quando ogni prezzo è intero.
perPageinteger0minimo: 0; massimo: 8Combinazioni su una pagina. 0 si imposta da solo: quattro in orizzontale, una colonna in verticale.
pageSecondsnumber10minimo: 5; massimo: 120Quanto dura una pagina quando le combinazioni non entrano in una pagina.
footnotestring""maxLength: 120Una linea lungo il piede, per esempio I prezzi includono tasse.
backgroundColorstringa, nullonullmodello: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"Sovrascrive il colore di sfondo e della piastra della scheda con un colore piatto ordinato in CSS. #RRGGBBAA fornisce l’opacità. background none ha la precedenza.
textColorstringa, nullonullmodello: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"Sovrascrive i colori del testo principale e secondario. I colori di accento e di stato semantico mantengono i loro ruoli.

Proprietà dinamiche

NomeTipoPredefinitoValori e limitiDescrizione
combosarray[{"name":"Smoky stack","items":["Double smoky burger","Large fries","Drink"],"price":10.99,"was":13.47,"upsize":{"label":"Large","add":1.2},"kcal":1240,"badge":"Popular"},{"name":"Crispy chicken","items":["Crispy chicken sandwich","Fries","Drink"],"price":9.49,"was":11.97,"upsize":{"label":"Large","add":1.2},"kcal":1080},{"name":"Garden bowl","items":["Grain bowl","Fruit cup","Drink"],"price":11.25,"was":13.5,"upsize":{"label":"Large","add":1.5},"kcal":760},{"name":"Little one","items":["Mini burger","Apple slices","Juice box"],"price":6.25,"was":7.75,"kcal":520}]maxItems: 24I combo, nell’ordine della bacheca.
combos[].numberstringmaxLength: 4Il numero sul tabellone. Vuoto conta 1, 2, 3.
combos[].namestringminLength: 1; maxLength: 120; Obbligatorio
combos[].itemsarraymaxItems: 6Cosa c’è nella combo, una riga ciascuno.
combos[].pricenumero, nullminimo: 0Il prezzo combo.
combos[].wasnumero, nullminimo: 0Gli stessi articoli acquistati uno per uno; viene calcolato il risparmio.
combos[].upsizeoggetto, nulladditionalProperties: falseIl passaggio di ingrandimento, per esempio Large +1,20.
combos[].upsize.labelstringmaxLength: 24
combos[].upsize.addnumero, nullminimo: 0
combos[].kcalnumero, nullminimo: 0
combos[].imagestringmaxLength: 200Un riferimento a contenuti multimediali del progetto (media:<id>). Vuoto mostra la tessera del tema con un’icona di cibo.
combos[].badgestringmaxLength: 16Un breve segno sulla foto, per esempio Popolare.
combos[].soldOutbooleanfalse

Esempio di canvas

Salva le proprietà statiche come params.json e crea la scheda. Il risultato contiene il suo ID crd_.

{
  "theme": "neomustard"
}
screenrig card create --type combo-meals --major 1 --file params.json

Aggiungi questo elemento ai primitives di una pagina playlist, con quell’ID al posto di quello dell’esempio. Pubblica la playlist e assegna uno schermo.

{
  "id": "combo-meals",
  "primitive": "card",
  "card": "crd_01EXAMPLECARD000000000",
  "layout": "full",
  "content_fit": "fill"
}

Scrivere dati live

Scrivi il documento nella scheda dopo averla creata, poi sostituiscilo per aggiornare lo schermo senza ripubblicare. La scheda controlla ogni scrittura rispetto alle sue proprietà dinamiche e rifiuta un documento che non accetta. Usa lo stesso progetto della playlist.

Salva il documento come card-data.json. Il CLI legge il documento stesso, senza wrapper:

{
  "combos": [
    {
      "name": "Smoky stack",
      "items": [
        "Double smoky burger",
        "Large fries",
        "Drink"
      ],
      "price": 10.99,
      "was": 13.47,
      "upsize": {
        "label": "Large",
        "add": 1.2
      },
      "kcal": 1240,
      "badge": "Popular"
    },
    {
      "name": "Crispy chicken",
      "items": [
        "Crispy chicken sandwich",
        "Fries",
        "Drink"
      ],
      "price": 9.49,
      "was": 11.97,
      "upsize": {
        "label": "Large",
        "add": 1.2
      },
      "kcal": 1080
    },
    {
      "name": "Garden bowl",
      "items": [
        "Grain bowl",
        "Fruit cup",
        "Drink"
      ],
      "price": 11.25,
      "was": 13.5,
      "upsize": {
        "label": "Large",
        "add": 1.5
      },
      "kcal": 760
    },
    {
      "name": "Little one",
      "items": [
        "Mini burger",
        "Apple slices",
        "Juice box"
      ],
      "price": 6.25,
      "was": 7.75,
      "kcal": 520
    }
  ]
}
screenrig card data put crd_01EXAMPLECARD000000000 --file card-data.json

Oppure chiamare direttamente l’API. L’API incapsula lo stesso documento in un campo document. Un token agente nomina già il suo progetto, quindi non viene inviato un header progetto; se invii ScreenRig-Project, deve corrispondere al progetto del token. Fornisci l’autorizzazione API tramite l’ambiente; vedi Autenticazione API.

curl --request PUT "https://api.screenrig.ai/api/cards/crd_01EXAMPLECARD000000000/data" \
  --header "Authorization: Bearer $SCREENRIG_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{"document":{"combos":[{"name":"Smoky stack","items":["Double smoky burger","Large fries","Drink"],"price":10.99,"was":13.47,"upsize":{"label":"Large","add":1.2},"kcal":1240,"badge":"Popular"},{"name":"Crispy chicken","items":["Crispy chicken sandwich","Fries","Drink"],"price":9.49,"was":11.97,"upsize":{"label":"Large","add":1.2},"kcal":1080},{"name":"Garden bowl","items":["Grain bowl","Fruit cup","Drink"],"price":11.25,"was":13.5,"upsize":{"label":"Large","add":1.5},"kcal":760},{"name":"Little one","items":["Mini burger","Apple slices","Juice box"],"price":6.25,"was":7.75,"kcal":520}]}}'