Carte de matrice de prix

Placez les articles sur le côté et les tailles en haut, avec un prix là où ils se croisent : café, robinets, vin, poids de dispensaire et carburant, plus les suppléments.

Listez les articles en lignes et les tailles en colonnes, et placez chaque prix à leur intersection. Utilisez la même grille claire pour le café, les robinets, le vin, les poids de dispensaire et le carburant, et affichez les suppléments à côté.

Carte en direct

Cette carte est dessinée dans votre navigateur par le même code que les lecteurs, avec des données d’exemple.

Catégorie : Nourriture et boisson. Étiquettes : Restaurants et cafés, Bars et pubs, Magasins, Prix et tarifs.

Mises en page

Cette carte plein écran occupe tout l’écran en mode paysage ou portrait et n’est pas placée en coin, puce ou bande.

Mises en page : pleine. Formes : paysage, portrait.

Mises en page, thèmes et publication des cartes. Parcourir les cartes.

Données et confidentialité

Cette carte utilise ses propriétés configurées et les données de carte en direct.

Propriétés

Pour le thème, l’arrière-plan, l’accent et la position, voir Propriétés communes.

Définissez les propriétés statiques dans les params de la carte lorsque vous la créez. Son document de données ne contient que des propriétés dynamiques. Les lignes imbriquées décrivent le contenu de leur propriété parente.

Propriétés statiques

NomTypePar défautValeurs et limitesDescription
titlestring"Coffee"maxLength : 40
metaLabelstring""maxLength : 16L’en-tête de la colonne supplémentaire, par exemple ABV.
glyphstring"cup""none", "cup", "glass"Une tasse ou un verre au-dessus de chaque taille qui grandit avec elle.
currencystring"$"maxLength : 3
decimalsnombre, chaîne"auto""auto", 0, 1, 2, 3auto utilise des nombres entiers lorsque tous les prix sont entiers.
perPageinteger0minimum : 0 ; maximum : 20Lignes par page. 0 se règle selon la salle.
pageSecondsnumber10minimum : 5 ; maximum : 120
footnotestring""maxLength : 120
backgroundColorchaîne, nulnullmotif : "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"Remplace le fond et la plaque de la carte par une couleur plate ordonnée en CSS. #RRGGBBAA fournit l’opacité. background none a la priorité.
textColorchaîne, nulnullmotif : "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"Remplace les couleurs du texte principal et secondaire. Les couleurs d’accentuation et de statut sémantique conservent leur rôle.

Propriétés dynamiques

NomTypePar défautValeurs et limitesDescription
columnsarray["Small","Medium","Large"]minItems : 1 ; maxItems : 6Les tailles en haut : S/M/L, 12/16/20 oz, pinte/demi, verre/bouteille, 1g/3,5g/28g, argent comptant/crédit.
sectionsarray[{"name":"Espresso bar","items":[{"name":"Espresso","prices":[3.25,3.75,null],"note":"Double shot"},{"name":"Americano","prices":[3.5,4.0,4.5]},{"name":"Flat white","prices":[4.5,5.0,5.5],"note":"Whole or oat milk","badge":"House"},{"name":"Latte","prices":[4.75,5.25,5.75],"note":"Vanilla, caramel or maple"}]},{"name":"Cold","items":[{"name":"Iced latte","prices":[5.0,5.5,6.0]},{"name":"Cold brew","prices":[4.5,5.0,5.5],"note":"Steeped 18 hours"}]}]maxItems : 12Groupes d’éléments sur le côté ; le nom d’un groupe en tête de sa première ligne.
sections[].namestringmaxLength : 80
sections[].itemsarraymaxItems : 40 ; Obligatoire
sections[].items[].namestringminLength : 1 ; maxLength : 80 ; Obligatoire
sections[].items[].notestringmaxLength : 160Une ligne sous le nom.
sections[].items[].metastringmaxLength : 24La colonne supplémentaire : TAV, THC, origine.
sections[].items[].badgestringmaxLength : 16
sections[].items[].pricesarraymaxItems : 6Un prix par colonne ; vide pour une taille non offerte.
sections[].items[].soldOutbooleanfalse
addOnsarray[{"name":"Oat milk","price":0.7},{"name":"Extra shot","price":1},{"name":"Syrup","price":0.5}]maxItems : 8Extras en ligne sous le tableau.
addOns[].namestringmaxLength : 40 ; Obligatoire
addOns[].pricenombre, nul
featuredItemstring""maxLength : 80Nom exact de la ligne à mettre en vedette dans Primetime. Vide utilise la première ligne badgée disponible.
featuredColumninteger2minimum : 1 ; maximum : 6Colonne de taille mise en avant à base un dans Primetime.
updatedAtstring""maxLength : 40Instant ISO pour la mise en valeur synchronisée du changement de prix.

Exemple de canevas

Enregistrez les propriétés statiques comme params.json et créez la carte. Le résultat contient son identifiant crd_.

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

Ajoutez cet élément aux primitives d’une page de liste de lecture, en remplaçant l’identifiant de l’exemple par celui de votre carte. Publiez la liste de lecture et assignez un écran.

{
  "id": "price-matrix",
  "primitive": "card",
  "card": "crd_01EXAMPLECARD000000000",
  "layout": "full",
  "content_fit": "fill"
}

Écrire des données en direct

Écrivez le document dans la carte après l’avoir créée, puis remplacez-le pour mettre à jour l’écran sans republier. La carte vérifie chaque écriture par rapport à ses propriétés dynamiques et refuse un document qu’elle rejette. Utilisez le même projet que la liste de lecture.

Enregistrez le document sous card-data.json. La CLI lit le document lui-même, sans enveloppe :

{
  "columns": [
    "Small",
    "Medium",
    "Large"
  ],
  "sections": [
    {
      "name": "Espresso bar",
      "items": [
        {
          "name": "Espresso",
          "prices": [
            3.25,
            3.75,
            null
          ],
          "note": "Double shot"
        },
        {
          "name": "Americano",
          "prices": [
            3.5,
            4.0,
            4.5
          ]
        },
        {
          "name": "Flat white",
          "prices": [
            4.5,
            5.0,
            5.5
          ],
          "note": "Whole or oat milk",
          "badge": "House"
        },
        {
          "name": "Latte",
          "prices": [
            4.75,
            5.25,
            5.75
          ],
          "note": "Vanilla, caramel or maple"
        }
      ]
    },
    {
      "name": "Cold",
      "items": [
        {
          "name": "Iced latte",
          "prices": [
            5.0,
            5.5,
            6.0
          ]
        },
        {
          "name": "Cold brew",
          "prices": [
            4.5,
            5.0,
            5.5
          ],
          "note": "Steeped 18 hours"
        }
      ]
    }
  ],
  "addOns": [
    {
      "name": "Oat milk",
      "price": 0.7
    },
    {
      "name": "Extra shot",
      "price": 1
    },
    {
      "name": "Syrup",
      "price": 0.5
    }
  ],
  "featuredItem": "",
  "featuredColumn": 2,
  "updatedAt": ""
}
screenrig card data put crd_01EXAMPLECARD000000000 --file card-data.json

Ou appelez directement l’API. L’API enveloppe le même document dans un champ document. Un jeton agent nomme déjà son projet, donc aucun en-tête de projet n’est envoyé ; si vous envoyez ScreenRig-Project, il doit correspondre au projet du jeton. Fournissez votre autorisation API via l’environnement ; voir Authentification 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":{"columns":["Small","Medium","Large"],"sections":[{"name":"Espresso bar","items":[{"name":"Espresso","prices":[3.25,3.75,null],"note":"Double shot"},{"name":"Americano","prices":[3.5,4.0,4.5]},{"name":"Flat white","prices":[4.5,5.0,5.5],"note":"Whole or oat milk","badge":"House"},{"name":"Latte","prices":[4.75,5.25,5.75],"note":"Vanilla, caramel or maple"}]},{"name":"Cold","items":[{"name":"Iced latte","prices":[5.0,5.5,6.0]},{"name":"Cold brew","prices":[4.5,5.0,5.5],"note":"Steeped 18 hours"}]}],"addOns":[{"name":"Oat milk","price":0.7},{"name":"Extra shot","price":1},{"name":"Syrup","price":0.5}],"featuredItem":"","featuredColumn":2,"updatedAt":""}}'