Bağlılık Şablonu

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Bağlılık kartınızı özelleştirmek için aşağıdaki aracı kullanın ve aşağıdaki kod snippet'lerine bakın.

Bağlılık, destek şablonunun oluşturulmasında başarılı olur. Tanımlanmış şablon yoksa varsayılan şablon kullanılır.

Şablon tanımı

Geçiş şablonu sınıf düzeyinde tanımlanır ve sınıfla ilişkili tüm nesnelerin gösterilmesi için kullanılır. Şablon, kartın farklı bölümlerinde hangi alanların gösterileceğini tanımlar.

Şablon aşağıdaki bölümlere ayrılır:

Android

Şablona genel bakış

Web

Şablona genel bakış

Kart başlığı

Android

Kart başlığı öğeleri
  1. class.programLogo
  2. class.localizedIssuerName
    veya class.issuerName
  3. class.localizedProgramName
    veya class.programName
  4. class.hexBackgroundColor

Web

Kart başlığı öğeleri
  1. class.programLogo
  2. class.localizedIssuerName
    veya class.issuerName
  3. class.localizedProgramName
    veya class.programName
  4. class.hexBackgroundColor

Kart başlığı bölümünde logo, kartı verenin adı ve program başlığı gösterilir. Bunları doldurmak için kullanılan alan referansları veya konumu değiştirilemez.

Kart şablonu

Android

Şablona genel bakış

Web

Şablona genel bakış

Kart şablonu bölümü ek satırları görüntülemek için kullanılır. Bu satırlar metin tabanlı yapılandırılmış veri alanları veya metin modülü alanları içerebilir.

class.classTemplateInfo.cardTemplateOverride.cardRowTemplateInfos[] listesindeki nesne sayısını tanımlayan satır sayısını belirtebilirsiniz. Liste için en az bir öğe gerekiyor ve en fazla iki öğe kullanmak üzere yeniden önerildi. Her öğe aşağıdaki türlerden birinde olmalıdır:

  • Bir öğe kabul eden oneItem:
    • item
  • twoItems. Bu işlem iki öğeyi kabul eder:
    • startItem
    • endItem
  • threeItems kabul edilir. Üç öğe kabul edilir:
    • startItem
    • middleItem
    • endItem

Her bir öğe, tek bir alan seçici (.firstValue), iki alan seçici (.firstValue ve .secondValue) veya önceden tanımlanmış bir öğe (.predefinedItem) olarak tanımlanabilir. Hem seçilen alanın değerleri hem de bunlarla ilgili etiketler gösterilir. İki alan seçici tanımladığınızda, seçilen alanların değerleri "&"; ayırıcı ile gösterilir. Seçili alanların etiketleri için de aynı durum geçerlidir. Önceden tanımlanmış öğeler, daha karmaşık oluşturma işlemlerini tanımlamak için kullanılır.

Aşağıdaki kod örneğinde, iki satır belirtmek için kart şablonu kart satırı bölümlerinin nasıl geçersiz kılınacağı gösterilmektedir. Her satırda etiket olarak altı sınıf düzeyinde textModuleData özel alana ve başlıklarına referans veren üç öğe bulunur:

Python

 {
   ... //Rest of class
   "textModulesData": [
        {
            "header": "Label 1",
            "body": "Some info 1",
            "id": "myfield1"
        },
        {
            "header": "Label 2",
            "body": "Some info 2",
            "id": "myfield2"
        },
        {
            "header": "Label 3",
            "body": "Some info 3",
            "id": "myfield3"
        },
        {
            "header": "Label 4",
            "body": "Some info 4",
            "id": "myfield4"
        },
        {
            "header": "Label 5",
            "body": "Some info 5",
            "id": "myfield5"
        },
        {
            "header": "Label 6",
            "body": "Some info 6",
            "id": "myfield6"
        }
    ],
   "classTemplateInfo": {
        "cardTemplateOverride": {
            "cardRowTemplateInfos": [{
                "threeItems": {
                    "startItem": {
                        "firstValue": {
                            "fields": [{
                                "fieldPath": "class.textModulesData['myfield1']"
                            }]
                        }
                    },
                    "middleItem": {
                        "firstValue": {
                            "fields": [{
                                "fieldPath": "class.textModulesData['myfield2']"
                            }]
                        }
                    },
                    "endItem": {
                        "firstValue": {
                            "fields": [{
                                "fieldPath": "class.textModulesData['myfield3']"
                            }]
                        }
                    },
                }
            },{
                "threeItems": {
                    "startItem": {
                        "firstValue": {
                            "fields": [{
                                "fieldPath": "class.textModulesData['myfield4']"
                            }]
                        }
                    },
                    "middleItem": {
                        "firstValue": {
                            "fields": [{
                                "fieldPath": "class.textModulesData['myfield5']"
                            }]
                        }
                    },
                    "endItem": {
                        "firstValue": {
                            "fields": [{
                                "fieldPath": "class.textModulesData['myfield6']"
                            }]
                        }
                    },
                }
            }]
        }
    }
}
    

Java

// Rest of class
  .setTextModulesData((new ArrayList<TextModuleData>() {
    {
      add((new TextModuleData()).setHeader("Label 1")
        .setBody("Some info 1")
        .setId("myfield1"));
      add((new TextModuleData()).setHeader("Label 2")
        .setBody("Some info 1")
        .setId("myfield2"));
      add((new TextModuleData()).setHeader("Label 3")
        .setBody("Some info 3")
        .setId("myfield3"));
      add((new TextModuleData()).setHeader("Label 4")
        .setBody("Some info 4")
        .setId("myfield4"));
      add((new TextModuleData()).setHeader("Label 5")
        .setBody("Some info 5")
        .setId("myfield5"));
      add((new TextModuleData()).setHeader("Label 6")
        .setBody("Some info 5")
        .setId("myfield6"));
    }
  }))
  .setClassTemplateInfo((new ClassTemplateInfo())
    .setCardTemplateOverride((new CardTemplateOverride())
      .setCardRowTemplateInfos(new ArrayList<CardRowTemplateInfo>() {
        {
          add((new CardRowTemplateInfo()).setThreeItems((new CardRowThreeItems())
            .setStartItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){
              {
                add((new FieldReference()).setFieldPath("class.textModulesData['myfield1']"));
              }
            })))
            .setMiddleItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){
              {
                add((new FieldReference()).setFieldPath("class.textModulesData['myfield2']"));
              }
            })))
            .setEndItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){
              {
                add((new FieldReference()).setFieldPath("class.textModulesData['myfield3']"));
              }
            })))
          ));
          add((new CardRowTemplateInfo()).setThreeItems((new CardRowThreeItems())
            .setStartItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){
              {
                add((new FieldReference()).setFieldPath("class.textModulesData['myfield4']"));
              }
            })))
            .setMiddleItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){
              {
                add((new FieldReference()).setFieldPath("class.textModulesData['myfield5']"));
              }
            })))
            .setEndItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){
              {
                add((new FieldReference()).setFieldPath("class.textModulesData['myfield6']"));
              }
            })))
          ));
          }
  })))
    

PHP

// Rest of class
    $textModulesData1 = new Google_Service_Walletobjects_TextModuleData();
    $textModulesData1->setBody("Some info 1");
    $textModulesData1->setHeader("Label 1");
    $textModulesData1->setId("myfield1");

    $textModulesData2 = new Google_Service_Walletobjects_TextModuleData();
    $textModulesData2->setBody("Some info 2");
    $textModulesData2->setHeader("Label 2");
    $textModulesData2->setId("myfield2");

    $textModulesData3 = new Google_Service_Walletobjects_TextModuleData();
    $textModulesData3->setBody("Some info 3");
    $textModulesData3->setHeader("Label 3");
    $textModulesData3->setId("myfield3");

    $textModulesData4 = new Google_Service_Walletobjects_TextModuleData();
    $textModulesData4->setBody("Some info 4");
    $textModulesData4->setHeader("Label 4");
    $textModulesData4->setId("myfield4");

    $textModulesData5 = new Google_Service_Walletobjects_TextModuleData();
    $textModulesData5->setBody("Some info 5");
    $textModulesData5->setHeader("Label 5");
    $textModulesData5->setId("myfield5");

    $textModulesData6 = new Google_Service_Walletobjects_TextModuleData();
    $textModulesData6->setBody("Some info 6");
    $textModulesData6->setHeader("Label 6");
    $textModulesData6->setId("myfield6");

    $textModulesDatas = array($textModulesData1, $textModulesData2, $textModulesData3,
                  $textModulesData4, $textModulesData5, $textModulesData6);

    $startItemField = new Google_Service_Walletobjects_FieldReference();
    $startItemField->setFieldPath("class.textModulesData['myfield1']");

    $startItemFirstValue = new Google_Service_Walletobjects_FieldSelector();
    $startItemFirstValue->setFields(array($startItemField));

    $startItem = new Google_Service_Walletobjects_TemplateItem();
    $startItem->setFirstValue($startItemFirstValue);

    $middleItemField = new Google_Service_Walletobjects_FieldReference();
    $middleItemField->setFieldPath("class.textModulesData['myfield2']");

    $middleItemFirstValue = new Google_Service_Walletobjects_FieldSelector();
    $middleItemFirstValue->setFields(array($middleItemField));

    $middleItem = new Google_Service_Walletobjects_TemplateItem();
    $middleItem->setFirstValue($middleItemFirstValue);

    $endItemField = new Google_Service_Walletobjects_FieldReference();
    $endItemField->setFieldPath("class.textModulesData['myfield3']");

    $endItemFirstValue = new Google_Service_Walletobjects_FieldSelector();
    $endItemFirstValue->setFields(array($endItemField));

    $endItem = new Google_Service_Walletobjects_TemplateItem();
    $endItem->setFirstValue($endItemFirstValue);

    $cardRowTemplate = new Google_Service_Walletobjects_CardRowThreeItems();
    $cardRowTemplate->setStartItem($startItem);
    $cardRowTemplate->setMiddleItem($middleItem);
    $cardRowTemplate->setEndItem($endItem);

    $cardRowTemplateInfo1 = new Google_Service_Walletobjects_CardRowTemplateInfo();
    $cardRowTemplateInfo1->setThreeItems($cardRowTemplate);

    $startItemField2 = new Google_Service_Walletobjects_FieldReference();
    $startItemField2->setFieldPath("class.textModulesData['myfield4']");

    $startItemFirstValue2 = new Google_Service_Walletobjects_FieldSelector();
    $startItemFirstValue2->setFields(array($startItemField2));

    $startItem2 = new Google_Service_Walletobjects_TemplateItem();
    $startItem2->setFirstValue($startItemFirstValue2);

    $middleItemField2 = new Google_Service_Walletobjects_FieldReference();
    $middleItemField2->setFieldPath("class.textModulesData['myfield5']");

    $middleItemFirstValue2 = new Google_Service_Walletobjects_FieldSelector();
    $middleItemFirstValue2->setFields(array($middleItemField2));

    $middleItem2 = new Google_Service_Walletobjects_TemplateItem();
    $middleItem2->setFirstValue($middleItemFirstValue2);

    $endItemField2 = new Google_Service_Walletobjects_FieldReference();
    $endItemField2->setFieldPath("class.textModulesData['myfield6']");

    $endItemFirstValue2 = new Google_Service_Walletobjects_FieldSelector();
    $endItemFirstValue2->setFields(array($endItemField2));

    $endItem2 = new Google_Service_Walletobjects_TemplateItem();
    $endItem2->setFirstValue($endItemFirstValue2);

    $cardRowTemplate2 = new Google_Service_Walletobjects_CardRowThreeItems();
    $cardRowTemplate2->setStartItem($startItem2);
    $cardRowTemplate2->setMiddleItem($middleItem2);
    $cardRowTemplate2->setEndItem($endItem2);

    $cardRowTemplateInfo2 = new Google_Service_Walletobjects_CardRowTemplateInfo();
    $cardRowTemplateInfo2->setThreeItems($cardRowTemplate2);

    $cardTemplateOverride = new Google_Service_Walletobjects_CardTemplateOverride();
    $cardTemplateOverride->setCardRowTemplateInfos(array($cardRowTemplateInfo1,
                  $cardRowTemplateInfo2));

    $classTemplateInfo = new Google_Service_Walletobjects_ClassTemplateInfo();
    $classTemplateInfo->setCardTemplateOverride($cardTemplateOverride);

    $payload->setTextModulesData($textModulesDatas);
    $payload->setClassTemplateInfo($classTemplateInfo);
    

Kod, aşağıdaki kod şablonu bölüm biçimine sahip bir kart oluşturur:

Bir etiketi geçersiz kılma örneği.

Boş olan öğeler gösterilmez. Daha ayrıntılı bilgi için Alan Referansları sayfasını inceleyin. Bir satırdaki tüm öğeler boşsa satır görüntülenmez. Bir satırdaki öğelerin tümü boşken bazıları boşsa boş olmayan öğeler yeniden düzenlenir ve daha az öğe içeren bir satır olarak görüntülenir.

Kart şablonunu geçersiz kılmazsanız varsayılan satır sayısı, varsayılan öğe sayısı ve varsayılan alan referansları kullanılır. Daha fazla ayrıntı için Varsayılan şablon bölümüne bakın.

Bir Lokomotif Resim tanımladıktan sonra, cardRowTemplateInfos listesinde birden fazla satır varsa ilk satırdan sonra veya yalnızca bir satır varsa bu satırın üstünde görünebilir.

Kart barkodu

Android

Kart barkodu öğeleri
  1. class.classTemplateInfo
      .cardBarcodeSectionDetails
      .firstTopDetail
  2. class.classTemplateInfo
      .cardBarcodeSectionDetails
      .secondTopDetail
  3. object.barcode.type ve object.barcode.value
    veya object.accountId
  4. object.barcode.alternateText
    veya object.accountId
    ya da object.barcode.value
  5. class.classTemplateInfo
      .cardBarcodeSectionDetails
      .firstBottomDetail
  6. object.heroImage
    veya class.heroImage

Web

Kart barkodu öğeleri
  1. class.classTemplateInfo
      .cardBarcodeSectionDetails
      .firstTopDetail
  2. class.classTemplateInfo
      .cardBarcodeSectionDetails
      .secondTopDetail
  3. object.barcode.type ve object.barcode.value
    veya object.accountId
  4. object.barcode.alternateText
    veya object.accountId
    ya da object.barcode.value
  5. class.classTemplateInfo
      .cardBarcodeSectionDetails
      .firstBottomDetail

Kart barkodu bölümü, barkodun üstünde ve altında ekstra metin veya resimler görüntülemek için kullanılır. Bu bölümdeki alanlardan hiçbiri zorunlu değildir.

Barkodun üstünde ve altında olmak üzere iki yan yana alanı tanımlamak için kullanılabilecek üç alan seçici vardır. Bunlar etiket olmadan görüntülenir ve metin tabanlı yapılandırılmış veri alanları, metin modülü alanları veya resim modülü alanları olabilir. Kullandığınız resimler marka yönergelerine uygun olmalıdır.

Barkod, bir tür ve bir değerle tanımlanır. Desteklenen barkod türlerinin listesi için Referans'a bakın. Ayrıca, bir metin, barkodun hemen altında gösterilebilir. Bu metin, diğer kullanımlarının yanı sıra barkodları taramayı kolaylaştırabilir.

Aşağıdaki kod örneğinde, barkodun üzerinde bir resmin gösterilmesi için kullanımın barkod bölümünü nasıl geçersiz kılacağınız gösterilmektedir:

Python

#... rest of class
    "imageModulesData": [
        {
            "mainImage": {
                "sourceUri": {
                    "uri":  "http://farm4.staticflickr.com/3738/12440799783_3dc3c20606_b.jpg",
                    "description": "Coffee"
                }
            },
            "Id": "myimage"
        }
    ],
    "classTemplateInfo": {
        "cardBarcodeSectionDetails": {
            "firstTopDetail": {
                "fieldSelector": {
                    "fields": [
                        {
                        "fieldPath": "class.imageModulesData['myimage'].mainImage"
                        }
                    ]
                }
            }
        }
    }
}
    

Java

//... rest of class
  .setImageModulesData((new ArrayList<ImageModuleData>() {
    {
      add((new ImageModuleData())
        .setId("myimage")
        .setMainImage((new Image()).setSourceUri((new ImageUri()).setDescription("Coffee beans")
          .setUri("http://farm4.staticflickr.com/3738/12440799783_3dc3c20606_b.jpg"))));
        }
      }))
      .setClassTemplateInfo((new ClassTemplateInfo())
        .setCardBarcodeSectionDetails((new CardBarcodeSectionDetails())
          .setFirstTopDetail((new BarcodeSectionDetail())
            .setFieldSelector((new FieldSelector())
              .setFields((new ArrayList<FieldReference>(){
                {
                  add((new FieldReference()).setFieldPath("class.imageModulesData['myimage'].mainImage"));
                }
            })))))
      }
    

PHP

//... rest of class
    $imageUri = new Google_Service_Walletobjects_ImageUri();
    $imageUri->setUri("https://farm8.staticflickr.com/7340/11177041185_a61a7f2139_o.jpg");
    $imageUri->setDescription("Baconrista flights image");
    $image = new Google_Service_Walletobjects_Image();
    $image->setSourceUri($imageUri);
    $imageModulesData = new Google_Service_Walletobjects_ImageModuleData();
    $imageModulesData->setMainImage($image);
            $imageModulesData->setId("myimage");

    $cardBarcodeFieldReference = new Google_Service_Walletobjects_FieldReference();
    $cardBarcodeFieldReference->setFieldPath("class.imageModulesData['myimage'].mainImage");

    $cardBarcodeFieldSelector = new Google_Service_Walletobjects_FieldSelector();
    $cardBarcodeFieldSelector->setFields(array($cardBarcodeFieldReference));

    $cardBarcodeDetail = new Google_Service_Walletobjects_BarcodeSectionDetail();
    $cardBarcodeDetail->setFieldSelector($cardBarcodeFieldSelector);

    $cardBarcodeSectionDetails = new Google_Service_Walletobjects_CardBarcodeSectionDetails();
    $cardBarcodeSectionDetails->setFirstTopDetail($cardBarcodeDetail);

    $classTemplateInfo = new Google_Service_Walletobjects_ClassTemplateInfo();
    $classTemplateInfo->setCardBarcodeSectionDetails($cardBarcodeSectionDetails);

    $payload->setClassTemplateInfo($classTemplateInfo);
            $payload->setImageModuleData($imageModulesData);
    

Kod, aşağıdaki barkod bölümü biçimine sahip bir kart oluşturur:

Kart barkodu geçersiz kılma örneği.

Barkod bölümünü geçersiz kılmazsanız varsayılan barkod alanları kullanılır. Daha fazla bilgi için Varsayılan şablon bölümüne bakın.

Ayrıntılar şablonu

Android

Ayrıntılar şablonu bölümleri
  • class.classTemplateInfo.detailsTemplateOverride
      .detailsItemInfos[0].item
  • class.classTemplateInfo.detailsTemplateOverride
      .detailsItemInfos[1].item
  • class.classTemplateInfo.detailsTemplateOverride
      .detailsItemInfos[2].item
  • class.classTemplateInfo.detailsTemplateOverride
      .detailsItemInfos[3].item
  • ...

Web

Ayrıntılar şablonu bölümleri
  • class.classTemplateInfo.detailsTemplateOverride
      .detailsItemInfos[0].item
  • class.classTemplateInfo.detailsTemplateOverride
      .detailsItemInfos[1].item
  • class.classTemplateInfo.detailsTemplateOverride
      .detailsItemInfos[2].item
  • class.classTemplateInfo.detailsTemplateOverride
      .detailsItemInfos[3].item
  • ...

Ayrıntı şablonu bölümü class.classTemplateInfo.detailsTemplateOverride.detailsItemInfos[] öğelerini içeren bir listedir. Öğeler; herhangi bir tür yapılandırılmış veri alanı, metin modülü alanı, bağlantı modülü alanı, resim modülü alanı veya mesaj içerebilir.

Her bir öğe, tek bir alan seçici (.firstValue), iki alan seçici (.firstValue ve .secondValue) veya önceden tanımlanmış bir öğe (.predefinedItem) olarak tanımlanabilir. Hem seçilen alanın değerleri hem de bunlarla ilgili etiketler gösterilir. İki alan seçici tanımladığınızda, seçilen alanların değerleri bir "/" ayırıcıyla gösterilir. Seçili alanların etiketleri için de aynı durum geçerlidir. Önceden tanımlanmış öğeler, daha karmaşık oluşturma işlemlerini tanımlamak için kullanılır. Resim modülü alanları etiket olmadan tam genişlikte oluşturulur.

Aşağıdaki kod örneğinde, etiketi olan tek bir linksModuleData alanını göstermek için kullanımın ayrıntı bölümünün nasıl geçersiz kılınacağı gösterilmektedir:

Python

//... rest of class
   "linksModuleData": {
        "uris": [
            {
                "uri": "http://maps.google.com/",
                "description": "Nearby Locations",
                "id":"mylink"
            }
        ]
    },
   "classTemplateInfo": {
        "detailsTemplateOverride": {
            "detailsItemInfos": [
                {
                    "item":{
                        "firstValue": {
                            "fields": [{
                                "fieldPath": "class.linksModuleData.uris['mylink']"
                            }]
                        }
                    }
                }
            ]
        }
     }
//... rest of class
    

Java

 //... rest of class
  .setLinksModuleData((new ArrayList<LinksModuleData>() {
    {
      add((new LinksModuleData()).setDescription("Nearby Locations")
        .setUri("http://maps.google.com/")
        .setId("mylink"));
      }))
      .setClassTemplateInfo((new ClassTemplateInfo())
        .setDetailsTemplateOverride((new DetailsTemplateOverride())
          .setDetailsItemInfos(new ArrayList<DetailsItemInfo>(){
            {
              add((new DetailsItemInfo())
                .setItem((new TemplateItem()).setFirstValue((new FieldSelector()).setFields(new ArrayList<FieldReference>(){
                  {
                    add((new FieldReference()).setFieldPath("class.linksModuleData.uris['mylink']"));
                  }
                }))));
              }
            }))
//... rest of class
    

PHP



    //... rest of class building
    $locationUri = new Google_Service_Walletobjects_Uri();
    $locationUri->setUri("http://maps.google.com/");
    $locationUri->setDescription("Nearby Locations");
    $locationUri->setId("mylink");

    $linksModuleData = new Google_Service_Walletobjects_LinksModuleData();
    $linksModuleData->setUris(array($locationUri));

    $detailItemFieldReference = new Google_Service_Walletobjects_FieldReference();
    $detailItemFieldReference->setFieldPath("class.linksModuleData.uris['mylink']");
    $detailItemFieldSelector = new Google_Service_Walletobjects_FieldSelector();
    $detailItemFieldSelector->setFields(array($detailItemFieldReference));

    $detailItem = new Google_Service_Walletobjects_TemplateItem();
    $detailItem->setFirstValue($detailItemFieldSelector);

    $detailsItemInfo = new Google_Service_Walletobjects_DetailsItemInfo();
    $detailsItemInfo->setItem($detailItem);

    $cardDetailsTemplateOverride = new Google_Service_Walletobjects_DetailsTemplateOverride();
    $cardDetailsTemplateOverride->setDetailsItemInfos(array($detailsItemInfo));

    $classTemplateInfo = new Google_Service_Walletobjects_ClassTemplateInfo();
    $classTemplateInfo->setDetailsTemplateOverride($cardDetailsTemplateOverride);

    $payload->setClassTemplateInfo($classTemplateInfo);
    $payload->setLinksModuleData($linksModuleData);
    //... rest of class
    

Kod, aşağıdaki ayrıntılar bölümü biçimine sahip bir kart oluşturur:

Ayrıntı geçersiz kılma örneği.

Boş olan öğeler gösterilmez. Daha ayrıntılı bilgi için Alan Referansları sayfasını inceleyin.

Ayrıntılar şablonunu geçersiz kılmazsanız varsayılan sırayla referans alanlarının varsayılan listesi gösterilir. Daha fazla bilgi için Varsayılan şablon bölümüne bakın.

Liste şablonu

Şablon öğelerini listeleme
  1. class.classTemplateInfo.listTemplateOverride
      .firstRowOption.fieldOption.fields[]
  2. class.classTemplateInfo.listTemplateOverride
      .secondRowOption.fields[]
  3. class.programLogo
  4. class.hexBackgroundColor

Liste şablonu bölümü, Google Pay uygulamasının "Kartlar" görünümünde hangi alanın gösterileceğini seçmek için kullanılır. Kart, listede logo, arka plan rengi ve üç satırla gösterilir.

Aşağıdaki kod örneğinde, tek bir kartın nesne son kullanma tarihi alanının liste şablonunun ilk satırında gösterilmesi için bir karttaki liste şablonunun nasıl geçersiz kılınacağı gösterilmektedir:

Python


#... rest of class definition
   "classTemplateInfo": {
        "listTemplateOverride":{
            "firstRowOption": {
                "fieldOption":{
                    "fields": [{
                        "fieldPath": "object.validTimeInterval.end"
                    }]
                }
            }
        }
   }
}
    

Java

//... rest of class
  .setClassTemplateInfo((new ClassTemplateInfo())
    .setListTemplateOverride((new ListTemplateOverride())
      .setFirstRowOption((new FirstRowOption())
        .setFieldOption((new FieldSelector()).setFields(new ArrayList<FieldReference>(){
          {
            add((new FieldReference()).setFieldPath("object.validTimeInterval.end"));
          }
        }))))
//... rest of class
    

PHP

    //... rest of class
    $fieldReference = new Google_Service_Walletobjects_FieldReference();
    $fieldReference->setFieldPath("object.validTimeInterval.end");

    $fieldOption = new Google_Service_Walletobjects_FieldSelector();
    $fieldOption->setFields(array($fieldReference));

    $firstRowOption = new Google_Service_Walletobjects_FirstRowOption();
    $firstRowOption->setFieldOption($fieldOption);

    $listTemplateOverride = new Google_Service_Walletobjects_ListTemplateOverride();
    $listTemplateOverride->setFirstRowOption($firstRowOption);

    $classTemplateInfo = new Google_Service_Walletobjects_ClassTemplateInfo();
    $classTemplateInfo->setListTemplateOverride($listTemplateOverride);

    $payload->setClassTemplateInfo($classTemplateInfo);
    //... rest of class
    

Kod, aşağıdaki liste şablonu oluşturma işlemine tabi bir kart oluşturur:

Liste geçersiz kılma örneği.

Üç satır, alan seçiciyle tanımlanabilir. Alanlar etiket olmadan görüntülenir.

Etiketler

Tüm yapılandırılmış veri alanlarında Google tarafından sağlanan bir etiket bulunur. Google, desteklenen tüm dillerde bu etiketlerin her biri için çeviri sağlamaktan sorumludur.

Bu etiketlerden bazılarını class.custom<name_of_the_field>Label alanlarından birini kullanarak özelleştirebilirsiniz. Bir etiketi özelleştirdiğinizde, desteklemek istediğiniz tüm dillerde bir etiketin çevirilerini sağlamaktan sorumlu olursunuz.

Alan referansları

Alan referansları, şablonun farklı bölümlerinde class.classTemplateInfo.*.fields[] biçiminde kullanılır. Bir alan başvurusu, yapılandırılmış veri alanları, metin modülü alanları, bağlantı modülü alanları, resim modülü alanları veya mesajlara giden yolların listesini içerir.

Her alan referansında tüm yol türlerine izin verilmez. Örneğin, bazı alan referansları yalnızca metin tabanlı yapılandırılmış veri alanlarına veya metin modülü alanlarına giden yollara izin verir. Metin tabanlı yapılandırılmış alanlar; dize, yerelleştirilmiş dize, tarih veya para türündeki yapılandırılmış veri alanlarıdır.

Liste, bir yedek mantığı uygulamak için kullanılabilir. Yani, listedeki ilk yol boş bir alan olarak çözümlenirse sonraki yol değerlendirilir. Yedek mantığı genellikle metin tabanlı yapılandırılmış veri alanlarını veya metin modülü alanlarını hedefler. Aynı listede farklı alan türlerini karıştırmayın. Yedek mantığını dikkatli bir şekilde ve yalnızca bazı nesnelerde tutarlı bir kalıp modeli olmasını beklediğiniz belirli durumlarda kullanın. Çoğu zaman ayrı kullanım alanları için ayrı sınıflar oluşturmak daha kolaydır.

Alan referans listesindeki tüm yollar boş alanlara çözümlenirse alan referansını kullanan öğe görüntülenmez. Alan başvurusunu kullanan öğenin her zaman var olmasını istiyorsanız en az bir yolun boş olmadığından emin olun. Bazı alanlar yalnızca boşluk içeren dizelere izin verse bile, boş değeri temsil etmek için bir alanı "-" gibi özel bir karaktere ayarlamanızı öneririz.

Bir listede yer alan bir alana referans vermek için listede ilgili alanın dizinini veya çoğu durumda bir referans kimliği kullanabilirsiniz. Bir listenin başvuruda bulunabileceği öğelerin öğeleri arasında .id alanı bulunur. Mümkün olduğunda listedeki alanın dizini üzerinde bir referans kimliği kullanmanızı öneririz.

Bir listede yer alan alanlara nasıl referans verileceğine dair bir örneği burada bulabilirsiniz.

  • object.imageModulesData[0].id = my-first-id
  • object.imageModulesData[1].id = my-second-id
  • class.detailsTemplateOverride.detailsItemInfos[0].item.firstValue.fields[0].fieldPath = object.imageModulesData[‘my-second-id’]
  • class.detailsTemplateOverride.detailsItemInfos[1].item.firstValue.fields[0].fieldPath = object.imageModulesData[0]

Bu durumda, kartın ayrıntılar bölümündeki ilk öğe, nesnede tanımlanan ikinci resimdir. Bununla birlikte, kullanımın ayrıntılar bölümündeki ikinci öğe, nesnede bildirilen ilk resimdir.

Varsayılan şablon

Android

Varsayılan şablon öğeleri
  1. class.programLogo
  2. class.localizedIssuerName
    veya class.issuerName
  3. class.localizedProgramName
    veya class.programName
  4. POINTS
    veya object.loyaltyPoints.localizedLabel
    ya da object.loyaltyPoints.label
  5. object.loyaltyPoints.balance
  6. ÖDÜLLER
    veya object.secondaryLoyaltyPoints.localizedLabel
    ya da object.secondaryLoyaltyPoints.label
  7. object.secondaryLoyaltyPoints.balance
  8. object.barcode.type ve object.barcode.value
    veya object.accountId
  9. object.barcode.alternateText
    veya object.accountId
    ya da object.barcode.value
  10. object.heroImage
    veya class.heroImage
  11. class.hexBackgroundColor
  12. ÜYE ADI
    veya class.localizedAccountNameLabel
    ya da class.accountNameLabel
  13. object.accountName
  14. ÜYE KİMLİĞİ
    veya class.localizedAccountIdLabel
    ya da class.accountIdLabel
  15. object.accountId
  16. ÖDÜLLÜ KATMAN
    veya class.localizedRewardsTierLabel
    ya da class.rewardsTierLabel
  17. class.localizedRewardsTier
    veya class.rewardsTier
  18. İKİNCİ ÖDÜLLÜ KATMAN
    veya class.localizedSecondaryRewardsTierLabel
    ya da class.secondaryRewardsTierLabel
  19. class.localizedSecondaryRewardsTier
    veya class.secondaryRewardsTier
  20. class.imageModulesData[0].mainImage
  21. object.imageModulesData[0].mainImage
  22. class.messages[].header
  23. class.messages[].body
  24. object.messages[].header
  25. object.messages[].body
  26. class.textModulesData[0..9].header
  27. class.textModulesData[0..9].body
  28. object.textModulesData[0..9].header
  29. object.textModulesData[0..9].body
  30. class.linksModuleData.uris[].description
  31. object.linksModuleData.uris[].description
  32. class.homepageUri

Web

Varsayılan şablon öğeleri
  1. class.programLogo
  2. class.localizedIssuerName
    veya class.issuerName
  3. class.localizedProgramName
    veya class.programName
  4. POINTS
    veya object.loyaltyPoints.localizedLabel
    ya da object.loyaltyPoints.label
  5. object.loyaltyPoints.balance
  6. ÖDÜLLER
    veya object.secondaryLoyaltyPoints.localizedLabel
    ya da object.secondaryLoyaltyPoints.label
  7. object.secondaryLoyaltyPoints.balance
  8. object.barcode.type ve object.barcode.value
    veya object.accountId
  9. object.barcode.alternateText
    veya object.accountId
    ya da object.barcode.value
  10. object.heroImage
    veya class.heroImage
  11. class.hexBackgroundColor
  12. ÜYE ADI
    veya class.localizedAccountNameLabel
    ya da class.accountNameLabel
  13. object.accountName
  14. ÜYE KİMLİĞİ
    veya class.localizedAccountIdLabel
    ya da class.accountIdLabel
  15. object.accountId
  16. ÖDÜLLÜ KATMAN
    veya class.localizedRewardsTierLabel
    ya da class.rewardsTierLabel
  17. class.localizedRewardsTier
    veya class.rewardsTier
  18. İKİNCİ ÖDÜLLÜ KATMAN
    veya class.localizedSecondaryRewardsTierLabel
    ya da class.secondaryRewardsTierLabel
  19. class.localizedSecondaryRewardsTier
    veya class.secondaryRewardsTier
  20. class.imageModulesData[0].mainImage
  21. object.imageModulesData[0].mainImage
  22. class.messages[].header
  23. class.messages[].body
  24. object.messages[].header
  25. object.messages[].body
  26. class.textModulesData[0..9].header
  27. class.textModulesData[0..9].body
  28. object.textModulesData[0..9].header
  29. object.textModulesData[0..9].body
  30. class.linksModuleData.uris[].description
  31. object.linksModuleData.uris[].description
  32. class.homepageUri

Resim modülü alanları için sınıftan yalnızca bir resim modülü alanı ve nesneden yalnızca bir resim modülü alanı gösteririz. Her iki düzeyde birden fazla resim modülü alanına ihtiyacınız varsa varsayılan şablonu geçersiz kılın.

Metin modülü alanları için sınıftan yalnızca 10 metin modülü alanı ve nesneden en fazla 10 metin modülü alanı gösteririz. Alanlar, dizide tanımlandığı sırayla gösterilir. Her iki düzeyde 10'dan fazla metin modülü alanına ihtiyacınız varsa varsayılan şablonu geçersiz kılın.

Mesajlarda, sınıftan ve nesneden en fazla 10 mesaj gösteriyoruz. İletilerin sırasını garanti etmiyoruz. Her iki düzeyde de 10'dan fazla iletiye veya herhangi bir sipariş için garantiye ihtiyacınız varsa varsayılan şablonu geçersiz kılın.

Bağlantılar modülü alanında, tanımlayabileceğiniz uri sayısıyla ilgili herhangi bir sınır yoktur. Her seviye (sınıf veya nesne) için Uris aşağıdaki sırayla gruplandırılır:

  1. Harita koordinatları
  2. Telefon numaraları
  3. E-posta adresleri
  4. Web sayfaları

URI'ler her grup için dizide tanımlandığı sırayla gösterilir. Farklı bir sıralamaya ihtiyacınız varsa varsayılan şablonu geçersiz kılın.

Varsayılan liste şablonu öğeleri
  1. class.localizedIssuerName
    veya class.issuerName
  2. class.localizedProgramName
    veya class.programName
  3. class.programLogo
  4. class.hexBackgroundColor