套餐组合卡片

快餐牌上的编号套餐:照片、每个组合内容、含节省的价格、升级步骤和卡路里。

直播卡片

此卡由浏览器绘制,使用与播放器相同的代码,带示例数据。

类别:食品和饮料。标签:餐厅和咖啡馆,商店,价格和费率。

布局

此全屏卡在横屏或竖屏时填满整个屏幕,不作为角落、芯片或条带放置。

布局:全屏。表单:横向,纵向。

卡片布局、主题和发布。浏览卡片。

数据与隐私

此卡使用其配置的属性和实时卡数据。

属性

有关主题、背景、强调色和位置,请参见通用属性。

创建卡片时,在卡片的params中设置静态属性。其数据文档仅包含动态属性。嵌套行描述其父属性的内容。

静态属性

名称类型默认数值和限制描述
titlestring"Combo meals"maxLength:40
currencystring"$"maxLength:3
decimals数字,字符串"auto""auto", 0, 1, 2当所有价格均为整数时,自动使用整数。
perPageinteger0最小值:0;最大值:8页面上的组合。0 自动设置:横屏四个,竖屏一列。
pageSecondsnumber10最小值:5;最大值:120当组合无法全部显示在一页时,每页停留的时间。
footnotestring""maxLength:120底部一行,例如“价格含税”。
backgroundColor字符串,空值null模式:"^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"用纯色 CSS 顺序覆盖卡片背景和底板。#RRGGBBAA 提供透明度。背景无则优先。
textColor字符串,空值null模式:"^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"覆盖主文本和次要文本颜色。强调色和语义状态色保持原有功能。

动态属性

名称类型默认数值和限制描述
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:24套餐,按看板顺序。
combos[].numberstringmaxLength:4牌上的数字。空时计数为 1、2、3。
combos[].namestringminLength:1;maxLength:120;必填
combos[].itemsarraymaxItems:6组合内容,每行一项。
combos[].price数字,空值最小值:0套餐价格。
combos[].was数字,空值最小值:0逐个购买的相同物品;计算节省金额。
combos[].upsize对象,空值additionalProperties:false放大步骤,例如大号 +1.20。
combos[].upsize.labelstringmaxLength:24
combos[].upsize.add数字,空值最小值:0
combos[].kcal数字,空值最小值:0
combos[].imagestringmaxLength:200项目媒体引用(media:<id>)。为空时显示带食物图标的主题色块。
combos[].badgestringmaxLength:16照片上的简短标记,例如“热门”。
combos[].soldOutbooleanfalse

画布示例

将静态属性保存为 params.json 并创建卡片。结果中包含它的 crd_ ID。

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

将此项目添加到播放列表页面的primitives中,并用该 ID 替换示例中的 ID。发布播放列表并分配屏幕。

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

写入实时数据

创建卡片后向其写入文档,之后替换该文档即可更新屏幕,无需重新发布。卡片会按其动态属性检查每次写入,并拒绝它不接受的文档。请使用与播放列表相同的项目。

将文档保存为card-data.json。CLI直接读取文档,无需包装:

{
  "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

或直接调用 API。API 将相同文档包装在 document 字段中。智能体令牌已指定其项目,因此不发送项目头;若发送 ScreenRig-Project,必须与令牌项目匹配。通过环境提供 API 授权;详见 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}]}}'