Prepopulating fields
To prepopulate one of the widget fields, partners can modify the snippet that loads the field by replacing the line where the PBK object is created:
var pbk = {
settings : {
kicker : '#initial-container',
contentContainer: '#expanded-container',
prepopulate: {
field1: 'value1',
field2: 'value2',
// ...
fieldN: 'valueN'
}
}
};
For example, the following snippet uses the yourUserData
variable (that should exist in the hosting page), to
prepopulate an end user's name and email address from the data that the end user provides on the partner web site:
var pbk = {
settings : {
kicker : '#initial-container',
contentContainer: '#expanded-container',
prepopulate: {
givenName: yourUserData.givenName,
surname: yourUserData.surname,
email: yourUserData.email
}
}
};
Fields specification
Prevalidated fields
Prevalidated fields have a specific format or a list of possible values. If the end user enters invalid information, the values are ignored.
Field | Description | Examples |
---|---|---|
language | The language to be used by the widget must be an ISO 639-1 language code with an optional an ISO 3166-1 alpha 2 country code and must be one of the supported languages. | "en" , "fr_CA" |
pickupCountry | The initial value for the pickup country field must be an ISO 3166-1 alpha-2 code and must be one of the supported countries. | "en" |
pickupAirport | The initial value for the pickup location field must be an IATA airport code. The value will be preselected when only one match occurs. If provided, this value takes precedence over pickupLocationQuery , which will be ignored. | "MIA" |
pickupDateTime | The initial values for the pickup date & time must have the format YYYY-MM-DD HH:mm . While other formats can be used, we do not guarantee the they will be supported in the future. | "2018-08-30 15:45" |
dropoffDateTime | See above. | See above. |
driverAge | The initial value for the driver age field must be a number greater than or equal to 18. | 35 |
loyaltyProgram | The initial value for the loyalty program field must be a valid program ID for one of the supported loyalty programs. | "DL" |
User input fields
Even if an end user enters invalid information, that information will be used in the prepopulated fields. Those fields will be validated later, as they normally would if the user had provided valid information.
Field | Description | Examples |
---|---|---|
pickupLocationQuery | The initial value for the pickup location field. If provided, this value will trigger a search, and the results will be prepopulated in the drop-down list. The value will be preselected when only one match occurs. If pickupAirport is provided, it takes precedence and this field will be ignored. | "Boston downtown" |
givenName | The initial value for the driver's given name. | "John" |
surname | The initial value for the driver's surname. | "Locke" |
phone | The complete driver's phone number with country code and area code. | "+1 314-512-1000" |
email | The initial value for the driver's email address. | "john.locke@example.com" |
flightNumber | A flight number including the airline code. | "AB123" |
loyaltyMembershipId | The initial value for the driver membership ID for the loyalty program specified by loyaltyProgram . | "1234567890" |
Bypassing valid steps
It's possible to automatically advance through the widget steps if there's enough information to do so. That's the widget's bypass functionality. If all required information for a given step is prepopulated and bypass is active, then the widget will automatically go to the next step.
This behavior is repeated as long as the required information is prepopulated and correct, up to the Packages & Extras step, allowing widget implementations to be used as a core of a deep linking system.
To use bypass, it activate the bypassSteps
setting:
var pbk = {
settings : {
kicker : '#initial-container',
contentContainer: '#expanded-container',
bypassSteps: true,
prepopulate: { /* prepopulated fields */ }
}
};
Rate selection fields
You may notice that there's no rate related fields (e.g. which brand or car) in the fields above. That's because selecting a car or brand isn't part of any web form inputs. But you still need to prepopulate this information to be able to bypass the rates step.
Field | Description | Examples |
---|---|---|
brand | Specifies which brand should be selected. Valid options are "AL" for Alamo, "ET" for Enterprise and "ZL" for National. | "AL" |
sippCode | Specifies which car category should be selected. It must be a valid ACRISS car classification code. Note that car availability depends on fleet, location, dates and station availability. | "ECAR" , "ICAR" |
packageName | Specifies which package should be selected. | "GOLDGPS" |
paymentMethod | Specifies which payment method should be selected. Valid options are "Local" , "Prepay" , "Voucher" and "Direct bill" . Not all options may valid for your contract. | "Local" |