Unified Shipping Module - Data Model
Types used in configuration options
Contents
- ShippingOption
- PickupShippingOption
- ServiceLevelShippingOption
- PorterbuddyShippingOption
- ShippingLocation
- ShippingServiceLevel
- Price
- DeliveryWindow
- ShippingCategory
- SelectedShipping
- SelectedPorterbuddyOption
- SelectionPropertyChangeListener
- RecipientInfo
- CheckoutCallbacks
- ColorScheme
Type Reference
A ShippingOption configures the look of a user selectable simple shipping option, without a location or selectable delivery windows
Key | Type | Allowed values | Description |
---|---|---|---|
id | string | Unique identifier for the shipping option | |
name | string | Name of the shipping option to be displayed | |
minDeliveryDays | number | minimal number of days the delivery needs to reach the destination, if 0 is specified, same-day delivery is assumed | |
maxDeliveryDays | number | maximum number of the days the delivery might need to reach the destination. If this is specified, the delivery time will be displayed as "x to y dager" | |
price | Price | Price for the shipping option, if not specified, free is assumed | |
description | string | Additional description for the shipping text, displayed below the delivery time if specified | |
logoUrl | string | A url to a logo image to be displayed for the shipping option. Maximum displayable logo size is 70x37 px. The logo url can be specified as relative to the embedding host, or absolute | |
additionalData | any | Any arbitrary data that should be returned when the option is selected. This data is not used by the checkout anywhere, it is just passed through as-is. | |
updateInterval | number | Interval for periodic updates of this shipping option in seconds. Periodic updates will only be performedif an update handler function is defined as well | |
onUpdateOption | (callback: updatedProps => void) => void | Update handler function for periodic updates. The function passed here gets called on each periodic update with a callback function to pass the updated properties of this shipping option. | |
default | boolean | Pre-select this option after initialization |
A shipping option where the user can select a location from a list, e.g. for pickup point delivery or self-pickup at a store
Key | Type | Allowed values | Description |
---|---|---|---|
id | string | Unique identifier for the shipping option | |
name | string | Name of the shipping option to be displayed | |
minDeliveryDays | number | minimal number of days the delivery needs to reach the destination, if 0 is specified, same-day delivery is assumed | |
maxDeliveryDays | number | maximum number of the days the delivery might need to reach the destination. If this is specified, the delivery time will be displayed as "x to y dager" | |
price | Price | Price for the shipping option, if not specified, free is assumed | |
description | string | Additional description for the shipping text, displayed below the delivery time if specified | |
logoUrl | string | A url to a logo image to be displayed for the shipping option. Maximum displayable logo size is 70x37 px. The logo url can be specified as relative to the embedding host, or absolute | |
additionalData | any | Any arbitrary data that should be returned when the option is selected. This data is not used by the checkout anywhere, it is just passed through as-is. | |
updateInterval | number | Interval for periodic updates of this shipping option in seconds. Periodic updates will only be performedif an update handler function is defined as well | |
onUpdateOption | (callback: updatedProps => void) => void | Update handler function for periodic updates. The function passed here gets called on each periodic update with a callback function to pass the updated properties of this shipping option. | |
default | boolean | Pre-select this option after initialization | |
locations | ShippingLocation[] | A list of pickup locations, at least one needs to be specified. If more than one location is specified, a dropdown list is shown |
A shipping option where users can select different levels of service with varying prices and delivery times from a list, e.g. tracked or untracked parcels, standard or premium shipping, etc...
Key | Type | Allowed values | Description |
---|---|---|---|
id | string | Unique identifier for the shipping option | |
name | string | Name of the shipping option to be displayed | |
minDeliveryDays | number | Will be ignored, as this will be evaluated from the specified service level | |
maxDeliveryDays | number | maximum number of the days the delivery might need to reach the destination. If this is specified, the delivery time will be displayed as "x to y dager" | |
price | Price | Will be ignored, as the price is individually specified for each service level | |
description | string | Additional description for the shipping text, displayed below the delivery time if specified | |
logoUrl | string | A url to a logo image to be displayed for the shipping option. Maximum displayable logo size is 70x37 px. The logo url can be specified as relative to the embedding host, or absolute | |
additionalData | any | Any arbitrary data that should be returned when the option is selected. This data is not used by the checkout anywhere, it is just passed through as-is. | |
updateInterval | number | Interval for periodic updates of this shipping option in seconds. Periodic updates will only be performedif an update handler function is defined as well | |
onUpdateOption | (callback: updatedProps => void) => void | Update handler function for periodic updates. The function passed here gets called on each periodic update with a callback function to pass the updated properties of this shipping option. | |
default | boolean | Pre-select this option after initialization | |
levels | ShippingServiceLevel[] | The different service levels for the delivery service to choose from |
Porterbuddy Shipping presents a matrix where the user can select a delivery window.
Key | Type | Allowed values | Description |
---|---|---|---|
id | string | Unique identifier for the shipping option | |
name | string | Name of the shipping option to be displayed | |
minDeliveryDays | number | Will be ignored, as this will be evaluated from the specified delivery windows | |
maxDeliveryDays | number | maximum number of the days the delivery might need to reach the destination. If this is specified, the delivery time will be displayed as "x to y dager" | |
price | Price | Will be ignored, as the price is individually specified for each delivery window | |
description | string | Additional description for the shipping text, displayed below the delivery time if specified | |
logoUrl | String | Will be ignored, the Porterbuddy logo is built into the consolidated checkout | |
additionalData | any | Any arbitrary data that should be returned when the option is selected. This data is not used by the checkout anywhere, it is just passed through as-is. | |
updateInterval | number | Interval for periodic updates of this shipping option in seconds. Periodic updates will only be performedif an update handler function is defined as well | |
onUpdateOption | (callback: updatedProps => void) => void | Update handler function for periodic updates. The function passed here gets called on each periodic update with a callback function to pass the updated properties of this shipping option. | |
default | boolean | Pre-select this option after initialization | |
deliveryWindows | DeliveryWindow[] | The available delivery windows for delivering to the recipient | |
discount | number | Discount to be applied on all delivery window shown, specified as hundreds of a value unit (e.g. discount=5000 for a price reduction by 50 NOK) |
A location for either pickup point delivery or store pickup
Key | Type | Allowed values | Description |
---|---|---|---|
id | string | A unique id for the shipping location | |
name | string | Name of the location, to be displayed in the option card | |
address | string | Address of the location, to be displayed in the option card | |
openingHours | string | Opening hours of the location (arbitrary string) | |
logoUrl | string | A url to a logo image to be displayed for the location. Maximum displayable logo size is 70x37 px. The logo url can be specified as relative to the embedding host, or absolute. If a location with a logo is selected, the logo for the whole option is set to the one for the location | |
description | string | Additional description for the shipping location, will be displayed below the other fields if present |
A selected service level for a shipping carrier
Key | Type | Allowed values | Description |
---|---|---|---|
id | string | A unique id for the shipping service level | |
name | string | Name of the shipping service level, to be displayed in the option card | |
minDeliveryDays | number | minimal number of days the delivery needs to reach the destination, if 0 is specified, same-day delivery is assumed | |
maxDeliveryDays | number | maximum number of the days the delivery might need to reach the destination. If this is specified, the delivery time will be displayed as "x to y dager" | |
price | Price | Price for the shipping option, if not specified, free is assumed | |
description | string | Additional description for the shipping service level, will be displayed below the other fields if present |
A price for a shipping option
Key | Type | Allowed values | Description |
---|---|---|---|
fractionalDenomination | number | The price amount on a base of 1/100 of the specified currency, e.g. a fractional denomination of 4900 describes a price of 49,00 | |
currency | string | NOK | A currency code. Currently, only "NOK" is supported |
A delivery window for Porterbuddy deliveries
Key | Type | Allowed values | Description |
---|---|---|---|
product | string | delivery | The delivery product. Currently, only "delivery" is available |
start | string | Start time of the delivery window in iso format | |
end | string | End time of the delivery window in iso format | |
price | Price | Price for this delivery window | |
displayPrice | Price | Display price for this delivery window, shown instead of the price | |
consolidated | boolean | Indicates if this delivery window can be used to consolidate with an existing delivery |
A shipping category. Supported values are "home", "pickupPoint" and "store"
Data for the currently selected shipping option
Key | Type | Allowed values | Description |
---|---|---|---|
id | string | Unique id of the selected shipping option | |
price | Price | Price of the selected shipping option as displayed | |
minDeliveryDays | number | minimal number of days the delivery needs to reach the destination | |
maxDeliveryDays | number | maximum number of the days the delivery might need to reach the destination | |
data | ShippingLocation | ShippingServiceLevel | SelectedPorterbuddyOption | Additional data to describe the selected option. Only present if the selected option is PickupShippingOption or PorterbuddyShippingOption | |
additionalData | any | Arbitrary data that was specified in the Shipping Option definition and was passed-through as-is. |
Additional data for a currently selected porterbuddy delivery option
Key | Type | Allowed values | Description |
---|---|---|---|
deliveryWindow | DeliveryWindow | The selected delivery window | |
deliveryWindowIndex | number | index of the selected delivery window |
Definition for a listener for property changes when a shipping option is selected
Key | Type | Allowed values | Description |
---|---|---|---|
optionId | string | the id of the shipping option to listen to | |
propertyPath | string | Path of the property to listen for changes | |
onChange | (value: any) => void | Function to be called on property changes |
Info about the recipient of a delivery
Key | Type | Allowed values | Description |
---|---|---|---|
postCode | string | Recipient's postcode | |
string | E-Mail address of the recipient |
Callback functions to interact with the widget from external scripts
Key | Type | Allowed values | Description |
---|---|---|---|
forceRefresh | () => Promise<Void> | Completely refreshes the checkout with the current value of the options object. Current selections will be lost. | |
setRecipientInfo | (recipientInfo: RecipientInfo) => void | Sets the recipient info and updates the delivery option properties from the current state of the options object | |
refreshShippingOptions | () => void | Refreshes the currently displayed shipping options with the values from the configuration object |
Color Scheme definition to override the default colors
Key | Type | Allowed values | Description |
---|---|---|---|
base | string | The base color for the color scheme. This color is used for selected elements, default value is #fa9772.Supported values are hex, rgb and hsl color definitions, use of named colors can yield unwanted results! | |
contrastLight | string | Light contrast color for the base color, used e.g. for the window in the home category icon, default value is #72f6ff. Supported values are hex, rgb and hsl color definitions | |
contrastDark | string | Dark contrast color for the base color, used e.g. for the door in the home category icon, default value is #006698. Supported values are hex, rgb and hsl color definitions |