ইভেন্ট টিকিট এবং বোর্ডিং পাস থেকে শুরু করে লয়্যালটি এবং গিফট কার্ড পর্যন্ত যেকোনো পাসের চেহারা এবং লেআউট কাস্টমাইজ করার জন্য গুগল ওয়ালেট শক্তিশালী টুল অফার করে। এই নির্দেশিকাটি কার্ডের কাঠামো সংজ্ঞায়িত করে এবং গতিশীল, ব্যবহারকারী-নির্দিষ্ট তথ্য প্রদর্শন করে আপনি কীভাবে ব্যবহারকারীর অভিজ্ঞতাকে উপযুক্ত করতে পারেন তার একটি বিস্তৃত সারসংক্ষেপ প্রদান করে।
শুরু করার আগে, উপলব্ধ ক্ষেত্রগুলির সম্পূর্ণ তালিকা দেখতে আপনার পাস ধরণের জন্য নির্দিষ্ট REST API রেফারেন্স ডকুমেন্টেশনটি অবশ্যই দেখুন।
ফাউন্ডেশন: cardTemplateOverride
পাসের লেআউট কাস্টমাইজ করার প্রাথমিক টুল হল classTemplateInfo.cardTemplateOverride অবজেক্ট, যা আপনি পাসের Class রিসোর্সে (যেমন, EventTicketClass , LoyaltyClass ) সংজ্ঞায়িত করেন। এই অবজেক্টটি আপনাকে সারি এবং তাদের মধ্যে থাকা আইটেমগুলি সংজ্ঞায়িত করে পাস গঠন করতে দেয়, যা আপনাকে তথ্য কীভাবে উপস্থাপন করা হবে তার উপর নিয়ন্ত্রণ দেয়।
আপনি Class রিসোর্স (সকল ব্যবহারকারীর মধ্যে ভাগ করা তথ্যের জন্য) এবং Object রিসোর্স (ব্যবহারকারী-নির্দিষ্ট বিবরণের জন্য) উভয় থেকে ডেটা উল্লেখ করতে পারেন।
১. পূর্বনির্ধারিত ওয়ালেট ক্ষেত্রগুলির সাথে কাস্টমাইজ করা
পূর্বনির্ধারিত ক্ষেত্রগুলি হল Google Wallet API-তে একটি নির্দিষ্ট পাস ধরণের জন্য উপলব্ধ স্ট্যান্ডার্ড বৈশিষ্ট্য। এই ক্ষেত্রগুলির নির্দিষ্ট নাম রয়েছে এবং Wallet দ্বারা একটি সুসংগত উপায়ে রেন্ডার করা হয়। উদাহরণগুলির মধ্যে রয়েছে একটি বারকোড, একটি ইভেন্টের নাম, একটি ফ্লাইট নম্বর, অথবা একটি উপহার কার্ড ব্যালেন্স।
এই পূর্বনির্ধারিত ক্ষেত্রগুলির fieldPath উল্লেখ করে, আপনি আপনার পাসের যেকোনো জায়গায় এগুলি সাজাতে পারেন।
উদাহরণ: বারকোড এবং পাস-নির্দিষ্ট বিবরণ প্রদর্শন করা
এই পাস উদাহরণে একটি "শীর্ষ সারি" এবং দ্বিতীয় সারির ভিতরে 3টি ডেটা ফিল্ড রয়েছে। প্রথম আইটেমটি Object থেকে ব্যবহারকারীর নির্দিষ্ট মানগুলি প্রদর্শন করে যেমন পয়েন্ট বা ব্যবহারকারীর জন্য নির্দিষ্ট আসন নম্বর। দ্বিতীয় আইটেমটি Class থেকে ইভেন্টের নাম বা লয়্যালটি প্রোগ্রাম স্তরের মতো বিবরণ প্রদর্শন করে এবং তৃতীয়টি আবার Object থেকে ব্যবহারকারীর নির্দিষ্ট মানগুলি প্রদর্শন করে যেমন সেকেন্ডারি পয়েন্ট বা বিভাগ / কোচ নম্বর।

শ্রেণীর সংজ্ঞা:
...
"classTemplateInfo": {
"cardTemplateOverride": {
"cardRowTemplateInfos": [
{
"threeItems": {
"startItem": {
"firstValue": {
"fields": [
{
"fieldPath": "object.loyaltyPoints.label",
"fieldPath": "object.loyaltyPoints.balance",
}
]
}
},
"middleItem": {
"firstValue": {
"fields": [
{
"fieldPath": "class.rewardsTierLabel",
"fieldPath": "class.rewardsTier",
}
]
}
},
"endItem": {
"firstValue": {
"fields": [
{
"fieldPath": "object.secondaryLoyaltyPoints.label",
"fieldPath": "object.secondaryLoyaltyPoints.balance",
}
]
}
}
}
},
]
}
}
...
"rewardsTier": "Gold",
"rewardsTierLabel": "Tier",
...
বস্তুর সংজ্ঞা
...
"loyaltyPoints": {
"balance": {
"string": "1500"
},
"label": "Points"
},
"secondaryLoyaltyPoints" : {
"balance": {
"money": {
"micros" : "28250000",
"currencyCode": "USD",
}
},
"label": "Balance"
}
...
তারিখ এবং সময় ক্ষেত্র বিন্যাস করুন
সমর্থিত পাসগুলিতে যেকোনো তারিখ বা সময় ক্ষেত্রের জন্য, আপনি dateFormat বৈশিষ্ট্য ব্যবহার করে একটি কাস্টম ফর্ম্যাট নির্দিষ্ট করতে পারেন। এটি আপনাকে পাসে তারিখ কীভাবে প্রদর্শিত হবে তা নিয়ন্ত্রণ করতে দেয়, যেমন শুধুমাত্র সময়, সম্পূর্ণ তারিখ এবং সময়, অথবা শুধুমাত্র তারিখ দেখানো। যদি dateFormat নির্দিষ্ট না থাকে, তাহলে একটি ডিফল্ট ফর্ম্যাট ব্যবহার করা হবে।
"fields": [
{
"fieldPath": "object.validTimeInterval.start.date",
"dateFormat": "DATE_ONLY"
}
]
উপলব্ধ ফর্ম্যাটের সম্পূর্ণ তালিকার জন্য, DateFormat ডকুমেন্টেশন দেখুন।
2. ডেভেলপার-সংজ্ঞায়িত ক্ষেত্রগুলির সাথে কাস্টমাইজেশন
For ultimate flexibility, Google Wallet lets you to create your own custom data fields using textModulesData . This is perfect for displaying unique information that doesn't fit into the predefined fields, such as custom short notes, member benefits, or location-specific details.
আপনি Object অথবা Class এ একটি অনন্য id সহ একটি textModulesData আইটেম সংজ্ঞায়িত করেন এবং তারপর cardTemplateOverride এ সেই id উল্লেখ করেন।
স্ট্রাকচার কার্ড সারি
আপনি প্রতি পাসে এক, দুই, অথবা তিনটি ডেটা আইটেম দিয়ে একটি পাস ডিজাইন করতে পারেন, যা আপনাকে তথ্যকে যুক্তিসঙ্গতভাবে সংগঠিত করার সুযোগ দেয়। আপনি কতগুলি সারি যোগ করতে পারেন তার কোনও কঠোর সীমা নেই, তবে একটি পরিষ্কার ব্যবহারকারীর অভিজ্ঞতার জন্য, কার্ডের মুখের উপর কী প্রদর্শন করা সবচেয়ে গুরুত্বপূর্ণ তা বিবেচনা করুন।
- সর্বোত্তম পদ্ধতি: সম্পূরক তথ্যের জন্য, পাসের বিবরণ ভিউ অথবা অন্যান্য ওয়ালেট বৈশিষ্ট্য যেমন
messages,linksModuleData, অথবাlinkedOfferIdsব্যবহার করুন। এটি মূল পাস ভিউকে অগোছালো রাখে।
উদাহরণ: কাস্টম ডেটা সহ একটি তিন-আইটেম সারি
কাস্টম বিবরণ প্রদর্শনের জন্য একটি সারি তৈরি করুন। লয়্যালটি কার্ডের জন্য, এটি পয়েন্ট, স্তর এবং ব্যালেন্স হতে পারে। একটি ইভেন্ট টিকিটের জন্য, এটি "বিভাগ," "সারি," এবং "আসন" হতে পারে।

ক্লাসের সংজ্ঞা: cardTemplateOverride তিনটি অনন্য আইডি উল্লেখ করে: detail1 , detail2 , এবং detail3 ।
...
"classTemplateInfo": {
"cardTemplateOverride": {
"cardRowTemplateInfos": [
{
"oneItem": {
"item": {
"firstValue": {
"fields": [
{
"fieldPath": "object.accountName",
}
]
}
}
}
},
{
"threeItems": {
"startItem": {
"firstValue": {
"fields": [
{
"fieldPath": "object.loyaltyPoints.label",
"fieldPath": "object.loyaltyPoints.balance",
}
]
}
},
"middleItem": {
"firstValue": {
"fields": [
{
"fieldPath": "class.rewardsTierLabel",
"fieldPath": "class.rewardsTier",
}
]
}
},
"endItem": {
"firstValue": {
"fields": [
{
"fieldPath": "object.secondaryLoyaltyPoints.label",
"fieldPath": "object.secondaryLoyaltyPoints.balance",
}
]
}
}
}
},
{
"threeItems": {
"startItem": {
"firstValue": {
"fields": [
{
"fieldPath": "object.textModulesData['row1left']",
}
]
}
},
"middleItem": {
"firstValue": {
"fields": [
{
"fieldPath": "object.textModulesData['row1mid']"
}
]
}
},
"endItem": {
"firstValue": {
"fields": [
{
"fieldPath": "object.textModulesData['row1right']"
}
]
}
}
}
},
{
"twoItems": {
"startItem": {
"firstValue": {
"fields": [
{
"fieldPath": "object.textModulesData['mem_since']",
}
]
}
},
"endItem": {
"firstValue": {
"fields": [
{
"fieldPath": "object.textModulesData['park']",
}
]
}
}
}
},
]
}
}
...
"rewardsTier": "Gold",
"rewardsTierLabel": "Tier",
অবজেক্টের সংজ্ঞা: Object প্রতিটি ক্ষেত্রের জন্য ডেটা এবং সংশ্লিষ্ট আইডি প্রদান করে।
...
"accountName": "Lorenaisabel Aliwarringlen",
"loyaltyPoints": {
"balance": {
"string": "1500"
},
"label": "Points"
},
"secondaryLoyaltyPoints" : {
"balance": {
"money": {
"micros" : "28250000",
"currencyCode": "USD",
}
},
"label": "Balance"
},
"textModulesData": [
{
"header": "Visits",
"body": "17",
"id": "row1left"
},
{
"header": "Rides",
"body": "259",
"id": "row1mid"
},
{
"header": "Park hours",
"body": "140",
"id": "row1right"
},
{
"header": "Member since",
"body": "Mar 01, 2017",
"id": "mem_since"
},
{
"header": "Parking",
"body": "Included (Free)",
"id": "park"
}
]
...
বৈচিত্র্যের জন্য শ্রেণী বনাম বস্তুর ডেটা
আপনি ক্লাস-লেভেল এবং অবজেক্ট-লেভেল ডেটা একত্রিত করে গতিশীল, ব্যক্তিগতকৃত পাস তৈরি করতে পারেন। এটি একই পাসের বিভিন্ন সংস্করণ তৈরি করার জন্য কার্যকর।
- ক্লাস-লেভেল
textModulesData: ব্যবহারকারীদের একটি গ্রুপের জন্য একই রকম বিশদ বিবরণের জন্য এটি ব্যবহার করুন (যেমন, সমস্ত ভিআইপি টিকিটধারীদের জন্য "ভিআইপিতে স্বাগতম" বার্তা)। - অবজেক্ট-লেভেল
textModulesData: একজন ব্যবহারকারীর জন্য নির্দিষ্ট বিশদের জন্য এটি ব্যবহার করুন (যেমন, "জেন, আপনার সিটে একটি সীমাবদ্ধ ভিউ আছে")।
উদাহরণ: টিয়ার-নির্দিষ্ট পাস প্রদর্শন করা
আপনি বিভিন্ন পাসের বৈচিত্র্যের জন্য বিভিন্ন Class রিসোর্স তৈরি করতে পারেন, যেমন একটি ইভেন্টের জন্য "সাধারণ ভর্তি" বনাম "ভিআইপি", অথবা একটি ফ্লাইটের জন্য "অর্থনীতি" বনাম "ব্যবসা"। প্রতিটি ক্লাসের একটি অনন্য নকশা (নায়কের ছবি, রঙ) এবং ডিফল্ট টেক্সট থাকতে পারে।
![]() | ![]() | ![]() |
| সিলভার দিয়ে শুরু সদস্য | সদস্যকে গোল্ডে আপগ্রেড করা হয়েছে | ডায়মন্ড টিয়ারের আরেক সদস্য |
পাসের বিবরণ দৃশ্যের বিষয়বস্তু
cardTemplateOverride এ উল্লেখ করার সময় linksModuleData , imageModulesData এর ক্ষেত্রগুলি পাসের সামনের দিকে রেন্ডার করা হয় না। এই বিষয়বস্তু স্বয়ংক্রিয়ভাবে পাসের বিবরণ ভিউতে ("পাসের পিছনে") প্রদর্শিত হয়, যা ব্যবহারকারীদের গ্রাহক পরিষেবা লিঙ্ক, প্রচারমূলক ছবি, শর্তাবলী এবং অন্যান্য সম্পূরক তথ্যে আরও ভাল অ্যাক্সেস প্রদান করে।
৩. কার্ডের মুখের বাইরে: অন্যান্য টেমপ্লেট ওভাররাইড
classTemplateInfo অবজেক্টটি কেবল cardTemplateOverride চেয়েও বেশি কিছু অফার করে। আপনার পাসগুলির আরও সমৃদ্ধ এবং স্বজ্ঞাত উপস্থাপনা প্রদানের জন্য আপনি Google Wallet অভিজ্ঞতার অন্যান্য অংশগুলি কাস্টমাইজ করতে পারেন।
সমস্ত উপলব্ধ ওভাররাইড সম্পর্কে সম্পূর্ণ বিবরণের জন্য, ClassTemplateInfo রেফারেন্স ডকুমেন্টেশন দেখুন।
-
listTemplateOverride: গুগল ওয়ালেট অ্যাপের প্রধান তালিকা ভিউতে সারি লেআউট কাস্টমাইজ করে, যার ফলে ব্যবহারকারী তাদের পাস খোলার আগেই সবচেয়ে গুরুত্বপূর্ণ ক্ষেত্রগুলি হাইলাইট করতে পারবেন। -
detailsTemplateOverride: "পাসের বিবরণ" ভিউয়ের (পাসের পিছনের অংশ) সারি এবং লেআউট গঠন করে, যা আপনাকে সম্পূরক তথ্য, লিঙ্ক এবং টেক্সটের জন্য একটি নমনীয় স্থান দেয়। -
cardBarcodeSectionDetails: আপনাকে পাসের বারকোড বিভাগটি কাস্টমাইজ করতে দেয়।


