DeliveryAPI
The APIs for interacting with delivery and shipping options.
TipNot all extension targets implement all APIs. Check the documentation for the extension target you are using to see which APIs are available.
Anchor to standardapiStandardApi
The base API object provided to purchase
, and customer-account.order-status
extension targets.
- Anchor to deliveryGroupsdeliveryGroupsStatefulRemoteSubscribable<[]>required
A list of delivery groups containing information about the delivery of the items the customer intends to purchase.
Docs_Standard_DeliveryApi
- deliveryGroups
A list of delivery groups containing information about the delivery of the items the customer intends to purchase.
StatefulRemoteSubscribable<DeliveryGroup[]>
export interface Docs_Standard_DeliveryApi
extends Pick<StandardApi, 'deliveryGroups'> {}
DeliveryGroup
Represents the delivery information and options available for one or more cart lines.
- targetedCartLines
The cart line references associated to the delivery group.
CartLineReference[]
- deliveryOptions
The delivery options available for the delivery group.
DeliveryOption[]
- selectedDeliveryOption
The selected delivery option for the delivery group.
DeliveryOptionReference
- groupType
The type of the delivery group.
DeliveryGroupType
- isDeliveryRequired
Whether delivery is required for the delivery group.
boolean
export interface DeliveryGroup {
/**
* The cart line references associated to the delivery group.
*/
targetedCartLines: CartLineReference[];
/**
* The delivery options available for the delivery group.
*/
deliveryOptions: DeliveryOption[];
/**
* The selected delivery option for the delivery group.
*/
selectedDeliveryOption?: DeliveryOptionReference;
/**
* The type of the delivery group.
*/
groupType: DeliveryGroupType;
/**
* Whether delivery is required for the delivery group.
*/
isDeliveryRequired: boolean;
}
CartLineReference
Represents a reference to a cart line.
- id
The unique identifier of the referenced cart line.
string
export interface CartLineReference {
/**
* The unique identifier of the referenced cart line.
*/
id: string;
}
DeliveryOption
ShippingOption | PickupPointOption | PickupLocationOption
ShippingOption
Represents a delivery option that is a shipping option.
- type
The type of this delivery option.
"shipping" | "local"
- carrier
Information about the carrier.
ShippingOptionCarrier
- cost
The cost of the delivery.
Money
- costAfterDiscounts
The cost of the delivery including discounts.
Money
- deliveryEstimate
Information about the estimated delivery time.
DeliveryEstimate
- handle
The unique identifier of the delivery option.
string
- title
The title of the delivery option.
string
- description
The description of the delivery option.
string
- code
The code of the delivery option.
string
export interface ShippingOption extends DeliveryOptionBase {
/**
* The type of this delivery option.
*/
type: 'shipping' | 'local';
/**
* Information about the carrier.
*/
carrier: ShippingOptionCarrier;
/**
* The cost of the delivery.
*/
cost: Money;
/**
* The cost of the delivery including discounts.
*/
costAfterDiscounts: Money;
/**
* Information about the estimated delivery time.
*/
deliveryEstimate: DeliveryEstimate;
}
ShippingOptionCarrier
- name
The name of the carrier.
string
export interface ShippingOptionCarrier {
/**
* The name of the carrier.
*/
name?: string;
}
Money
- amount
The price amount.
number
- currencyCode
The ISO 4217 format for the currency.
CurrencyCode
export interface Money {
/**
* The price amount.
*/
amount: number;
/**
* The ISO 4217 format for the currency.
* @example 'CAD' for Canadian dollar
*/
currencyCode: CurrencyCode;
}
CurrencyCode
'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XSU' | 'XTS' | 'XUA' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL'
DeliveryEstimate
- timeInTransit
The estimated time in transit for the delivery in seconds.
NumberRange
export interface DeliveryEstimate {
/**
* The estimated time in transit for the delivery in seconds.
*/
timeInTransit?: NumberRange;
}
NumberRange
- lower
The lower bound of the number range.
number
- upper
The upper bound of the number range.
number
export interface NumberRange {
/**
* The lower bound of the number range.
*/
lower?: number;
/**
* The upper bound of the number range.
*/
upper?: number;
}
PickupPointOption
- type
The type of this delivery option.
"pickupPoint"
- carrier
Information about the carrier that ships to the pickup point.
PickupPointCarrier
- cost
The cost to ship to this pickup point.
Money
- costAfterDiscounts
The cost to ship to this pickup point including discounts.
Money
- location
The location details of the pickup point.
PickupPointLocation
- handle
The unique identifier of the delivery option.
string
- title
The title of the delivery option.
string
- description
The description of the delivery option.
string
- code
The code of the delivery option.
string
export interface PickupPointOption extends DeliveryOptionBase {
/**
* The type of this delivery option.
*/
type: 'pickupPoint';
/**
* Information about the carrier that ships to the pickup point.
*/
carrier: PickupPointCarrier;
/**
* The cost to ship to this pickup point.
*/
cost: Money;
/**
* The cost to ship to this pickup point including discounts.
*/
costAfterDiscounts: Money;
/**
* The location details of the pickup point.
*/
location: PickupPointLocation;
}
PickupPointCarrier
- code
The code identifying the carrier.
string
- name
The name of the carrier.
string
interface PickupPointCarrier {
/**
* The code identifying the carrier.
*/
code?: string;
/**
* The name of the carrier.
*/
name?: string;
}
PickupPointLocation
- name
The name of the pickup point.
string
- handle
The unique identifier of the pickup point.
string
- address
The address of the pickup point.
MailingAddress
interface PickupPointLocation {
/**
* The name of the pickup point.
*/
name?: string;
/**
* The unique identifier of the pickup point.
*/
handle: string;
/**
* The address of the pickup point.
*/
address: MailingAddress;
}
MailingAddress
- name
The buyer's full name. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- firstName
The buyer's first name. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- lastName
The buyer's last name. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- company
The buyer's company name. {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- address1
The first line of the buyer's address, including street name and number. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- address2
The second line of the buyer's address, like apartment number, suite, etc. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- city
The buyer's city. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- zip
The buyer's postal or ZIP code. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- countryCode
The ISO 3166 Alpha-2 format for the buyer's country. Refer to https://www.iso.org/iso-3166-country-codes.html. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
CountryCode
- provinceCode
The buyer's province code, such as state, province, prefecture, or region. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- phone
The buyer's phone number. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
export interface MailingAddress {
/**
* The buyer's full name.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'John Doe'
*/
name?: string;
/**
* The buyer's first name.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'John'
*/
firstName?: string;
/**
* The buyer's last name.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'Doe'
*/
lastName?: string;
/**
* The buyer's company name.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'Shopify'
*/
company?: string;
/**
* The first line of the buyer's address, including street name and number.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example '151 O'Connor Street'
*/
address1?: string;
/**
* The second line of the buyer's address, like apartment number, suite, etc.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'Ground floor'
*/
address2?: string;
/**
* The buyer's city.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'Ottawa'
*/
city?: string;
/**
* The buyer's postal or ZIP code.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'K2P 2L8'
*/
zip?: string;
/**
* The ISO 3166 Alpha-2 format for the buyer's country. Refer to https://www.iso.org/iso-3166-country-codes.html.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'CA' for Canada.
*/
countryCode?: CountryCode;
/**
* The buyer's province code, such as state, province, prefecture, or region.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'ON' for Ontario.
*/
provinceCode?: string;
/**
* The buyer's phone number.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example '+1 613 111 2222'.
*/
phone?: string;
}
CountryCode
'AC' | 'AD' | 'AE' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AN' | 'AO' | 'AR' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PS' | 'PT' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TA' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VN' | 'VU' | 'WF' | 'WS' | 'XK' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW' | 'ZZ'
PickupLocationOption
- type
The type of this delivery option.
"pickup"
- location
The location details of the pickup location.
PickupLocation
- handle
The unique identifier of the delivery option.
string
- title
The title of the delivery option.
string
- description
The description of the delivery option.
string
- code
The code of the delivery option.
string
export interface PickupLocationOption extends DeliveryOptionBase {
/**
* The type of this delivery option.
*/
type: 'pickup';
/**
* The location details of the pickup location.
*/
location: PickupLocation;
}
PickupLocation
- name
The name of the pickup location.
string
- address
The address of the pickup location.
MailingAddress
interface PickupLocation {
/**
* The name of the pickup location.
*/
name?: string;
/**
* The address of the pickup location.
*/
address: MailingAddress;
}
DeliveryOptionReference
Represents a reference to a delivery option.
- handle
The unique identifier of the referenced delivery option.
string
export interface DeliveryOptionReference {
/**
* The unique identifier of the referenced delivery option.
*/
handle: string;
}
DeliveryGroupType
The possible types of a delivery group.
'oneTimePurchase' | 'subscription'
Returns the full expanded details of a delivery group and automatically re-renders your component when that delivery group changes.
Anchor to useDeliveryGroup-parametersParameters
- Anchor to deliveryGroupdeliveryGrouprequired
- targetedCartLines[]
The cart lines associated to the delivery group.
- deliveryOptions[]
The delivery options available for the delivery group.
- groupType
The type of the delivery group.
- isDeliveryRequiredboolean
Whether delivery is required for the delivery group.
- selectedDeliveryOption
The selected delivery option for the delivery group.
DeliveryGroupDetails
UseDeliveryGroupGeneratedType
Returns the full expanded details of a delivery group and automatically re-renders your component when that delivery group changes.
- deliveryGroup
DeliveryGroup
DeliveryGroupDetails
export function useDeliveryGroup<
ID extends RenderExtensionTarget = RenderExtensionTarget,
>(deliveryGroup: DeliveryGroup): DeliveryGroupDetails {
const {lines} = useApi<ID>();
const cartLines = useSubscription(lines);
return useMemo(() => {
if (!deliveryGroup) {
throw new DeliveryGroupHookError(
'useDeliveryGroup must be called with a delivery group from the useDeliveryGroups hook',
);
}
const deliveryGroupDetails = {
...deliveryGroup,
selectedDeliveryOption: getSelectedDeliveryOption(deliveryGroup),
targetedCartLines: getTargetedCartLines(deliveryGroup, cartLines),
};
return deliveryGroupDetails;
}, [deliveryGroup, cartLines]);
}
DeliveryGroup
Represents the delivery information and options available for one or more cart lines.
- targetedCartLines
The cart line references associated to the delivery group.
CartLineReference[]
- deliveryOptions
The delivery options available for the delivery group.
DeliveryOption[]
- selectedDeliveryOption
The selected delivery option for the delivery group.
DeliveryOptionReference
- groupType
The type of the delivery group.
DeliveryGroupType
- isDeliveryRequired
Whether delivery is required for the delivery group.
boolean
export interface DeliveryGroup {
/**
* The cart line references associated to the delivery group.
*/
targetedCartLines: CartLineReference[];
/**
* The delivery options available for the delivery group.
*/
deliveryOptions: DeliveryOption[];
/**
* The selected delivery option for the delivery group.
*/
selectedDeliveryOption?: DeliveryOptionReference;
/**
* The type of the delivery group.
*/
groupType: DeliveryGroupType;
/**
* Whether delivery is required for the delivery group.
*/
isDeliveryRequired: boolean;
}
CartLineReference
Represents a reference to a cart line.
- id
The unique identifier of the referenced cart line.
string
export interface CartLineReference {
/**
* The unique identifier of the referenced cart line.
*/
id: string;
}
DeliveryOption
ShippingOption | PickupPointOption | PickupLocationOption
ShippingOption
Represents a delivery option that is a shipping option.
- type
The type of this delivery option.
"shipping" | "local"
- carrier
Information about the carrier.
ShippingOptionCarrier
- cost
The cost of the delivery.
Money
- costAfterDiscounts
The cost of the delivery including discounts.
Money
- deliveryEstimate
Information about the estimated delivery time.
DeliveryEstimate
- handle
The unique identifier of the delivery option.
string
- title
The title of the delivery option.
string
- description
The description of the delivery option.
string
- code
The code of the delivery option.
string
export interface ShippingOption extends DeliveryOptionBase {
/**
* The type of this delivery option.
*/
type: 'shipping' | 'local';
/**
* Information about the carrier.
*/
carrier: ShippingOptionCarrier;
/**
* The cost of the delivery.
*/
cost: Money;
/**
* The cost of the delivery including discounts.
*/
costAfterDiscounts: Money;
/**
* Information about the estimated delivery time.
*/
deliveryEstimate: DeliveryEstimate;
}
ShippingOptionCarrier
- name
The name of the carrier.
string
export interface ShippingOptionCarrier {
/**
* The name of the carrier.
*/
name?: string;
}
Money
- amount
The price amount.
number
- currencyCode
The ISO 4217 format for the currency.
CurrencyCode
export interface Money {
/**
* The price amount.
*/
amount: number;
/**
* The ISO 4217 format for the currency.
* @example 'CAD' for Canadian dollar
*/
currencyCode: CurrencyCode;
}
CurrencyCode
'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XSU' | 'XTS' | 'XUA' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL'
DeliveryEstimate
- timeInTransit
The estimated time in transit for the delivery in seconds.
NumberRange
export interface DeliveryEstimate {
/**
* The estimated time in transit for the delivery in seconds.
*/
timeInTransit?: NumberRange;
}
NumberRange
- lower
The lower bound of the number range.
number
- upper
The upper bound of the number range.
number
export interface NumberRange {
/**
* The lower bound of the number range.
*/
lower?: number;
/**
* The upper bound of the number range.
*/
upper?: number;
}
PickupPointOption
- type
The type of this delivery option.
"pickupPoint"
- carrier
Information about the carrier that ships to the pickup point.
PickupPointCarrier
- cost
The cost to ship to this pickup point.
Money
- costAfterDiscounts
The cost to ship to this pickup point including discounts.
Money
- location
The location details of the pickup point.
PickupPointLocation
- handle
The unique identifier of the delivery option.
string
- title
The title of the delivery option.
string
- description
The description of the delivery option.
string
- code
The code of the delivery option.
string
export interface PickupPointOption extends DeliveryOptionBase {
/**
* The type of this delivery option.
*/
type: 'pickupPoint';
/**
* Information about the carrier that ships to the pickup point.
*/
carrier: PickupPointCarrier;
/**
* The cost to ship to this pickup point.
*/
cost: Money;
/**
* The cost to ship to this pickup point including discounts.
*/
costAfterDiscounts: Money;
/**
* The location details of the pickup point.
*/
location: PickupPointLocation;
}
PickupPointCarrier
- code
The code identifying the carrier.
string
- name
The name of the carrier.
string
interface PickupPointCarrier {
/**
* The code identifying the carrier.
*/
code?: string;
/**
* The name of the carrier.
*/
name?: string;
}
PickupPointLocation
- name
The name of the pickup point.
string
- handle
The unique identifier of the pickup point.
string
- address
The address of the pickup point.
MailingAddress
interface PickupPointLocation {
/**
* The name of the pickup point.
*/
name?: string;
/**
* The unique identifier of the pickup point.
*/
handle: string;
/**
* The address of the pickup point.
*/
address: MailingAddress;
}
MailingAddress
- name
The buyer's full name. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- firstName
The buyer's first name. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- lastName
The buyer's last name. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- company
The buyer's company name. {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- address1
The first line of the buyer's address, including street name and number. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- address2
The second line of the buyer's address, like apartment number, suite, etc. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- city
The buyer's city. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- zip
The buyer's postal or ZIP code. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- countryCode
The ISO 3166 Alpha-2 format for the buyer's country. Refer to https://www.iso.org/iso-3166-country-codes.html. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
CountryCode
- provinceCode
The buyer's province code, such as state, province, prefecture, or region. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- phone
The buyer's phone number. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
export interface MailingAddress {
/**
* The buyer's full name.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'John Doe'
*/
name?: string;
/**
* The buyer's first name.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'John'
*/
firstName?: string;
/**
* The buyer's last name.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'Doe'
*/
lastName?: string;
/**
* The buyer's company name.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'Shopify'
*/
company?: string;
/**
* The first line of the buyer's address, including street name and number.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example '151 O'Connor Street'
*/
address1?: string;
/**
* The second line of the buyer's address, like apartment number, suite, etc.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'Ground floor'
*/
address2?: string;
/**
* The buyer's city.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'Ottawa'
*/
city?: string;
/**
* The buyer's postal or ZIP code.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'K2P 2L8'
*/
zip?: string;
/**
* The ISO 3166 Alpha-2 format for the buyer's country. Refer to https://www.iso.org/iso-3166-country-codes.html.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'CA' for Canada.
*/
countryCode?: CountryCode;
/**
* The buyer's province code, such as state, province, prefecture, or region.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'ON' for Ontario.
*/
provinceCode?: string;
/**
* The buyer's phone number.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example '+1 613 111 2222'.
*/
phone?: string;
}
CountryCode
'AC' | 'AD' | 'AE' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AN' | 'AO' | 'AR' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PS' | 'PT' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TA' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VN' | 'VU' | 'WF' | 'WS' | 'XK' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW' | 'ZZ'
PickupLocationOption
- type
The type of this delivery option.
"pickup"
- location
The location details of the pickup location.
PickupLocation
- handle
The unique identifier of the delivery option.
string
- title
The title of the delivery option.
string
- description
The description of the delivery option.
string
- code
The code of the delivery option.
string
export interface PickupLocationOption extends DeliveryOptionBase {
/**
* The type of this delivery option.
*/
type: 'pickup';
/**
* The location details of the pickup location.
*/
location: PickupLocation;
}
PickupLocation
- name
The name of the pickup location.
string
- address
The address of the pickup location.
MailingAddress
interface PickupLocation {
/**
* The name of the pickup location.
*/
name?: string;
/**
* The address of the pickup location.
*/
address: MailingAddress;
}
DeliveryOptionReference
Represents a reference to a delivery option.
- handle
The unique identifier of the referenced delivery option.
string
export interface DeliveryOptionReference {
/**
* The unique identifier of the referenced delivery option.
*/
handle: string;
}
DeliveryGroupType
The possible types of a delivery group.
'oneTimePurchase' | 'subscription'
DeliveryGroupDetails
Represents a DeliveryGroup with expanded reference fields and full details.
- selectedDeliveryOption
The selected delivery option for the delivery group.
DeliveryOption
- targetedCartLines
The cart lines associated to the delivery group.
CartLine[]
- deliveryOptions
The delivery options available for the delivery group.
DeliveryOption[]
- groupType
The type of the delivery group.
DeliveryGroupType
- isDeliveryRequired
Whether delivery is required for the delivery group.
boolean
export interface DeliveryGroupDetails extends DeliveryGroup {
/**
* The selected delivery option for the delivery group.
*/
selectedDeliveryOption?: DeliveryOption;
/**
* The cart lines associated to the delivery group.
*/
targetedCartLines: CartLine[];
}
CartLine
- id
These line item IDs are not stable at the moment, they might change after any operations on the line items. You should always look up for an updated ID before any call to `applyCartLinesChange` because you'll need the ID to create a `CartLineChange` object.
string
- merchandise
The merchandise being purchased.
Merchandise
- quantity
The quantity of the merchandise being purchased.
number
- cost
The details about the cost components attributed to the cart line.
CartLineCost
- attributes
The line item additional custom attributes.
Attribute[]
- discountAllocations
Discounts applied to the cart line.
CartDiscountAllocation[]
- lineComponents
Sub lines of the merchandise line. If no sub lines are present, this will be an empty array.
CartBundleLineComponent[]
export interface CartLine {
/**
* These line item IDs are not stable at the moment, they might change after
* any operations on the line items. You should always look up for an updated
* ID before any call to `applyCartLinesChange` because you'll need the ID to
* create a `CartLineChange` object.
* @example 'gid://shopify/CartLine/123'
*/
id: string;
/**
* The merchandise being purchased.
*/
merchandise: Merchandise;
/**
* The quantity of the merchandise being purchased.
*/
quantity: number;
/**
* The details about the cost components attributed to the cart line.
*/
cost: CartLineCost;
/**
* The line item additional custom attributes.
*/
attributes: Attribute[];
/**
* Discounts applied to the cart line.
*/
discountAllocations: CartDiscountAllocation[];
/**
* Sub lines of the merchandise line. If no sub lines are present, this will be an empty array.
*/
lineComponents: CartLineComponentType[];
}
Merchandise
- type
"variant"
- id
A globally-unique identifier.
string
- title
The product variant’s title.
string
- subtitle
The product variant's subtitle.
string
- image
Image associated with the product variant. This field falls back to the product image if no image is available.
ImageDetails
- selectedOptions
List of product options applied to the variant.
SelectedOption[]
- product
The product object that the product variant belongs to.
Product
- requiresShipping
Whether or not the product requires shipping.
boolean
- sellingPlan
The selling plan associated with the merchandise.
SellingPlan
ProductVariant
ImageDetails
- url
The image URL.
string
- altText
The alternative text for the image.
string
export interface ImageDetails {
/**
* The image URL.
*/
url: string;
/**
* The alternative text for the image.
*/
altText?: string;
}
SelectedOption
- name
The name of the merchandise option.
string
- value
The value of the merchandise option.
string
export interface SelectedOption {
/**
* The name of the merchandise option.
*/
name: string;
/**
* The value of the merchandise option.
*/
value: string;
}
Product
- id
A globally-unique identifier.
string
- vendor
The product’s vendor name.
string
- productType
A categorization that a product can be tagged with, commonly used for filtering and searching.
string
export interface Product {
/**
* A globally-unique identifier.
*/
id: string;
/**
* The product’s vendor name.
*/
vendor: string;
/**
* A categorization that a product can be tagged with, commonly used for filtering and searching.
*/
productType: string;
}
SellingPlan
- id
A globally-unique identifier.
string
export interface SellingPlan {
/**
* A globally-unique identifier.
* @example 'gid://shopify/SellingPlan/1'
*/
id: string;
}
CartLineCost
- totalAmount
The total amount after reductions the buyer can expect to pay that is directly attributable to a single cart line.
Money
export interface CartLineCost {
/**
* The total amount after reductions the buyer can expect to pay that is directly attributable to a single
* cart line.
*/
totalAmount: Money;
}
Attribute
- key
The key for the attribute.
string
- value
The value for the attribute.
string
export interface Attribute {
/**
* The key for the attribute.
*/
key: string;
/**
* The value for the attribute.
*/
value: string;
}
CartDiscountAllocation
CartCodeDiscountAllocation | CartAutomaticDiscountAllocation | CartCustomDiscountAllocation
CartCodeDiscountAllocation
- code
The code for the discount
string
- type
The type of the code discount
"code"
- discountedAmount
The money amount that has been discounted from the order
Money
export interface CartCodeDiscountAllocation extends CartDiscountAllocationBase {
/**
* The code for the discount
*/
code: string;
/**
* The type of the code discount
*/
type: 'code';
}
CartAutomaticDiscountAllocation
- title
The title of the automatic discount
string
- type
The type of the automatic discount
"automatic"
- discountedAmount
The money amount that has been discounted from the order
Money
export interface CartAutomaticDiscountAllocation
extends CartDiscountAllocationBase {
/**
* The title of the automatic discount
*/
title: string;
/**
* The type of the automatic discount
*/
type: 'automatic';
}
CartCustomDiscountAllocation
- title
The title of the custom discount
string
- type
The type of the custom discount
"custom"
- discountedAmount
The money amount that has been discounted from the order
Money
export interface CartCustomDiscountAllocation
extends CartDiscountAllocationBase {
/**
* The title of the custom discount
*/
title: string;
/**
* The type of the custom discount
*/
type: 'custom';
}
CartBundleLineComponent
- type
"bundle"
- id
A unique identifier for the bundle line component. This ID is not stable. If an operation updates the line items in any way, all IDs could change.
string
- merchandise
The merchandise of this bundle line component.
Merchandise
- quantity
The quantity of merchandise being purchased.
number
- cost
The cost attributed to this bundle line component.
CartLineCost
- attributes
Additional custom attributes for the bundle line component.
Attribute[]
export interface CartBundleLineComponent {
type: 'bundle';
/**
* A unique identifier for the bundle line component.
*
* This ID is not stable. If an operation updates the line items in any way, all IDs could change.
*
* @example 'gid://shopify/CartLineComponent/123'
*/
id: string;
/**
* The merchandise of this bundle line component.
*/
merchandise: Merchandise;
/**
* The quantity of merchandise being purchased.
*/
quantity: number;
/**
* The cost attributed to this bundle line component.
*/
cost: CartLineCost;
/**
* Additional custom attributes for the bundle line component.
*
* @example [{key: 'engraving', value: 'hello world'}]
*/
attributes: Attribute[];
}
Anchor to useDeliveryGroupsuse Delivery Groups()
Returns the current delivery groups for the checkout, and automatically re-renders your component when delivery address or delivery option selection changes.
UseDeliveryGroupsGeneratedType
Returns the current delivery groups for the checkout, and automatically re-renders your component when delivery address or delivery option selection changes.
DeliveryGroup[]
export function useDeliveryGroups<
Target extends RenderExtensionTarget = RenderExtensionTarget,
>(): DeliveryGroup[] {
const api = useApi<Target>();
if (!('deliveryGroups' in api)) {
throw new ExtensionHasNoMethodError('deliveryGroups', api.extension.target);
}
return useSubscription(api.deliveryGroups);
}
DeliveryGroup
Represents the delivery information and options available for one or more cart lines.
- targetedCartLines
The cart line references associated to the delivery group.
CartLineReference[]
- deliveryOptions
The delivery options available for the delivery group.
DeliveryOption[]
- selectedDeliveryOption
The selected delivery option for the delivery group.
DeliveryOptionReference
- groupType
The type of the delivery group.
DeliveryGroupType
- isDeliveryRequired
Whether delivery is required for the delivery group.
boolean
export interface DeliveryGroup {
/**
* The cart line references associated to the delivery group.
*/
targetedCartLines: CartLineReference[];
/**
* The delivery options available for the delivery group.
*/
deliveryOptions: DeliveryOption[];
/**
* The selected delivery option for the delivery group.
*/
selectedDeliveryOption?: DeliveryOptionReference;
/**
* The type of the delivery group.
*/
groupType: DeliveryGroupType;
/**
* Whether delivery is required for the delivery group.
*/
isDeliveryRequired: boolean;
}
CartLineReference
Represents a reference to a cart line.
- id
The unique identifier of the referenced cart line.
string
export interface CartLineReference {
/**
* The unique identifier of the referenced cart line.
*/
id: string;
}
DeliveryOption
ShippingOption | PickupPointOption | PickupLocationOption
ShippingOption
Represents a delivery option that is a shipping option.
- type
The type of this delivery option.
"shipping" | "local"
- carrier
Information about the carrier.
ShippingOptionCarrier
- cost
The cost of the delivery.
Money
- costAfterDiscounts
The cost of the delivery including discounts.
Money
- deliveryEstimate
Information about the estimated delivery time.
DeliveryEstimate
- handle
The unique identifier of the delivery option.
string
- title
The title of the delivery option.
string
- description
The description of the delivery option.
string
- code
The code of the delivery option.
string
export interface ShippingOption extends DeliveryOptionBase {
/**
* The type of this delivery option.
*/
type: 'shipping' | 'local';
/**
* Information about the carrier.
*/
carrier: ShippingOptionCarrier;
/**
* The cost of the delivery.
*/
cost: Money;
/**
* The cost of the delivery including discounts.
*/
costAfterDiscounts: Money;
/**
* Information about the estimated delivery time.
*/
deliveryEstimate: DeliveryEstimate;
}
ShippingOptionCarrier
- name
The name of the carrier.
string
export interface ShippingOptionCarrier {
/**
* The name of the carrier.
*/
name?: string;
}
Money
- amount
The price amount.
number
- currencyCode
The ISO 4217 format for the currency.
CurrencyCode
export interface Money {
/**
* The price amount.
*/
amount: number;
/**
* The ISO 4217 format for the currency.
* @example 'CAD' for Canadian dollar
*/
currencyCode: CurrencyCode;
}
CurrencyCode
'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XSU' | 'XTS' | 'XUA' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL'
DeliveryEstimate
- timeInTransit
The estimated time in transit for the delivery in seconds.
NumberRange
export interface DeliveryEstimate {
/**
* The estimated time in transit for the delivery in seconds.
*/
timeInTransit?: NumberRange;
}
NumberRange
- lower
The lower bound of the number range.
number
- upper
The upper bound of the number range.
number
export interface NumberRange {
/**
* The lower bound of the number range.
*/
lower?: number;
/**
* The upper bound of the number range.
*/
upper?: number;
}
PickupPointOption
- type
The type of this delivery option.
"pickupPoint"
- carrier
Information about the carrier that ships to the pickup point.
PickupPointCarrier
- cost
The cost to ship to this pickup point.
Money
- costAfterDiscounts
The cost to ship to this pickup point including discounts.
Money
- location
The location details of the pickup point.
PickupPointLocation
- handle
The unique identifier of the delivery option.
string
- title
The title of the delivery option.
string
- description
The description of the delivery option.
string
- code
The code of the delivery option.
string
export interface PickupPointOption extends DeliveryOptionBase {
/**
* The type of this delivery option.
*/
type: 'pickupPoint';
/**
* Information about the carrier that ships to the pickup point.
*/
carrier: PickupPointCarrier;
/**
* The cost to ship to this pickup point.
*/
cost: Money;
/**
* The cost to ship to this pickup point including discounts.
*/
costAfterDiscounts: Money;
/**
* The location details of the pickup point.
*/
location: PickupPointLocation;
}
PickupPointCarrier
- code
The code identifying the carrier.
string
- name
The name of the carrier.
string
interface PickupPointCarrier {
/**
* The code identifying the carrier.
*/
code?: string;
/**
* The name of the carrier.
*/
name?: string;
}
PickupPointLocation
- name
The name of the pickup point.
string
- handle
The unique identifier of the pickup point.
string
- address
The address of the pickup point.
MailingAddress
interface PickupPointLocation {
/**
* The name of the pickup point.
*/
name?: string;
/**
* The unique identifier of the pickup point.
*/
handle: string;
/**
* The address of the pickup point.
*/
address: MailingAddress;
}
MailingAddress
- name
The buyer's full name. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- firstName
The buyer's first name. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- lastName
The buyer's last name. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- company
The buyer's company name. {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- address1
The first line of the buyer's address, including street name and number. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- address2
The second line of the buyer's address, like apartment number, suite, etc. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- city
The buyer's city. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- zip
The buyer's postal or ZIP code. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- countryCode
The ISO 3166 Alpha-2 format for the buyer's country. Refer to https://www.iso.org/iso-3166-country-codes.html. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
CountryCode
- provinceCode
The buyer's province code, such as state, province, prefecture, or region. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
- phone
The buyer's phone number. {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
string
export interface MailingAddress {
/**
* The buyer's full name.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'John Doe'
*/
name?: string;
/**
* The buyer's first name.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'John'
*/
firstName?: string;
/**
* The buyer's last name.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'Doe'
*/
lastName?: string;
/**
* The buyer's company name.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 1 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'Shopify'
*/
company?: string;
/**
* The first line of the buyer's address, including street name and number.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example '151 O'Connor Street'
*/
address1?: string;
/**
* The second line of the buyer's address, like apartment number, suite, etc.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'Ground floor'
*/
address2?: string;
/**
* The buyer's city.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'Ottawa'
*/
city?: string;
/**
* The buyer's postal or ZIP code.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'K2P 2L8'
*/
zip?: string;
/**
* The ISO 3166 Alpha-2 format for the buyer's country. Refer to https://www.iso.org/iso-3166-country-codes.html.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'CA' for Canada.
*/
countryCode?: CountryCode;
/**
* The buyer's province code, such as state, province, prefecture, or region.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example 'ON' for Ontario.
*/
provinceCode?: string;
/**
* The buyer's phone number.
*
* {% include /apps/checkout/privacy-icon.md %} Requires level 2 access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
*
* @example '+1 613 111 2222'.
*/
phone?: string;
}
CountryCode
'AC' | 'AD' | 'AE' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AN' | 'AO' | 'AR' | 'AT' | 'AU' | 'AW' | 'AX' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BQ' | 'BR' | 'BS' | 'BT' | 'BV' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'FI' | 'FJ' | 'FK' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GF' | 'GG' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GW' | 'GY' | 'HK' | 'HM' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IO' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PS' | 'PT' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SX' | 'SY' | 'SZ' | 'TA' | 'TC' | 'TD' | 'TF' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VN' | 'VU' | 'WF' | 'WS' | 'XK' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW' | 'ZZ'
PickupLocationOption
- type
The type of this delivery option.
"pickup"
- location
The location details of the pickup location.
PickupLocation
- handle
The unique identifier of the delivery option.
string
- title
The title of the delivery option.
string
- description
The description of the delivery option.
string
- code
The code of the delivery option.
string
export interface PickupLocationOption extends DeliveryOptionBase {
/**
* The type of this delivery option.
*/
type: 'pickup';
/**
* The location details of the pickup location.
*/
location: PickupLocation;
}
PickupLocation
- name
The name of the pickup location.
string
- address
The address of the pickup location.
MailingAddress
interface PickupLocation {
/**
* The name of the pickup location.
*/
name?: string;
/**
* The address of the pickup location.
*/
address: MailingAddress;
}
DeliveryOptionReference
Represents a reference to a delivery option.
- handle
The unique identifier of the referenced delivery option.
string
export interface DeliveryOptionReference {
/**
* The unique identifier of the referenced delivery option.
*/
handle: string;
}
DeliveryGroupType
The possible types of a delivery group.
'oneTimePurchase' | 'subscription'
Anchor to shipping optionShipping Option
This API object is provided to extensions registered for the purchase.checkout.shipping-option-item.render-after
or purchase.checkout.shipping-option-item.details.render
extension targets.
- Anchor to targettargetStatefulRemoteSubscribable<>required
The shipping option the extension is attached to.
- Anchor to isTargetSelectedisTargetSelectedStatefulRemoteSubscribable<boolean>required
Whether the shipping option the extension is attached to is currently selected in the UI.
ShippingOptionItemApi
- target
The shipping option the extension is attached to.
StatefulRemoteSubscribable<ShippingOption>
- isTargetSelected
Whether the shipping option the extension is attached to is currently selected in the UI.
StatefulRemoteSubscribable<boolean>
export interface ShippingOptionItemApi {
/**
* The shipping option the extension is attached to.
*/
target: StatefulRemoteSubscribable<ShippingOption>;
/**
* Whether the shipping option the extension is attached to is currently selected in the UI.
*/
isTargetSelected: StatefulRemoteSubscribable<boolean>;
}
ShippingOption
Represents a delivery option that is a shipping option.
- type
The type of this delivery option.
"shipping" | "local"
- carrier
Information about the carrier.
ShippingOptionCarrier
- cost
The cost of the delivery.
Money
- costAfterDiscounts
The cost of the delivery including discounts.
Money
- deliveryEstimate
Information about the estimated delivery time.
DeliveryEstimate
- handle
The unique identifier of the delivery option.
string
- title
The title of the delivery option.
string
- description
The description of the delivery option.
string
- code
The code of the delivery option.
string
export interface ShippingOption extends DeliveryOptionBase {
/**
* The type of this delivery option.
*/
type: 'shipping' | 'local';
/**
* Information about the carrier.
*/
carrier: ShippingOptionCarrier;
/**
* The cost of the delivery.
*/
cost: Money;
/**
* The cost of the delivery including discounts.
*/
costAfterDiscounts: Money;
/**
* Information about the estimated delivery time.
*/
deliveryEstimate: DeliveryEstimate;
}
ShippingOptionCarrier
- name
The name of the carrier.
string
export interface ShippingOptionCarrier {
/**
* The name of the carrier.
*/
name?: string;
}
Money
- amount
The price amount.
number
- currencyCode
The ISO 4217 format for the currency.
CurrencyCode
export interface Money {
/**
* The price amount.
*/
amount: number;
/**
* The ISO 4217 format for the currency.
* @example 'CAD' for Canadian dollar
*/
currencyCode: CurrencyCode;
}
CurrencyCode
'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XSU' | 'XTS' | 'XUA' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL'
DeliveryEstimate
- timeInTransit
The estimated time in transit for the delivery in seconds.
NumberRange
export interface DeliveryEstimate {
/**
* The estimated time in transit for the delivery in seconds.
*/
timeInTransit?: NumberRange;
}
NumberRange
- lower
The lower bound of the number range.
number
- upper
The upper bound of the number range.
number
export interface NumberRange {
/**
* The lower bound of the number range.
*/
lower?: number;
/**
* The upper bound of the number range.
*/
upper?: number;
}
Anchor to useShippingOptionTargetuse Shipping Option Target()
Returns the shipping option the extension is attached to.
UseShippingOptionTargetGeneratedType
Returns the shipping option the extension is attached to. This hook can only be used by extensions in the following extension targets: - `purchase.checkout.shipping-option-item.render-after` - `purchase.checkout.shipping-option-item.details.render`
{
shippingOptionTarget: ShippingOption;
isTargetSelected: boolean;
}
export function useShippingOptionTarget(): {
shippingOptionTarget: ShippingOption;
isTargetSelected: boolean;
} {
const api = useApi<
| 'purchase.checkout.shipping-option-item.render-after'
| 'purchase.checkout.shipping-option-item.details.render'
>();
if (!api.target || !api.isTargetSelected) {
throw new ExtensionHasNoTargetError(
'useShippingOptionTarget',
api.extension.target,
);
}
return {
shippingOptionTarget: useSubscription(api.target),
isTargetSelected: useSubscription(api.isTargetSelected),
};
}
ShippingOption
Represents a delivery option that is a shipping option.
- type
The type of this delivery option.
"shipping" | "local"
- carrier
Information about the carrier.
ShippingOptionCarrier
- cost
The cost of the delivery.
Money
- costAfterDiscounts
The cost of the delivery including discounts.
Money
- deliveryEstimate
Information about the estimated delivery time.
DeliveryEstimate
- handle
The unique identifier of the delivery option.
string
- title
The title of the delivery option.
string
- description
The description of the delivery option.
string
- code
The code of the delivery option.
string
export interface ShippingOption extends DeliveryOptionBase {
/**
* The type of this delivery option.
*/
type: 'shipping' | 'local';
/**
* Information about the carrier.
*/
carrier: ShippingOptionCarrier;
/**
* The cost of the delivery.
*/
cost: Money;
/**
* The cost of the delivery including discounts.
*/
costAfterDiscounts: Money;
/**
* Information about the estimated delivery time.
*/
deliveryEstimate: DeliveryEstimate;
}
ShippingOptionCarrier
- name
The name of the carrier.
string
export interface ShippingOptionCarrier {
/**
* The name of the carrier.
*/
name?: string;
}
Money
- amount
The price amount.
number
- currencyCode
The ISO 4217 format for the currency.
CurrencyCode
export interface Money {
/**
* The price amount.
*/
amount: number;
/**
* The ISO 4217 format for the currency.
* @example 'CAD' for Canadian dollar
*/
currencyCode: CurrencyCode;
}
CurrencyCode
'AED' | 'AFN' | 'ALL' | 'AMD' | 'ANG' | 'AOA' | 'ARS' | 'AUD' | 'AWG' | 'AZN' | 'BAM' | 'BBD' | 'BDT' | 'BGN' | 'BHD' | 'BIF' | 'BMD' | 'BND' | 'BOB' | 'BOV' | 'BRL' | 'BSD' | 'BTN' | 'BWP' | 'BYN' | 'BZD' | 'CAD' | 'CDF' | 'CHE' | 'CHF' | 'CHW' | 'CLF' | 'CLP' | 'CNY' | 'COP' | 'COU' | 'CRC' | 'CUC' | 'CUP' | 'CVE' | 'CZK' | 'DJF' | 'DKK' | 'DOP' | 'DZD' | 'EGP' | 'ERN' | 'ETB' | 'EUR' | 'FJD' | 'FKP' | 'GBP' | 'GEL' | 'GHS' | 'GIP' | 'GMD' | 'GNF' | 'GTQ' | 'GYD' | 'HKD' | 'HNL' | 'HRK' | 'HTG' | 'HUF' | 'IDR' | 'ILS' | 'INR' | 'IQD' | 'IRR' | 'ISK' | 'JMD' | 'JOD' | 'JPY' | 'KES' | 'KGS' | 'KHR' | 'KMF' | 'KPW' | 'KRW' | 'KWD' | 'KYD' | 'KZT' | 'LAK' | 'LBP' | 'LKR' | 'LRD' | 'LSL' | 'LYD' | 'MAD' | 'MDL' | 'MGA' | 'MKD' | 'MMK' | 'MNT' | 'MOP' | 'MRU' | 'MUR' | 'MVR' | 'MWK' | 'MXN' | 'MXV' | 'MYR' | 'MZN' | 'NAD' | 'NGN' | 'NIO' | 'NOK' | 'NPR' | 'NZD' | 'OMR' | 'PAB' | 'PEN' | 'PGK' | 'PHP' | 'PKR' | 'PLN' | 'PYG' | 'QAR' | 'RON' | 'RSD' | 'RUB' | 'RWF' | 'SAR' | 'SBD' | 'SCR' | 'SDG' | 'SEK' | 'SGD' | 'SHP' | 'SLL' | 'SOS' | 'SRD' | 'SSP' | 'STN' | 'SVC' | 'SYP' | 'SZL' | 'THB' | 'TJS' | 'TMT' | 'TND' | 'TOP' | 'TRY' | 'TTD' | 'TWD' | 'TZS' | 'UAH' | 'UGX' | 'USD' | 'USN' | 'UYI' | 'UYU' | 'UYW' | 'UZS' | 'VES' | 'VND' | 'VUV' | 'WST' | 'XAF' | 'XAG' | 'XAU' | 'XBA' | 'XBB' | 'XBC' | 'XBD' | 'XCD' | 'XDR' | 'XOF' | 'XPD' | 'XPF' | 'XPT' | 'XSU' | 'XTS' | 'XUA' | 'XXX' | 'YER' | 'ZAR' | 'ZMW' | 'ZWL'
DeliveryEstimate
- timeInTransit
The estimated time in transit for the delivery in seconds.
NumberRange
export interface DeliveryEstimate {
/**
* The estimated time in transit for the delivery in seconds.
*/
timeInTransit?: NumberRange;
}
NumberRange
- lower
The lower bound of the number range.
number
- upper
The upper bound of the number range.
number
export interface NumberRange {
/**
* The lower bound of the number range.
*/
lower?: number;
/**
* The upper bound of the number range.
*/
upper?: number;
}
Anchor to pickuppointlistapiPickupPointListApi
This API object is provided to extensions registered for the purchase.checkout.pickup-point-list.render-after
and purchase.checkout.pickup-point-list.render-after
extension target.
- Anchor to isLocationFormVisibleisLocationFormVisibleStatefulRemoteSubscribable<boolean>required
Whether the customer location input form is shown to the buyer.
PickupPointListApi
- isLocationFormVisible
Whether the customer location input form is shown to the buyer.
StatefulRemoteSubscribable<boolean>
export interface PickupPointListApi {
/**
* Whether the customer location input form is shown to the buyer.
*/
isLocationFormVisible: StatefulRemoteSubscribable<boolean>;
}
Anchor to pickuplocationlistapiPickupLocationListApi
This API object is provided to extensions registered for the purchase.checkout.pickup-location-list.render-after
and purchase.checkout.pickup-location-list.render-after
extension target.
- Anchor to isLocationFormVisibleisLocationFormVisibleStatefulRemoteSubscribable<boolean>required
Whether the customer location input form is shown to the buyer.
PickupLocationListApi
- isLocationFormVisible
Whether the customer location input form is shown to the buyer.
StatefulRemoteSubscribable<boolean>
export interface PickupLocationListApi {
/**
* Whether the customer location input form is shown to the buyer.
*/
isLocationFormVisible: StatefulRemoteSubscribable<boolean>;
}
Delivery group
React
examples
Delivery group
React
import { reactExtension, Banner, useDeliveryGroups, useDeliveryGroup, } from '@shopify/ui-extensions-react/checkout'; export default reactExtension( 'purchase.checkout.block.render', () => <Extension />, ); function Extension() { const deliveryGroups = useDeliveryGroups(); const { selectedDeliveryOption, targetedCartLines, } = useDeliveryGroup(deliveryGroups[0]); return ( <Banner> Selected delivery option:{' '} {selectedDeliveryOption?.title} </Banner> ); }
Anchor to examplesExamples
Learn how to use the API with JavaScript (JS) and React. See React Hooks for all available hooks.
Anchor to example-reading-the-selected-shipping-optionReading the selected shipping option
Anchor to example-determine-if-the-location-input-form-is-shownDetermine if the location input form is shown
Anchor to example-delivery-groupsDelivery groups
Reading the selected shipping option
examples
Reading the selected shipping option
React
import { reactExtension, Text, useSubscription, useShippingOptionTarget, } from '@shopify/ui-extensions-react/checkout'; export default reactExtension( 'purchase.checkout.shipping-option-item.render-after', () => <Extension />, ); function Extension() { const {shippingOptionTarget, isTargetSelected} = useShippingOptionTarget(); const title = shippingOptionTarget.title; return ( <Text> Shipping method: {title} is{' '} {isTargetSelected ? '' : 'not'} selected. </Text> ); }
JavaScript
import {extension} from '@shopify/ui-extensions/checkout'; export default extension( 'purchase.checkout.shipping-option-item.render-after', (root, {target, isTargetSelected}) => { const titleText = root.createText( `Shipping method title: ${target.current.title}`, ); root.appendChild(titleText); target.subscribe((updatedTarget) => { titleText.updateText( `Shipping method title: ${updatedTarget.title}`, ); }); const selectedText = root.createText( getSelectedText(isTargetSelected), ); root.appendChild(selectedText); isTargetSelected.subscribe( (updatedSelected) => { selectedText.updateText( getSelectedText(updatedSelected), ); }, ); function getSelectedText(selected) { return selected ? 'Selected' : 'Not selected'; } }, );
Determine if the location input form is shown
React
import { reactExtension, useApi, useSubscription, Text, } from '@shopify/ui-extensions-react/checkout'; export default reactExtension( 'purchase.checkout.pickup-point-list.render-before', () => <Extension />, ); function Extension() { const {isLocationFormVisible} = useApi<'purchase.checkout.pickup-point-list.render-before'>(); const locationFormShown = useSubscription( isLocationFormVisible, ); if (locationFormShown) { return ( <Text> The customer is being asked to provide their location. </Text> ); } else { return ( <Text>Pickup points are being shown.</Text> ); } }
JavaScript
import {extension} from '@shopify/ui-extensions/checkout'; export default extension( 'purchase.checkout.pickup-point-list.render-before', (root, {isLocationFormVisible}) => { const content = root.createText( getTextContent( isLocationFormVisible.current, ), ); root.appendChild(content); isLocationFormVisible.subscribe( (updatedLocationFormVisible) => { content.updateText( getTextContent( updatedLocationFormVisible, ), ); }, ); function getTextContent( isLocationFormVisible, ) { if (isLocationFormVisible) { return 'The customer is being asked to provide their location.'; } else { return 'Pickup points are being shown.'; } } }, );
Delivery groups
React
import { reactExtension, Banner, useDeliveryGroups, } from '@shopify/ui-extensions-react/checkout'; export default reactExtension( 'purchase.checkout.block.render', () => <Extension />, ); function Extension() { const deliveryGroups = useDeliveryGroups(); const deliveryOptions = deliveryGroups[0].deliveryOptions; return ( <Banner> First delivery option:{' '} {deliveryOptions[0].title} </Banner> ); }