跳到主要内容

CheckoutAPI 参考

CheckoutAPI 是结账页平台挂在 window.CheckoutAPI 上的全局对象,结账页和感谢页都有。它的方法按 order、store、address 等命名空间分组,扩展通过它读取订单和顾客已经做出的选择、监听这些数据的变化,以及驱动结账页的部分界面。本页列出的是结账页对外开放给应用的 CheckoutAPI 方法,口径来自平台的对外开放能力清单。方法签名里出现的类型,定义都在页尾的类型定义一节。

快速上手​

CheckoutAPI 的方法按业务分成 15 个命名空间,调用形式统一是 CheckoutAPI.<命名空间>.<方法>()。下面这段代码打印一份结账页概况——当前步骤、订单、金额、商品行,用到 step、store、summary 三个命名空间。把它跑通,整份文档的用法就掌握了:之后需要什么数据,先找到管这块数据的命名空间,再到它的方法表里查方法名。

javascript
const MOUNT_INTERVAL_MS = 100;
const MOUNT_MAX_ATTEMPTS = 50; // 100ms * 50 ≈ 5 秒

// CheckoutAPI 在结账页加载完成之后才挂到 window 上,
// 所以要轮询等待,不要直接读 window.CheckoutAPI。
function mount(cb, attempt = 0) {
if (window.CheckoutAPI) {
cb(window.CheckoutAPI);
return;
}
if (attempt >= MOUNT_MAX_ATTEMPTS) {
console.warn('CheckoutAPI 没有在预期时间内挂载');
return;
}
window.setTimeout(() => mount(cb, attempt + 1), MOUNT_INTERVAL_MS);
}

// 存成变量,之后才能用 api.store.removePricesChangeCb(onPricesChange) 取消。
const onPricesChange = (prices) => console.log('金额变了,现在总价', prices.totalPrice);

mount((api) => {
const order = api.store.getOrderInfo();
const prices = api.store.getPrices();
const products = api.summary.getProductList();

console.log('当前步骤:', api.step.getStep());
console.log('订单:', order.orderNo, order.status, order.currencyCode);
console.log('小计 / 总价:', prices.subtotalPrice, prices.totalPrice);
console.log('商品行:', products.length, products.map((p) => p.productTitle + ' x' + p.quantity));

api.store.onPricesChange(onPricesChange);
});

方法名的前缀说明了这是哪一类调用:

名字规律含义
get* / is* / has*同步读值,调用后立刻拿到返回值。
on* / remove*on* 注册回调,remove* 移除回调。两者成对使用,并且传同一个函数引用。
register* / unregister*注册「改写器」。回调的返回值会被平台消费,返回错了整页崩溃。只在明确要改平台行为时用。
dispatch*主动触发一次 UI 刷新。
返回 Promise会发请求或做校验,结果稍后才拿到。
调用前必读
  • 脚本刚开始跑的时候,window 上还没有 CheckoutAPI。 平台要等结账页加载完成才把它挂上去,所以要像上面的例子那样轮询等待,不要一上来就读 window.CheckoutAPI。完整例子见 场景三:API 调用与事件监听。
  • on* 和 remove* 要配对。 用 on* 注册的回调会一直留到页面卸载。把回调存成变量,不再需要时把同一个函数引用传给对应的 remove* 方法;写成内联箭头函数的回调永远取消不掉。
  • register* 是提供者,不是监听器。 名字以 register 开头的方法,交给结账页的是一个返回值会被平台消费的回调。以 registerUiShippingLinesChange 为例,它决定页面渲染哪些物流方案:回调返回 undefined,页面读 undefined.length 就会整页崩到报错界面。只有确实要改平台行为时才注册,并且必须按签名要求返回对应类型的值。只想观察某个值、不想改动它,用对应的 on* 方法。

address​

address 命名空间管收货地址和账单地址两张表单:字段值、界面据以渲染的 schema、校验,以及顾客保存过的地址簿;另外还提供国家列表和地址模板,用来判断某个国家的地址该收哪些字段。

收货地址​

方法用途参数返回
getShippingAddress获取收货地址的字段值—AddressValues
getShippingAddressSchema获取收货地址表单的 schema 配置列表,界面按这份配置渲染表单—ExtendSchema[]
onShippingSchemaChange注册收货地址表单 schema 变更的回调,触发后界面要重新渲染表单cb: AddressChangeCbvoid
removeShippingSchemaChangeCb删除收货地址表单 schema 变更的回调cb: AddressChangeCbvoid
onShippingAddressChange注册收货地址字段值变化的回调cb: AddressValuesChangeCbvoid
removeShippingAddressChangeCb删除收货地址字段值变化的回调cb: AddressValuesChangeCbvoid
onShippingAddressChangeByInput注册收货地址字段值变化的回调,只有顾客在表单里手动改动才触发,代码改动不触发cb: AddressValuesChangeCbvoid
removeShippingAddressChangeByInput删除只在顾客手动改动时触发的收货地址回调cb: AddressValuesChangeCbvoid
validateShippingAddress校验收货地址,传 ids 时只校验指定字段ids?: string[]
options?: ValidateOptions
Promise<ValidateResult[]>
isSaveAddress「保存到地址簿」是否已勾选—boolean
setIsSaveAddress设置「保存到地址簿」的勾选状态isSave: booleanvoid
clearShippingAddress清空收货地址—void
updateShippingAddress更新收货地址address: Partial<ShippingAddress>void
getEmailSchema获取邮箱输入框的 schema 配置config: ContactSchemaConfigAddressItemEmailSchema | null
getPhoneSchema获取手机号输入框的 schema 配置config: ContactSchemaConfigAddressItemGeneralPhoneSchema | AddressItemStringSchema | null
getEmailOrPhoneSchema获取「邮箱或手机号」输入框的 schema 配置—AddressItemStringSchema | null
validateContact校验联系方式的输入options?: ValidateOptionsPromise<ValidateResult | undefined>
getContactSchema获取联系方式的 schema,汇总 getEmailSchema、getPhoneSchema 和 getEmailOrPhoneSchema 的结果—AddressItemPhoneSchema | AddressItemStringSchema | AddressItemEmailSchema
registerShippingAddressSchemaSort注册收货地址表单的排序回调,用来调整字段顺序cb: SortSchemaCbvoid
registerShippingAddressSchemaChangeVisibility注册非必填字段的显示控制回调,用来隐藏选填项cb: SchemaItemVisibilityCbvoid
registerShippingAddressSchemaChangeLabel注册字段标签的改写回调,用来修改表单项的 labelcb: SchemaChangeLabelCbvoid
dispatchShippingAddressSchemaChange手动通知界面重新渲染收货地址表单—void
expandShippingAddress展开收货地址表单,reason 说明这次展开是怎么触发的reason?: AddressExpandReasonvoid
formatPhone按当前收货地址所属国家格式化电话号码value: stringstring
getCollapsibleShippingAddressSchema获取折叠形态的收货地址 schema:未展开时隐藏联想字段,address 作为联想入口,并追加一个手动输入入口—ExtendSchema[]
getShippingAddressFocusIdPrefix获取收货地址字段 focus id 的前缀,拼出完整 id 后可以定位到对应输入框—string
getSubmitShippingAddress获取提交给平台的收货地址结构:字段是嵌套的,部分字段还带默认值处理—ShippingAddress
isFieldShow判断当前地址模板下某个字段是否展示key: keyof AddressValuesboolean
isShippingAddressExpanded收货地址表单当前是否已展开—boolean
registerShippingAddressSchemaChangeDisable注册收货地址字段的禁用回调,可以用来禁掉已经有值的字段cb: SchemaChangeDisableCBvoid
registerShippingAddressSchemaChangeValidateRule注册收货地址表单的附加校验规则,在平台默认校验之上生效cb: SchemaChangeValidateRuleCBvoid

账单地址​

方法用途参数返回
getBillingAddress获取账单地址—AddressValues | ShippingAddress | undefined
getBillingAddressSchema获取账单地址表单的 schema 配置,界面按这份配置渲染表单—AddressItemSchema[]
onBillingSchemaChange注册账单地址表单 schema 变更的回调,触发后界面要重新渲染表单cb: BillingAddressChangeCbvoid
removeBillingSchemaChangeCb删除账单地址表单 schema 变更的回调cb: BillingAddressChangeCbvoid
validateBillingAddress校验账单地址—Promise<ValidateResult[]>
onBillingAddressValuesChange注册账单地址字段值变化的回调cb: BillingAddressValuesChangeCbvoid
removeBillingAddressValuesChange删除账单地址字段值变化的回调cb: BillingAddressValuesChangeCbvoid
isUseShippingAsBillingAddress账单地址是否复用收货地址;复用时账单地址表单会折叠起来,顾客不用填—boolean
setIsUseShippingAsBillingAddress设置账单地址是否复用收货地址isUse: booleanvoid
onUseShippingAsBillingAddressChange注册「账单地址复用收货地址」状态变化的回调cb: UseShippingAsBillingAddressCbvoid
removeUseShippingAsBillingAddressChange删除「账单地址复用收货地址」状态变化的回调cb: UseShippingAsBillingAddressCbvoid
registerBillingAddressSchemaChangeLabel注册账单地址字段标签的改写回调,用来修改表单项的 labelcb: SchemaChangeLabelCbvoid
setBillingAddress设置账单地址的字段值address: AddressValuesvoid
registerBillingAddressSchemaSort注册账单地址表单的排序回调,用来对非礼品卡商品的账单地址字段重新排序cb: SortSchemaCbvoid
dispatchBillingAddressSchemaChange手动触发账单地址表单结构变更的通知—void

地址簿​

方法用途参数返回
onChangeAddressBook注册地址簿列表变化的回调,触发后要重新调用 getAddressBookList 取最新列表cb: AddressBookChangeCbsvoid
removeAddressBookChangeCb删除地址簿列表变化的回调cb: AddressBookChangeCbsvoid
getAddressBookList获取地址簿列表—IAddressBookItem[]
applyAddress把地址簿里的某个地址填进收货地址id: string
setBilling?: boolean
void

地址通用​

方法用途参数返回
getAddressTemplate按国家、省州和预设取地址模板,模板决定这个国家的地址收哪些字段params: GetAddressTemplateParamsAddressTemplate
getAllCountries获取平台支持的全部国家—AddressCountry[]
getAvailableCountries获取店铺开放的国家列表—AddressCountry[]
getDefaultAddressValues获取一份空的地址字段值,可以拿来当表单初始值—AddressValues
getSchemaManager创建地址表单的 schema 管理器,用它按当前地址值和地址模板生成并校验各个字段context: AddressSchemaManagerContext
config: SchemaManagerConfig
AddressSchemaManager
hasCountry判断某个国家码是否在店铺开放的国家列表里countryCode: stringboolean
isMiddleEastCountry判断是否是需要特殊地址处理的中东国家countryCode: stringboolean
isMultiLevelCountry判断某个国家是否使用多级行政区地址countryCode: stringboolean

base​

base 命名空间是结账页的基础设施:加载与 pending 状态、手机号格式化、多语言文案,以及每个原生模块当前是否展示。

加载与 pending 状态​

方法用途参数返回
getLoadingStatus获取全局 loading 状态—LoadingStatus
onLoadingStatusChange注册 loading 状态变化的回调cb: OnLoadingStatusChangeCallbackvoid
removeLoadingStatusChangeCb删除 loading 状态变化的回调cb: OnLoadingStatusChangeCallbackvoid
setLoadingStatus更新 loading 状态status: Partial<LoadingStatus>void
getPending获取各个模块的 pending 状态—Pending
onPendingChange注册 pending 状态变化的回调pending: OnSubmitPendingChangeCallbackvoid
removePendingChangeCb删除 pending 状态变化的回调cb: OnSubmitPendingChangeCallbackvoid
resetAllPending重置全部 pending 状态—void
setPricePending设置价格计算的 pending 状态pending: booleanvoid
setPickupLocationPending设置自提点列表的 pending 状态pending: booleanvoid
getPickupLocationPending获取自提点列表的 pending 状态—boolean
setShippingLinesPending设置物流方案列表的 pending 状态pending: booleanvoid
getShippingLinesPending获取物流方案列表的 pending 状态—boolean
setPaymentPending设置支付脚本加载的 pending 状态pending: booleanvoid

手机号格式化​

方法用途参数返回
getPhoneAreaList获取电话区号列表—Country[]
getDefaultPhoneKey获取默认的手机区号,先按 IP 定位取,取不到再按浏览器语言取—string
getPhoneArea根据手机号判断它属于哪个国家或地区phone: string
phoneKey?: string
Country | undefined
formatPhone按国家格式化手机号phone: string
countryCode: string
string
isValidPhone判断手机号在指定国家下是否合法phone: string
countryCode?: string
boolean
initPhone初始化手机号和区号:先从订单上已有的号码解析出区号,再按这个区号把号码格式化成该国的标准写法phone: string
_phoneAreaCode: string
isPhoneRequired: boolean
InitPhoneResult | null

多语言​

方法用途参数返回
getLocale获取当前语言,例如 en—string
formatMessage按 key 取当前语言的文案,key 不存在时返回 defaultMessage;context 用来填文案里的占位符id: string
defaultMessage?: string
context?: Record<string, string | number>
string
formatPrice把金额格式化成带货币符号的展示文案price: number | string
symbolStr?: string
string
isRtlLocale当前语言是否从右往左排版,例如阿拉伯语—boolean
registerLocaleMap注册扩展自己的多语言文案,按语言分组传入locales: LocaleMapvoid
getFullLocale获取当前完整的语言标记,例如 en-US—Locale

用法

先按语言注册自己的文案,再用 formatMessage 取回。嵌套的 key 会用点号打平,audit2: { deep: … } 要按 'audit2.deep' 取;context 用来填文案里的 {占位符}。

javascript
CheckoutAPI.base.registerLocaleMap({
'en-US': { 'audit.greet': 'Hi {name}', audit2: { deep: 'deep {name}' } },
'zh-CN': { 'audit.greet': '你好 {name}', audit2: { deep: '深层 {name}' } },
});

CheckoutAPI.base.getLocale(); // 'en'
CheckoutAPI.base.getFullLocale(); // 'en-US'

CheckoutAPI.base.formatMessage('audit.greet', '', { name: 'Audit' }); // 'Hi Audit'
CheckoutAPI.base.formatMessage('audit2.deep', '', { name: 'Audit' }); // 'deep Audit'

// 不传 defaultMessage 时,key 不存在就原样返回 key
CheckoutAPI.base.formatMessage('probe.not_exist'); // 'probe.not_exist'
CheckoutAPI.base.formatMessage('probe.not_exist', 'FALLBACK TEXT'); // 'FALLBACK TEXT'

CheckoutAPI.base.formatPrice(10); // '$10.00'
CheckoutAPI.base.formatPrice('10.5'); // '$10.50'
CheckoutAPI.base.formatPrice(10, '€'); // '€10.00'

用哪一份文案由顾客当前语言决定:getLocale() 返回短格式,getFullLocale() 返回作为 map key 的完整标记。当前语言下没有这个 key 时,返回传入的 defaultMessage;没传 defaultMessage 就原样返回 key 本身。

展示状态​

方法用途参数返回
getSpecialInstructionVisible备注输入框是否展示—boolean
getBillingVisible账单地址是否展示—boolean
getVirtualBillingVisible虚拟商品的账单地址是否展示—boolean
getBillingSelectorVisible「账单地址复用收货地址」的选择框是否展示—boolean
getPickupAddressVisible自提地址列表是否展示—boolean
getPickupInformationVisible自提信息模块是否展示—boolean
getAddressCardVisible已填信息卡片是否展示—boolean
getDeliveryMethodVisible交付方式模块是否展示—boolean
getExpressCheckoutVisible快捷支付是否展示—boolean
getDeliveryVisible物流方案列表是否展示—boolean
getMobileCouponVisible移动端的优惠码输入框是否展示—boolean
getSummaryCouponVisible桌面端的优惠码输入框是否展示—boolean
getAddressBookVisible地址簿是否展示—boolean
getShippingAddressVisible收货地址是否展示—boolean
getContactInformationVisible联系方式模块是否展示—boolean
setIsExpandedManually记录顾客手动展开了已填信息卡片val: booleanvoid
getIsExpandedManually顾客是否手动展开过已填信息卡片—boolean
getVisibleConfig一次获取全部模块的展示状态—VisibleConfig
onVisibleConfigChange注册展示状态变化的回调cb: VisibleConfigChangeCbvoid
removeVisibleConfigChangeCb删除展示状态变化的回调cb: VisibleConfigChangeCbvoid
getShowDetails平台下发的卡片收起配置—ShowDetails
getGiftCardBillingVisible礼品卡订单的账单地址表单是否展示—boolean

config​

config 命名空间是只读的店铺和页面配置:主题、多市场、特性开关,以及当前打开的是结账页还是感谢页。

方法用途参数返回
getFeatureConfig获取结账页的特性开关配置—CheckoutFeatures
getThemeConfig获取结账页的主题配置—CheckoutThemeConfig
getAppConfig获取结账页的应用配置—CheckoutAppConfig
getMarketConfig获取多市场配置—MarketInfo
getShopConfig获取店铺配置—ShopConfig
getRootUrl获取接口根地址—string
getPolicyTitles获取页脚政策链接的标题列表—string[]
isThankyouPage当前页是否是感谢页—boolean
isCheckoutPage当前页是否是结账页—boolean
getCSettings获取结账页的页面级设置—CSettings
isMobileLayout当前是否采用移动端布局,窗口宽度小于 768px 时生效—boolean
onThemeConfigChange注册主题配置变化的回调cb: ThemeConfigChangeCbvoid
removeThemeConfigChange移除主题配置变化的回调cb: ThemeConfigChangeCbvoid
updateThemeConfig更新主题配置config: Partial<CheckoutThemeConfig>void

coupon​

coupon 命名空间管顾客能用的优惠:领用的优惠券、手输的优惠码,以及礼品卡。它既能读当前生效的优惠、增删优惠码和礼品卡,也能改写礼品卡与优惠码 tag 的展示。

优惠券​

方法用途参数返回
applyCoupon使用一张优惠券code: stringPromise<any>
cancelCoupon取消一张已使用的优惠券code: stringPromise<any>
getAvailableCouponData获取本单可用的优惠券列表—CouponData
getSelectedDiscountCoupon获取当前生效的优惠券—DiscountApplication | undefined
getUnavailableCouponData获取本单不可用的优惠券列表—CouponData
isShowDiscountCoupon是否展示优惠券入口—boolean
onAvailableCouponDataChange注册可用优惠券列表变化的回调cb: CouponListChangeCbvoid
onCouponChange注册已用优惠券变化的回调cb: CouponChangeCbvoid
onUnavailableCouponDataChange注册不可用优惠券列表变化的回调cb: CouponListChangeCbvoid
removeAvailableCouponDataChangeCb移除可用优惠券列表变化的回调cb: CouponListChangeCbvoid
removeCouponChangeCb移除已用优惠券变化的回调cb: CouponChangeCbvoid
removeUnavailableCouponDataChangeCb移除不可用优惠券列表变化的回调cb: CouponListChangeCbvoid
requestCouponList按可用状态拉取优惠券列表status: CouponAvailStatusPromise<void>

礼品卡与优惠码​

方法用途参数返回
registerGiftCardTagChange注册某一个优惠码或礼品卡 tag 的改写回调,用来定制这个 tag 的展示id: string
cb: GiftCardTagChange
void
getGiftCardTags获取礼品卡和优惠码的 tag 列表—GiftCardTagItem[]
onDiscountChange注册 tag 列表变化的回调cb: GiftCardTagsChangeCbvoid
removeDiscountChangeCb删除 tag 列表变化的回调cb: GiftCardTagsChangeCbvoid
getGiftCards获取本单已使用的礼品卡—GiftCard[]
getDiscountCodes获取本单已使用的优惠码—DiscountApplication[]
getDiscountApplications获取本单生效的全部优惠,包含优惠码和自动促销活动—DiscountApplication[]
applyGiftCardOrDiscountCode使用一个优惠码或礼品卡;position 标明来源输入框,仅用于埋点code: string
position?: 'coupon-pc' | 'coupon-mobile'
Promise<any>
cancelGiftCardOrDiscountCode取消已使用的优惠码或礼品卡parasm: CancelCouponParamsPromise<any>
applyDiscount批量使用优惠码codes: string[]Promise<PriceResult | undefined>
cancelDiscountCode批量取消已使用的优惠码codes: string[]Promise<PriceResult | undefined>
isCurrentStepShowDiscountCode按店铺配置判断当前步骤是否展示优惠码和礼品卡入口step?: CheckoutStepboolean
registerGiftCardTagsFilter注册礼品卡与优惠码 tag 的过滤回调,决定哪些 tag 会展示cb: GiftCardTagsFiltervoid

exception​

exception 命名空间管结账过程中的业务异常:检查接口返回里的异常码、读取和清空已存的异常、监听提交错误,以及商品被剔除时的弹窗状态。

方法用途参数返回
checkException检查接口返回里有没有业务异常码:有就把异常信息存下来并返回 false,没有则返回 true。存下的信息可以用来弹窗或做其他提示exception?: ExceptNotificationboolean
onExceptionChange注册业务异常信息变化的回调,存入和清空都会触发cb: ExceptionChangeCbsvoid
removeExceptionChangeCb删除业务异常信息变化的回调cb: ExceptionChangeCbsvoid
unsetException清空当前存储的业务异常信息—void
getSubmitErrorInfo获取当前提交相关的错误信息—SubmitError | undefined
setSubmitErrorInfo设置提交相关的错误码。提交时平台已经设过一次,这里一般用来清空code: IExceptionCode | ''void
onSubmitErrorChange注册提交错误变化的回调cb: SubmitErrorChangeCbsvoid
removeSubmitErrorChangeCb删除提交错误变化的回调cb: SubmitErrorChangeCbsvoid
getExceptionInfo获取存储的业务异常信息—ExceptionInfo
getException获取当前存着的业务异常—IException | undefined
handleExceptionOk执行业务异常弹窗上确认按钮的处理逻辑—Promise<boolean>

extension​

extension 命名空间管的是扩展自身:注册扩展、读取某个点位上已注册的内容、监听扩展加载完成、查询和监听哪些原生模块被隐藏,以及拼出动态扩展点的真实名字。

方法用途参数返回
generateRealDynamicPoint把带 {id} 的动态点位模板拼成真实点位名point: ExtensionPoint
id?: string
string
getExtensionComponents有id说明为动态点位 返回对应点位的 extension component信息,比getExtensionContent具有更全面的信息point: ExtensionPoint
id?: string
ExtensionComponent[]
getExtensionContent有id说明为动态点位 返回对应点位的extension字符串,不存在则返回空point: ExtensionPoint
id?: string
string
getExtensionList获取extension列表—Extension[]
getPlaceholderContent返回对应点位的占位内容,ui层使用innerHtml插入这些内容point: ExtensionPointstring
isHideExtensionTarget判断某个扩展目标是否隐藏,ui层根据这个决定要不要隐藏某个扩展组件target: ExtensionTargetboolean
onAllExtensionLoaded注册所有 extension 加载完毕的回调cb: AllExtensionLoadedCbvoid
onExtensionLoad注册一个回调,当某个点位的extension完成加载时执行回调cb: ExtensionLoadCbvoid
onHideExtensionTargetisHideExtensionTarget 发生变更cb: HideExtensionTargetCbvoid
registerExtension注册一个扩展,extension开发者使用这个函数完成extension的注册params: RenderParamsPromise<void>
removeAllExtensionLoadedCb注销所有 extension 加载完毕的回调cb: AllExtensionLoadedCbvoid
removeHideExtensionTarget移除回调cb: HideExtensionTargetCbvoid

order​

order 命名空间管的是顾客下单途中做的选择:交付方式、物流方案、运输保障、小费、留言备注和提交动作,以及每次变更之后的价格刷新。

交付方式​

方法用途参数返回
getDeliveryMethodList获取交付方式列表—DeliveryMethodItem[]
getSelectedDeliveryMethod获取当前选中的交付方式—DeliveryMethodItem
updateDeliveryMethod切换选中的交付方式,返回重算后的价格type: CheckoutBusinessTypePromise<PriceResult | undefined>
onDeliveryMethodChange注册交付方式发生变化的回调cb: DeliveryMethodChangeCbvoid
removeDeliveryMethodChangeCb删除交付方式发生变化的回调cb: DeliveryMethodChangeCbvoid
onDeliveryMethodListChange注册交付方式列表变化的回调cb: DeliveryListChangeCbvoid
removeDeliveryMethodListChange移除交付方式列表变化的回调cb: DeliveryListChangeCbvoid
unregisterDeliveryMethodListChange注销交付方式列表的改写回调cb: DeliveryMethodListChangeCbvoid
registerDeliveryMethodListChange注册交付方式列表的改写回调,用于定制每一项的内容,例如隐藏图标或插入文案;回调必须返回一份完整的列表cb: DeliveryMethodListChangeCbvoid

商品行​

方法用途参数返回
addLineItems新增 checkout 商品行,成功后自动调 /prices 重算并更新金额params: AddLineItemsInputPromise<LineMutationResult>
removeLineItems移除 checkout 商品行,成功后自动调 /prices 重算并更新金额params: RemoveLineItemsInputPromise<LineMutationResult>

提交与校验​

方法用途参数返回
couldSubmit当前是否允许提交,用于自定义提交按钮的禁用状态—boolean
onSubmitChange注册提交状态发生变化的回调cb: SubmitChangeCbvoid
removeSubmitChangeCb删除提交状态发生变化的回调cb: SubmitChangeCbvoid
preSaveAddress把当前表单里填写的地址预存到订单—Promise<void>
submitInformationAndNavigate提交信息步并跳到下一步,过程中会跑表单校验和扩展校验;只有两页和三页布局会用到—Promise<ValidateResult[] | undefined>
registerBuyerJourneyIntercept注册结算中断规则:回调返回 block 时弹窗拦下提交,返回 allow 则放行cb: BuyerJourneyInterceptCbvoid
addBeforeSubmitCb添加一个地址提交前的校验回调,平台自带的两项是邮箱和地址cb: BeforeSubmitCbvoid
removeBeforeSubmitCb移除地址提交前的校验回调cb: BeforeSubmitCbvoid
submitAddressAndShippingLines提交地址和选中的物流方案—Promise<Res<SubmitSuccessData>>
submitShippingLinesAndNavigate提交物流方案并跳到下一步,只有三页布局会用到—Promise<ValidateResult[] | undefined>
submitValidate提交前的通用校验:按当前布局和所处步骤挑选要校验的项,并把焦点移到第一个不通过的输入框—Promise<ValidateResult[]>
unregisterBuyerJourneyIntercept注销结算中断规则cb: BuyerJourneyInterceptCbvoid

小费​

方法用途参数返回
getTippingOptions获取小费的预设档位列表—TippingOption[]
onTippingChange注册小费发生变化的回调cb: TippingChangeCbvoid
removeTippingChangeCb删除小费发生变化的回调cb: TippingChangeCbvoid
handleTipping提交小费,type 区分选中预设档位(select)和顾客手动输入(input)value: number
type: 'select' | 'input'
Promise<any>
getTippingInfo获取小费信息:是否支持和展示小费、货币符号、已收小费,以及扣除优惠(不含免邮券)后的商品小计—TippingInfo

物流​

方法用途参数返回
getShippingLines获取当前地址可用的物流方案列表—FormatShippingLineType[]
getSelectedShippingLine获取当前选中的物流方案,没有选中时返回 null—FormatShippingLineType | null
updateSelectedShippingLine切换选中的物流方案shippingLine: ShippingLineTypePromise<void>
shouldCalculateShippingLine当前是否应该请求物流方案;三页布局在信息步返回 false—boolean
onShippingChange注册物流方案发生变化的回调cb: ShippingChangeCbvoid
removeShippingChangeCb删除物流方案发生变化的回调cb: ShippingChangeCbvoid
isShippingMethodAutoSelect店铺后台是否配置了自动选中物流方案—boolean
isSupportShippingLinesCollapse物流方案列表是否支持折叠,只有单页和两页布局支持—boolean
getShippingPromptMessage获取物流方案列表当前的提示文案,没有提示时返回 null—PromptMessage | null
onShippingPromptMessageChange注册物流方案列表提示文案发生变化的回调cb: ShippingPromptMessageChangeCbvoid
removeShippingPromptMessageChange删除物流方案列表提示文案发生变化的回调cb: ShippingPromptMessageChangeCbvoid
dispatchShippingChange手动触发一次物流方案变更的通知—void
getShippingLinesErrorInfo获取物流方案列表的错误信息—ShippingLinesErrorInfo
getUiShippingLines获取页面最终展示的物流方案列表,可能已经被扩展改写过—FormatShippingLineType[]
unregisterUiShippingLinesChange注销物流方案列表的改写回调cb: UiShippingLinesChangeCbvoid
registerUiShippingLinesChange注册物流方案列表的改写回调,决定页面最终展示哪些物流方案;回调必须返回一份完整的列表cb: UiShippingLinesChangeCbvoid

运输保障​

方法用途参数返回
getChargeQuotes获取运输保障服务列表—ChargeQuote[]
onShippingProtectionChange注册运输保障服务变化的回调cb: ShippingProtectionChangeCbvoid
removeShippingProtectionChangeCb移除运输保障服务变化的回调cb: ShippingProtectionChangeCbvoid
switchShippingProtection勾选或取消某一项运输保障服务quoteId: string
selected: boolean
Promise<SwitchShippingProtectionResult>

留言备注​

方法用途参数返回
getSpecialInstructionNote获取顾客填写的留言备注—string
updateSpecialInstructionNote写入留言备注内容,saveToBackend 为 true 时同时保存到订单note: string
saveToBackend?: boolean
Promise<any>
onChangeSpecialInstruction注册留言备注发生变化的回调cb: (info: string) => voidvoid
removeSpecialInstructionChangeCb删除留言备注发生变化的回调cb: (info: string) => voidvoid
expendSpecialInstruction展开留言备注输入框—void
isInstructionCollapse留言备注输入框当前是否折叠—boolean
onInstructionCollapseChange注册留言备注折叠状态发生变化的回调cb: IsSpecialInstructionCollapseChangevoid
removeInstructionCollapseChange删除留言备注折叠状态发生变化的回调cb: IsSpecialInstructionCollapseChangevoid

自定义字段​

方法用途参数返回
getOrderCustomFields获取当前订单已保存的自定义业务字段。读的是页面已加载的订单数据,直接返回结果,不发请求;订单没有字段时返回空对象—Record<string, string>
updateOrderCustomFields设置或删除当前订单的自定义业务字段。只在订单还可编辑时能用:感谢页、订单已取消、订单尚未创建时直接失败,不发请求params: UpdateOrderCustomFieldsInputPromise<UpdateCustomFieldsResult>

已填信息卡片​

方法用途参数返回
getCollapseInfo获取已填信息卡片的内容:联系方式、收货地址、交付方式、物流方案,以及是否显示新建地址按钮—CollapseInfo
onCollapseInfoChange注册已填信息卡片发生变化的回调cb: CollapseInfoChangeCbvoid
removeCollapseInfoChangeCb删除已填信息卡片发生变化的回调cb: CollapseInfoChangeCbvoid

订单数据与价格更新​

方法用途参数返回
updateDataByPriceApi重新请求价格接口并刷新页面上的价格数据params?: UpdateDataByPriceApiParamsPromise<PriceResult | undefined>
updateDataByOrderAndPriceApi并发请求订单详情接口和价格接口并刷新两份数据,常用于出错之后重新拉取params?: UpdateDataByPriceApiParamsPromise<UpdateDataByOrderAndPriceApiResult>
updateDataByOrderApi重新请求订单详情接口并刷新订单数据—Promise<OrderResult | undefined>
calculatePrice按传入参数试算价格,只返回结果,不写回结账页的数据params?: UpdateDataByPriceApiParamsPromise<PriceResult | undefined>

payment​

payment 命名空间管支付方式:有哪些可选、当前选中哪一个、发起支付,以及支付尝试、支付失败和支付完成时的回调。

方法用途参数返回
paymentPay顾客点击提交后发起支付—Promise<void>
getPaymentLines获取支付列表里的全部支付方式—PaymentUpdateParams['paymentLines']
getSelectedPaymentLine获取当前选中的支付方式—PaymentLine | null | undefined
onAfterPay注册支付完成后的回调cb: AfterPayCbvoid
onPayAttempt注册支付尝试的回调;它在表单校验之前触发,校验没过、支付其实没拉起也算一次尝试cb: PayAttemptCbvoid
onPayFailed注册支付失败的处理回调,可以注册多个:触发时依次调用,取第一个有返回值的结果作为最终结果handler: PayFailedHandlervoid
removePayAttemptCb移除支付尝试的回调cb: PayAttemptCbvoid

pickup​

pickup 命名空间管门店自提:自提点列表、顾客选中的自提点、取货信息表单,以及自提相关的校验。

方法用途参数返回
getPickupLocations获取自提点列表—PickupLocation[]
getPickupLocationValidateResult获取自提点的校验结果—ValidateResult | undefined
onPickupLocationValidateResultChange注册自提点校验结果变化的回调cb: ValidatePickupResultChangeCbvoid
removePickupLocationValidateResultChange删除自提点校验结果变化的回调cb: ValidatePickupResultChangeCbvoid
validatePickupLocation校验是否已经选了自提点—Promise<ValidateResult | undefined>
getSelectedPickupLocation获取当前选中的自提点—PickupLocation | undefined
updatePickupLocation切换选中的自提点,返回重算后的价格location: PickupLocationPromise<PriceResult | undefined>
onPickupLocationsChange注册自提点列表变化的回调cb: PickupLocationsChangeCbvoid
removePickupLocationsChangeCb删除自提点列表变化的回调cb: PickupLocationsChangeCbvoid
onSelectedPickupLocationChange注册选中自提点变化的回调cb: SelectedPickupLocationChangeCbvoid
removeSelectedPickupLocationChangeCb删除选中自提点变化的回调cb: SelectedPickupLocationChangeCbvoid
onPickupInformationChange注册取货信息变化的回调cb: PickupInformationChangeCbvoid
removePickupInformationChangeCb删除取货信息变化的回调cb: PickupInformationChangeCbvoid
getPickupInformationSchema获取取货信息表单的 schema 配置—AddressItemSchema[]
validatePickupInfo校验自提信息表单—Promise<ValidateResult[]>

step​

step 命名空间管结账的步骤:读取当前步骤、在步骤之间跳转、步骤导航栏的配置,以及跳出结账页去店铺的其他页面。

方法用途参数返回
getStep获取顾客当前所在的步骤—CheckoutStep
isInformationStep当前是否在信息步—boolean
isShippingStep当前是否在配送步;配送步只有三页布局的第二页才有—boolean
isPaymentStep当前是否在支付步;支付步是三页和两页布局的最后一页—boolean
stepNavToInformation跳转到信息步type?: EventTypePromise<void>
stepNavToShipping跳转到配送步type?: EventTypePromise<void>
stepNavToPayment跳转到支付步—Promise<void>
stepNavToNext跳转到下一步,布局和结算方式的差异由平台抹平—Promise<void>
stepNavToPrevious跳回上一步—void
hasShippingMethodStep本单有没有配送步;没有选自提且不是虚拟商品才有—boolean
getNavigateLinks获取步骤导航栏的配置—NavigateLink[]
onNavigateLinksChange注册导航栏配置变化的回调cb: NavigateLinksChangeCbvoid
removeNavigateLinksChange删除导航栏配置变化的回调cb: NavigateLinksChangeCbvoid
onStepChange注册步骤变化的回调cb: StepChangeCbvoid
removeStepChangeCb删除步骤变化的回调cb: StepChangeCbvoid
navigateClick按导航栏点击的行为跳转到指定步骤id: CheckoutStepPromise<void>
couldNavTo导航栏能不能跳到指定步骤。导航栏只能往回跳,往前推进要靠提交当前步骤id: CheckoutStepboolean
stepNavTo跳转到指定步骤id: CheckoutStep
location?: EventType
Promise<any>
navToReferrerPage跳回顾客进入结账页之前的那个页面—void
goToOrderInfoPage跳转到订单详情页—void
goToHomePage跳转到店铺首页—void
disableJump禁止步骤跳转,可以指定只禁止哪几种跳转方式way?: JumpWay[]Promise<void>
getReturnBtnText获取返回按钮的文案,返回空字符串表示不展示这个按钮—string
goToThankyouPage跳转到感谢页—void
isDisableJump当前是否禁止步骤跳转—boolean
locationHreflocation.href统一用这个url: stringvoid
stepNavToWithoutSubmit跳到指定步骤,不提交当前步骤的数据id: CheckoutStepvoid

store​

store 命名空间是订单数据的所在地。订单本身、价格、业务类型和结账页布局都从这里读,数据刷新也在这里监听。

方法用途参数返回
onPricesChange注册价格发生变化的回调;回调触发时商品行的折后价可能仍是旧值,需要商品行数据时稍后再读cb: PricesChangeCbvoid
removePricesChangeCb删除价格发生变化的回调cb: PricesChangeCbvoid
getOrderStatus获取订单状态—OrderStatus
onOrderChange注册订单数据刷新的回调,订单详情接口和价格接口写入新数据时触发。回调不带数据,要用对应的 get 方法去取cb: OnStoreDataChangeCbvoid
removeOrderChangeCb删除订单数据刷新的回调cb: OnStoreDataChangeCbvoid
getPrices获取订单的价格信息—CheckoutPrices
getOrderInfo获取订单基础信息—OrderInfo
getOrderConfig获取订单属性,例如结账页布局和订单业务类型—OrderConfig
getBusinessType获取订单业务类型—CheckoutBusinessType
getCheckoutSettings获取店铺的结账页设置—CheckoutSettings
getInstructionType获取备注输入框的折叠配置—InstructionType
getCustomerAuthority获取下单权限配置,login 表示只有登录顾客才能下单—CustomerAuthority
setBusinessType设置订单业务类型,自提布局会用到type: CheckoutBusinessTypevoid
onBusinessTypeChange注册订单业务类型变化的回调cb: CheckoutBusinessTypeChangeCbvoid
removeBusinessTypeChangeCb删除订单业务类型变化的回调cb: CheckoutBusinessTypeChangeCbvoid
getPageType获取结账页布局类型,页面存续期间不会变—CheckoutPageType
isThreeStepPage当前是否三页结账布局—boolean
isTwoStepPage当前是否两页结账布局—boolean
isOneStepPage当前是否单页结账布局—boolean
getContactType获取店铺收集联系方式的配置—ContactType
getAddressSettings获取地址表单配置—CheckoutAddressSettings
isPageTypeSupportFirstStepCollapse当前布局是否支持在第一步把地址收成卡片,只有单页和两页布局支持—boolean
isStandardTemplate当前是否物流配送结账模板—boolean
isVirtualTemplate当前是否虚拟商品结账模板;订单里全是虚拟商品时才是—boolean
isStandardBusiness订单业务类型是否为物流配送—boolean
isVirtualBusiness订单业务类型是否为虚拟商品—boolean
isPickupTemplate当前是否自提结账模板;商家配了自提点就是自提模板。顾客是不是真走自提要看 isSelectedPickup—boolean
isSelectedPickup本单是否走自提;自提模板且顾客选了自提才为 true—boolean
isDirectPayment订单是否由商家后台创建;这类订单会直接落到支付步—boolean
isShippingInInformationStep物流方案是否展示在第一步。单页和两页布局把物流放在信息步,这决定了第一步要不要算运费—boolean
isCartOrder订单是否从购物车下单—boolean
isBuyNowOrder订单是否从商详页立即购买下单—boolean
getReferInfo获取订单的来源信息—ReferInfo
getTaxLines获取税费明细—TaxLines
isGiftCardOrder判断是否礼品卡商品订单—boolean
isOrderIdEmpty当前订单 id 是否为空—boolean
onPageTypeChange注册结账页布局变化的回调cb: PageTypeChangeCbvoid
removePageTypeChange移除结账页布局变化的回调cb: PageTypeChangeCbvoid
setOrderId设置订单 idid: stringvoid
setPageType设置结账页布局type: CheckoutPageTypevoid

summary​

summary 命名空间管订单摘要那一列:商品行列表、价格明细,以及运费的展示文案。

方法用途参数返回
getProductList获取商品行列表,带 properties 自定义属性字段—ProductItem[]
onProductListChange注册商品行列表变化的回调cb: ProductListChangeCbvoid
removeProductListChangeCb删除商品行列表变化的回调cb: ProductListChangeCbvoid
getPriceList获取平台算好的价格明细分组—PriceGroupDetail[]
onPriceListChange注册价格明细变化的回调cb: PriceListChangeCbvoid
removePriceListChangeCb删除价格明细变化的回调cb: PriceListChangeCbvoid
getShippingPriceDisplay获取运费的展示文案—string
onShippingPriceDisplayChange注册运费展示文案变化的回调cb: ShippingPriceDisplayChangeCbvoid
removeShippingPriceDisplayChange删除运费展示文案变化的回调cb: ShippingPriceDisplayChangeCbvoid
registerUiProductListChange注册商品行列表的改写回调,决定页面最终渲染哪些商品行;回调必须返回一份完整的列表cb: UiProductListChangeCbvoid
getGiftCardPrice获取礼品卡的价格明细—PriceGroupDetail | undefined
dispatchPriceListChange手动通知界面重新渲染价格明细—void
dispatchProductListChange手动触发一次商品列表的界面刷新—void
getUiProductList获取订单摘要最终展示的商品列表,可能已经被扩展改写过—UIProduct[]
unregisterUiProductListChange注销商品列表的改写回调cb: UiProductListChangeCbvoid

track​

track 命名空间用来上报埋点事件。既有通用的 track,也有结账页各个环节的专用方法(进入结账、填地址、选物流、发起支付等),另外还能读取上报用的订单数据、给某个事件附加自定义字段。

方法用途参数返回
track上报一个埋点事件event: string
data?: Record<string, any>
void
getAssemblyOrder获取埋点上报用的订单数据—CheckoutOrder
registerTrackExtraInfo给某个埋点事件附加自定义字段,之后每次上报这个事件都会带上eventName: string
data: Record<string, unknown>
void
trackAddPaymentInfo上报填写支付信息事件extra?: Record<string, any>void
trackAddShippingMethod上报选择物流方案事件—void
trackAddressFill上报地址自动填充事件data: TrackAddressFillParamsvoid
trackAddressFormExpand上报地址表单展开事件reason: AddressExpandReasonvoid
trackAioBeforePay上报聚合支付发起前的事件—void
trackBeforePay上报发起支付前的事件extra?: Record<string, any>void
trackCompleteOrderClick上报点击下单按钮事件—void
trackCompleteOrderError上报下单失败事件data: stringvoid
trackContinueToPayment上报进入支付步骤事件—void
trackCouponChangeTab上报优惠券面板切换 tab 的事件status: stringvoid
trackEnterCheckout上报进入结账页事件—void
trackGiftCard上报礼品卡相关事件type: TrackGiftCardProps
info: Record<string, string | number>
void
trackInitialAddressFill上报地址首次填充事件—void
trackInitiateCheckout上报发起结账事件—void
trackLogout上报登出事件—void
trackPaymentRedirect上报支付跳转事件,参数是跳转页的加载耗时loadTime: numbervoid
trackShippingAddressSubmitErrors上报收货地址提交失败事件code: stringvoid
trackShippingMethodsCardExpose上报物流方案卡片曝光事件—void
trackShippingMethodsRender上报物流方案渲染成功事件—void
trackShippingMethodsRequest上报物流方案拉取事件triggerSource: ShippingMethodsFetchTriggerSourcevoid
trackSubmitAddress上报提交地址事件options?: TrackSubmitAddressParamsvoid
trackTipping上报小费相关事件type: TrackTippingType
data: TrackTippingData
void

user​

user 命名空间管顾客是谁、怎么联系:登录状态、账号信息、结账页填写的邮箱和手机号,以及营销邮件订阅。

顾客信息​

方法用途参数返回
isLogin顾客是否已登录—boolean
getIPAddress获取顾客的 IP 地址信息—CheckoutIpAddress
doLogin跳转到登录页;传入的参数会拼进登录后的返回地址returnUrlSearchParams?: Record<string, string>void
doRegister跳转到注册页—void
doLogout登出当前顾客—Promise<void>
getUserInfo获取已登录顾客的账号信息—UserInfo
getCustomerInfo获取提交订单时要带上的顾客信息—CheckoutCustomerInfo
updateCustomerInfo更新提交订单时要带上的顾客信息data: Partial<CheckoutCustomerInfo>void
onUserInfoChange注册顾客账号信息变化的回调cb: UserInfoChangeCbvoid
removeUserInfoChangeCb删除顾客账号信息变化的回调cb: UserInfoChangeCbvoid

联系信息​

方法用途参数返回
getEmail获取顾客填写的联系邮箱—string
getPhone获取顾客填写的联系电话—string
getPhoneAreaCode获取顾客填写的电话区号—string
getEmailOrPhone店铺配置为收集「邮箱或手机号」时,获取顾客实际填的那一个—string
getContactInformation获取联系信息:邮箱、手机号、区号,以及「邮箱或手机号」字段—ContactInformation
onContactInformationChange注册联系信息变化的回调cb: ContactInformationChangeCbvoid
removeContactInformationChangeCb删除联系信息变化的回调cb: ContactInformationChangeCbvoid
setNewsletter设置营销邮件订阅的勾选状态val: NewsLetterStatusvoid
getNewsletter获取营销邮件订阅的勾选状态—NewsLetterStatus

utils​

utils 命名空间提供结账页自带的弹窗和抽屉,外加三个原样透传的 lodash 函数。

方法用途参数返回
debouncelodash 的 debounce,原样透传—unknown
getlodash 的 get,原样透传—unknown
throttlelodash 的 throttle,原样透传—unknown
createDialog创建弹窗(模态确认框)content: DialogContent
options?: DialogOptions
IDialog
createDrawer创建抽屉式弹层(从屏幕边缘滑出)content: DrawerContent
options?: DrawerOptions
IDrawer

用法

两个方法的第一个参数放内容和按钮文案,第二个可选参数放隐藏按钮、尺寸这类选项。createDialog 返回 { show, hide },createDrawer 返回 { show, hide, onClose, destroy, getId }。顾客点确认后,show() 的 Promise 解析为 true。

javascript
const dialog = CheckoutAPI.utils.createDialog({
content: '<div>确认寄到这个地址?</div>',
footer: '<div>预计 3 到 5 天送达</div>',
trueBtn: '确定',
falseBtn: '取消',
});
const confirmed = await dialog.show(); // 顾客点「确定」后为 true

const drawer = CheckoutAPI.utils.createDrawer({
content: '<div style="height:200px">确认寄到这个地址?</div>',
footer: '<div>预计 3 到 5 天送达</div>',
});
drawer.onClose((type) => {
// 顾客点确认时,type 是 'true_btn'
});
await drawer.show();

抽屉不传 trueBtn 和 falseBtn 时用默认的 Yes 和 No。弹窗关闭后节点仍留在 DOM 里,只是隐藏而不是移除,所以创建一次复用即可,不要每次点击都新建一个。

utils.eventBus​

utils.eventBus 是结账页内的事件总线,用来在同一个页面上的多个扩展之间传消息。事件名统一加上扩展 id 前缀,写成 {extension-id}:{event},避免和别的扩展撞名。

方法用途参数返回
emit触发一个事件name: string
...rest: any[]
void
on注册事件监听name: string
cb: Function
void
once注册只触发一次的事件监听name: string
cb: Function
void
off移除事件监听name: string
cb: Function
void

类型定义​

上面方法表里出现的类型。CountryCode 来自 libphonenumber-js 包,这里不重复定义。

AdditionalPrice​

字段类型说明
name?string附加费的名称
price?string附加费的金额

AdditionalProperty​

字段类型说明
idstring字段名称,也是 extraInfo 里的 key
namestring字段的展示名称
inputType1 | 2 | 3 | 4输入类型,对应界面上的输入控件
enable1是否启用
showType'all' | 'and' | 'or'展示条件:all 全部显示,and 全部规则命中才显示,or 任一规则命中就显示
showRulesArray<{ field: string; rules: string[]; }>展示规则
require0 | 1顾客是否必须填,1 表示必填
descriptionstring这个字段的说明
validatesArray<{ type: 'regex'; regexp: ''; }>生效的校验规则
enums?Array<{ name: string; value: string; }>下拉类型的枚举值

AdditionValues​

字段类型说明
[key: string]{ name: string; val: string; }其他任意 key,按名字索引

AddLineItemsInput​

字段类型说明
lineItemsAddProductInput[]订单的商品行
mutationSourceMutationSource你自己填的标记,说明这次改动是谁发起的

AddProductInput​

字段类型说明
variantIdstring规格 ID
quantitynumber数量
properties?ProductProperties要写到新订单行上的自定义属性,JSON 字符串

AddressBookChangeCbs​

typescript
export type AddressBookChangeCbs = () => void;

AddressBookItem​

字段类型说明
addressstring | null街道地址
address1string | null街道地址第一行
areastring | null区 / 县
citystring | null城市
companystring | null公司名称
countrystring | null国家 / 地区名称
countryCodestring | null国家 / 地区代码
createdAtstring | null这条记录的创建时间
emailstring | null邮箱地址
firstNamestring | null名
genderstring | null地址上记录的性别
idstring | null这一项的唯一 ID
isDefaultboolean是否为默认地址
lastNamestring | null姓
phonestring | null手机号
phoneAreaCodestring | null手机号的国际电话区号
provincestring | null省 / 州名称
provinceCodestring | null省 / 州代码
zipstring | null邮政编码

AddressChangeByInputCb​

typescript
export type AddressChangeByInputCb = (
changeValue: Partial<AddressValues>,
fullAddress: AddressValues,
config: ChangeValuesConfig,
) => void;

AddressChangeCb​

typescript
export type AddressChangeCb = () => void;

AddressCountry​

字段类型说明
isoCode2string两位国家 / 地区代码
namestring国家 / 地区名称
provincesAddressCountryProvince[]该国家 / 地区下的省 / 州列表
depthnumber这个国家 / 地区的地址层级数
codestring两位国家 / 地区代码
presetstring
format?AddressFormat地址格式模板

AddressCountryProvince​

字段类型说明
cnNamestring中文名称
codestring省 / 州代码
namestring省 / 州名称
oldCodestring
provinceIdstring省 / 州的 ID
preset?string
format?AddressFormat这个字段的格式规则

AddressExpandReason​

取值说明
'manual_click'顾客点击展开了表单
'empty_fallback_click'顾客点了折叠状态下的空表单
'auto_fill'表单因为被自动填充而展开
'submit_validate'为了显示校验报错而展开表单
'browser_fill'浏览器自动填了表单

AddressFormat​

字段类型说明
fieldsAddressFormatField[]这个模板包含的字段
[k: string]any其他任意 key,按名字索引

AddressFormatField​

字段类型说明
idstring这一项的唯一 ID
label?string字段上方显示的标签
show?0 | 1这一项是否显示
row?number这个字段在表单网格里所处的行
description?string这个字段的说明
[k: string]any其他任意 key,按名字索引

AddressItemActionSchema​

字段类型说明
idstring这一项的唯一 ID
showtrue这一项是否显示
typeFieldType.Action字段类型,固定为操作项
textstring操作项的文字
rownumber这个字段在表单网格里所处的行
colnumber这个字段在表单网格里所处的列
style?Record<string, string | number>加在元素上的行内样式
className?string加在元素上的 CSS class
onClick()void顾客点击这一行时调用

AddressItemCheckoutSchema​

字段类型说明
idstring这一项的唯一 ID
typeFieldType.Checkbox字段类型,固定为复选框
descstring复选框旁边的文案
showtrue这一项是否显示
valueboolean复选框是否已勾选
rownumber这个字段在表单网格里所处的行
colnumber这个字段在表单网格里所处的列
changeValue(isCheck)void勾选或取消勾选这个复选框

AddressItemEmailSchema​

字段类型说明
typeFieldType.Email字段类型,固定为邮箱

AddressItemGeneralPhoneSchema​

手机号字段的 schema。它还带有 BaseAddressItemSchema 和 ValueInterface 的全部字段,下面只列它自己的成员。

字段类型说明
typeFieldType.Phone字段类型,固定为手机号
phoneInfoPhoneInfo手机号字段的区号和格式规则
maxLength?number允许输入的最大字符数
changePhone(value, format?, config?)void往字段里写一个新的手机号
changePhoneAreaCode(value)void往字段里写一个新的国际电话区号

AddressItemPhoneSchema​

手机号字段 schema 的别名,等价于 AddressItemGeneralPhoneSchema。

typescript
export type AddressItemPhoneSchema = AddressItemGeneralPhoneSchema;

AddressItemSchema​

地址表单里一个字段的 schema,按字段类型分成下拉、手机号、文本、邮箱四种。

typescript
export type AddressItemSchema =
| AddressItemSelectSchema
| AddressItemPhoneSchema
| AddressItemStringSchema
| AddressItemEmailSchema;

AddressItemSelectSchema​

字段类型说明
typeFieldType.Enum字段类型,固定为下拉选择
selectTypeSelectType选项列表是固定的还是实时拉取,取值同 SelectType
optionsOptionValue[]下拉列表里的选项

AddressItemStringSchema​

字段类型说明
typeFieldType.String字段类型,固定为文本
readOnly?boolean只读,禁止修改
format?Array<[regexp: string, params: string[]]> | string[]值的格式化规则,例如巴西税号在失焦时会按规则重新排版

AddressItemTitleSchema​

字段类型说明
idstring这一项的唯一 ID
showtrue这一项是否显示
typeFieldType.Title字段类型,固定为标题
titlestring标题文字
rownumber这个字段在表单网格里所处的行
colnumber这个字段在表单网格里所处的列

AddressManagerConfig​

字段类型说明
useAllCountryboolean是否列出所有国家 / 地区,而不只是可配送的那些

AddressSchemaManager​

地址表单的 schema 管理器,一个实例对应一张地址表单,负责取值、改值、拿字段 schema 和校验。

typescript
class AddressSchemaManager {
getFieldType(key: keyof AddressValues);
updateContext(context: AddressSchemaManagerContext, config?: AddressManagerConfig);
onUpdateContext(cb: UpdateContextCb);
registerSchemaChange(field: keyof AddressValues, cb: AddSchemaChangeCbs);
onAddressChangeByInput(cb: AddressChangeByInputCb);
removeAddressChangeByInput(cb: AddressChangeByInputCb);
onAddressChange(cb: AddressValuesChangeCb);
removeAddressChange(cb: AddressValuesChangeCb);
onFieldsChange(cb: FieldsChangeCb);
getAddressValues();
changeValues(values: Partial<AddressValues>, config?: ChangeValuesConfig);
onValuesChange(cb: AddressValuesChangeCb);
removeValuesChangeCb(cb: AddressValuesChangeCb);
dispatchAddressValuesChange(changeVal: Partial<AddressValues>, options?: AddressValuesChangeOptions);
validateFields(fieldIds?: Array<keyof AddressValues>, config?: { updateUi?: boolean; onlyValidateExistValue?: boolean }): Promise<ValidateResult[]>;
onValidateResultChange(cb: ValidateResultChangeCb);
removeValidateResultChange(cb: ValidateResultChangeCb);
getCountries();
hasCountry(countryCode: string);
getProvinces();
isValidProvinceCode(code: string);
getAllSchema(): Array<AddressItemSchema>;
getCustomLabelById(id: string);
getCountryCodeSchema(): AddressItemSelectSchema | null;
getProvinceSchema(config?: { emptyHide: boolean }): AddressItemSelectSchema | AddressItemStringSchema | null;
getCitySchema(): AddressItemSelectSchema | AddressItemStringSchema | null;
getAreaSchema(): AddressItemSelectSchema | AddressItemStringSchema | null;
getAddressSchema(config?: { ignoreSettings?: boolean }): AddressItemSelectSchema | AddressItemStringSchema | null;
getAddress1Schema(config?: { ignoreSettings?: boolean }): AddressItemStringSchema | null;
getZipSchema(config?: { noUseSetting: boolean }): AddressItemStringSchema | null;
getFirstNameSchema(config?: { ignoreSettings?: boolean }): AddressItemStringSchema | null;
getLastNameSchema(config?: { ignoreSettings?: boolean }): AddressItemStringSchema | null;
getCompanySchema(config?: { ignoreSettings?: boolean }): AddressItemStringSchema | null;
getCustomizedFields(): Array<AddressItemStringSchema | AddressItemPhoneSchema | AddressItemEmailSchema | AddressItemSelectSchema>;
getPhoneSchema(config: ContactSchemaConfig): AddressItemGeneralPhoneSchema | AddressItemStringSchema | null;
getEmailSchema(config: ContactSchemaConfig): AddressItemEmailSchema | null;
getEmailOrPhoneSchema(): AddressItemStringSchema | null;
getIdNumberSchema(): AddressItemStringSchema | null;
getCpfSchema(): AddressItemStringSchema | null;
formatPhone(value: string);
changePhone(value: string, format?: boolean, config?: ChangeValueConfig);
changePhoneAreaCode(code: string, setEmailOrPhone?: boolean);
changeEmailOrPhone(values: Partial<AddressValues>, config?: ChangeValueConfig);
}

这个管理器自己持有内部状态,所以这里按源码列出、不转成表格。实例从 CheckoutAPI.address 上取,不要自己 new。

AddressSchemaManagerContext​

字段类型说明
addressValuesAddressValues地址表单当前的取值
addressTemplateAddressTemplate当前国家 / 地区的地址模板

AddressTemplate​

字段类型说明
fieldsAddressTemplateField[]这个模板要收集的地址字段
stringifystring
presetstring
addressLevelnumber地址层级数

AddressTemplateField​

字段类型说明
idstring这一项的唯一 ID
colnumber这个字段在表单网格里所处的列
rownumber这个字段在表单网格里所处的行
show0 | 1这一项是否显示
format?Array<[regexp: string, params: string[]]> | string[]取值需要匹配的格式规则
length?number | { min?: number; max?: number }取值允许的长度
required0 | 1顾客是否必须填这一项
typeFieldType这一项的类型
label?string字段上方显示的标签
tips?string字段下方显示的提示文字
validate?AddressTemplateFieldValidate[]这个字段的校验规则

AddressTemplateFieldValidate​

字段类型说明
idstring这一项的唯一 ID
messagestring校验不通过时显示的文案
regexpstring取值需要匹配的正则表达式

AddressValues​

字段类型说明
id?string地址 ID
firstNamestring名
lastNamestring姓
countryCodestring国家 / 地区代码
countrystring国家 / 地区名称
provinceCodestring省 / 州代码
provincestring省 / 州名称
areastring区 / 县
citystring城市
addressstring详细地址
address1string详细地址第二行(门牌号、公寓号等)
shortAddress?string短地址
zipstring邮编
cpf?string税号
taxText?string税号名字
idNumber?string身份证号
idNumberText?string身份证号名字
companystring公司名
latitude?string纬度
longitude?string经度
source?string当前这份地址取值的来源
tags?string
gender?string性别
phonestring手机号
emailOrPhonestring邮箱或手机号合并字段的值
emailstring邮箱
phoneAreaCodestring手机区号
[key: string]string | undefined其他任意 key,按名字索引
originId?string这个值来自哪条地址的 ID

AddressValuesChangeCb​

typescript
export type CommonAddressValuesChangeCb = (
changeValue: Partial<AddressValues>,
fullAddress: AddressValues,
options?: AddressValuesChangeOptions,
) => void;

AddressValuesChangeOptions​

字段类型说明
apiAutoFilled?boolean这个值是接口自动填的,不是顾客填的
changeByInput?boolean这次变化是否由顾客输入引起

AddSchemaChangeCbs​

typescript
type AddSchemaChangeCbs = (item: AddressItemSchema) => AddressItemSchema;

AfterPayCb​

typescript
export type AfterPayCb = (res: AfterPayParams) => void;

AfterPayParams​

一次支付尝试的结果:支付请求走通时是 PayResponse 再加一个 loadTime,抛异常时是 Error,没有结果可报时是 undefined。

typescript
export type AfterPayParams =
| (PayResponse & {
loadTime: number;
})
| Error
| undefined;

AllExtensionLoadedCb​

typescript
export type AllExtensionLoadedCb = () => void;

AlreadyPaymentLines​

这笔订单上已经收到的支付记录数组,下面是数组里一项的字段。

字段类型说明
creditCardNumberstring这次支付使用的卡号
extraInfo{ name: string; channel: string; method: string; lastCharacters: string; realPaidTotal: string; }这笔支付的附加信息
paidTotalstring这笔支付收到的金额

AppliedGiftCard​

字段类型说明
idstring这一项的唯一 ID
lastCharactersstring礼品卡卡号的末几位
amountUsedstring礼品卡已抵扣的金额
realAmountCurrencystring礼品卡本身的币种
realSymbolstring礼品卡本身币种的符号
realAmountUsedstring按礼品卡本身币种计的已用金额

BannerConfig​

字段类型说明
checkoutPcImagestring桌面端使用的 Banner 图片
checkoutMobileImagestring移动端使用的 Banner 图片
checkoutImageHeight'normal' | 'large' | 'small'Banner 图片的高度档位
checkoutAlignment'top' | 'center' | 'bottom'Banner 的垂直对齐方式
checkoutIsFullWidthbooleanBanner 是否通栏铺满页面宽度
checkoutShowBottomMarginbooleanBanner 下方是否留出下边距

BaseAddressItemSchema​

字段类型说明
idstring这一项的唯一 ID
rownumber这个字段在表单网格里所处的行
colnumber这个字段在表单网格里所处的列
showboolean这一项是否显示
labelstring字段上方显示的标签
eventBusEventBus这个字段自带的事件总线
description?string这个字段的说明
max?number允许的最大值
min?number允许的最小值
tips?string字段下方显示的提示文字
autocomplete?string写在输入框 autocomplete 属性上的值
requiredboolean顾客是否必须填这一项
readonly?boolean只读会禁止修改
htmlAttr?Record<string, string | number>加在输入框上的额外 HTML 属性
fieldType?'standard' | 'custom'标准属性和自定义添加属性
focusId?string要聚焦的输入框 ID
nameId?string写在输入框 name 属性上的值
placeType?PlaceType地址自动补全要匹配的地点类型
validateFn(updateUi?)Promise<ValidateResult | undefined>校验字段当前的值
validateByValue?(val: string) => ValidateResult | undefined校验你传进来的值,不改动字段本身
validateResult?ValidateResult上一次校验的结果
onValidateResultChange(cb)void注册校验结果变化时的回调
removeValidateResultChange(cb)void取消一个校验结果变化回调

BasePriceDetail​

字段类型说明
key?string这一行明细的标识
dataRobot?string
title?string这一行的标题
titleLangId?string标题的翻译 key
subTitle?string这一行的副标题
subTitleLangId?string副标题的翻译 key
originPrice?string折扣前的金额
price?string这一行的金额
originalValue?string这一行未格式化的原始值
value?string这一项的取值
desc?string这一行附带的说明文字
descLangId?string说明文字的翻译 key
icon?string这一行显示的图标
isShow?boolean这一行是否显示
tooltip?string这一行的悬浮提示文字

BaseResponse​

字段类型说明
okboolean这次请求是否成功
configReqConfig随这次请求或这笔订单带上的配置

BeforeSubmitCb​

typescript
export type BeforeSubmitCb = (params: BeforeSubmitCbParams) => Promise<boolean>;

BeforeSubmitCbParams​

字段类型说明
pageTypeCheckoutPageType结账页布局,取值同 CheckoutPageType
stepCheckoutStep对应的结账步骤

BillingAddress​

字段类型说明
id?string这一项的唯一 ID
firstNamestring名
lastNamestring姓
emailstring邮箱地址
emailOrPhonestring顾客填的那一项,邮箱或手机号
phonestring手机号
phoneAreaCodestring手机号的国际电话区号
countryCodestring国家 / 地区代码
countrystring国家 / 地区名称
provinceCodestring省 / 州代码
provincestring省 / 州名称
areastring区 / 县
citystring城市
addressstring街道地址
address1string街道地址第一行
zipstring邮政编码
companystring公司名称

BillingAddressChangeCb​

typescript
export type BillingAddressChangeCb = () => void;

BillingAddressValuesChangeCb​

typescript
export type BillingAddressValuesChangeCb = (values: Partial<AddressValues>) => void;

BuyerJourneyInterceptCb​

typescript
export type BuyerJourneyInterceptCb = () => BuyerJourneyInterceptCbReturn;

BuyerJourneyInterceptCbReturn​

字段类型说明
behavior'block' | 'allow'拦下顾客还是让他继续
pointIdstring拦截来自哪个扩展点的 ID
hideTrueBtn?boolean隐藏弹窗的确认按钮
hideFalseBtn?boolean隐藏弹窗的取消按钮

CancelCouponParams​

typescript
export type CancelCouponParams =
| {
code: string;
discountCodeType: DiscountCodeType.DISCOUNT_CODE;
}
| {
id: string;
discountCodeType: DiscountCodeType.GIFT_CARD;
};

CardInfo​

字段类型说明
cardFirstNamestring持卡人名
cardLastNamestring持卡人姓
cardDatestring卡片有效期
cardCodestring卡片上的安全码
cardNumberstring卡号
instalmentsPlansstring卡片上选择的分期方案

Cards​

字段类型说明
supportCardsArray<PlayCardCards>这个支付方式支持的卡种

ChangedLineItem​

字段类型说明
idstring这一项的唯一 ID
productIdstring商品 ID
variantIdstring规格 ID
quantitynumber数量
originalQuantitynumber改动之前的数量
image{ src: string; }商品图片
productTitlestring商品标题
optionsArray<{ name: string; value: string }>这一项可选的取值
propertiesstring挂在这一行上的自定义属性
reason| 'line_item_sold_out' | 'line_item_shortage' | 'line_item_off_line' | 'line_item_not_exist' | 'line_item_mismatch_wholesale_conditions'这一行发生变化的原因

ChangeValueConfig​

字段类型说明
format?boolean写入时是否顺便格式化这个值
changeByInput?boolean这次变化是否由顾客输入引起

ChangeValuesConfig​

字段类型说明
ignoreValidate?boolean这次改动是否跳过校验
dispatchUpdate?boolean改完之后是否触发界面刷新
changeByInput?boolean这次变化是否由顾客输入引起
changeByUserInput?boolean用户手动输入
apiAutoFilled?boolean地址联想等 API 自动填充,UI 高亮提示
onlyValidateExistValue?boolean是否只校验已经有值的字段

ChargeQuote​

字段类型说明
quoteIdstring报价 ID
feeTitlestring费用名称
feestring费用金额
feeValuestring格式化后的费用文本
currencystring货币代码
selectedboolean是否已选中
availableboolean是否可选
providerIconstring服务商图标
providerNamestring服务商名称
titlestring标题
descriptionstring描述
tooltipstring提示文案
lineItemsArray<{ lineItemId: string; quantity: number; fee: string }>这份报价覆盖的订单行

CheckoutAddressSettings​

字段类型说明
nameNameSetting姓名字段的设置
nameRequirementNmeRequirementSetting姓名字段的必填要求
contactDetailsContactDetailsSetting联系方式字段的设置
phoneSimplesSetting手机号字段的设置
emailSimplesSetting邮箱字段的设置
companySimplesSetting公司字段的设置
addressSimplesSetting详细地址字段的设置
address1SimplesSetting详细地址第二行字段的设置

CheckoutAppConfig​

字段类型说明
namespacestring应用的命名空间
routes{ root: string; }应用路由的基础路径
currencySymbolstring货币符号
localeRtlboolean当前语言是否从右往左排版
localestring当前语言
favicon?string站点图标
siteKeystring | null人机验证服务的 site key
cdnDomainstringCDN 域名
imageDomainstring图片域名
currencySymbolPosstring货币符号放在金额前面还是后面
moneyFormatstring金额格式
paymentSettings{ paypalExpressEnabled: boolean; }支付相关配置
marketMarketInfo市场信息

CheckoutBusinessType​

结账类型:普通商品、虚拟商品、门店自提。

成员值说明
STANDARD0普通实物商品
VIRTUAL_PRODUCT1虚拟商品,不需要配送
PICKUP2门店自提

CheckoutBusinessTypeChangeCb​

typescript
export type CheckoutBusinessTypeChangeCb = (type: CheckoutBusinessType) => void;

CheckoutCustomerInfo​

字段类型说明
emailstring邮箱
phonestring手机号
emailOrPhonestring邮箱或手机号合并字段的值
firstNamestring名
lastNamestring姓
newsletter0 | 1是否订阅营销邮件,1 订阅、0 不订阅
notenull | string顾客备注
saveAddress0 | 1是否把地址存进地址簿,1 存、0 不存

CheckoutFeatures​

结账页的功能开关表,key 是功能名,值是这个功能开没开。

typescript
export type CheckoutFeatures = Record<string, boolean>;

checkoutFontfamily​

字段类型说明
familystring字体族名称
fallbackFamiliesstring兜底字体族
stylestring字形
weightstring字重
fontFacestring这个字体对应的 @font-face 规则

CheckoutIpAddress​

字段类型说明
countryCodestring国家 / 地区代码
provinceNamestring省 / 州名称
countryNamestring国家 / 地区名称
citystring城市
ipstringIP 地址
字段类型说明
idnumber这一项的唯一 ID
titlestring只有三种内置政策才有值
typestring菜单类型:三种内置政策为 policy,商家自定义的为 web
urlstring内置政策为固定值:退款政策 refund_policy、隐私政策 privacy_policy、服务条款 service_policy; 自定义菜单为商家填写的链接,留空表示只展示文字、不跳转

CheckoutOrder​

字段类型说明
failCodestring | null失败码,没失败时为空
idstring订单 ID
orderNostring订单号
statusstring订单状态
checkoutStatusstring结账状态
financialStatusstring支付状态
fulfillmentStatusstring履约状态
postSaleStatus?string | null售后状态
emailStatus?string订单确认邮件的状态
note?string | null订单备注
customerNotestring顾客备注
appliedGiftCardsArray<AppliedGiftCard>已使用的礼品卡
alreadyPaymentLinesAlreadyPaymentLines已完成的支付记录
cancelReasonstring | null取消原因
currencyCodestring货币代码
currencySymbolstring货币符号
discountApplicationsArray<DiscountApplication>订单上生效的优惠
lineItemsArray<LineItem>订单行
shippingAddressShippingAddress收货地址
billingAddressBillingAddress账单地址
pickupLocation?PickupLocation自提点
subTotalstring商品小计
shippingTotal?string运费合计
taxTotal?string税费合计
discountTotal?string优惠合计
totalTipReceivedstring小费合计
discountShippingPricestring运费优惠金额
totalstring订单总额
giftCardPricestring礼品卡抵扣金额
paymentDuestring实付金额
paidTotalstring已支付金额
pricesCheckoutPrices价格明细
lineItemDiscountTotalstring商品行优惠合计
codeDiscountTotalstring优惠码优惠合计
shippingLineShippingLineType | null当前选中的物流方案
config{ checkoutBusinessType: number; checkoutTemplateType: number; pageType: 'single' | 'three_step' | 'two_step'; marketSetting: { marketId?: string; }; productTaxIncluded?: boolean; }随这次请求或这笔订单带上的配置
customerCustomer顾客信息
referInfoReferInfo来源信息
paymentLine?PaymentLine当前选中的支付方式
paymentLinesArray<PaymentLine>可选的支付方式列表
discountSubTotal?string商品折扣后的小计
shippingTaxTotal?string运费税合计
allTaxTotal?string全部税费合计
paymentDiscountTotal?string支付优惠
prePaymentAmount?string不含支付优惠的 paymentDue,用于判断是否需要刷新支付方式列表
additionalPrices?AdditionalPrice[]附加费用
checkoutPriceListPriceGroupDetail[]价格明细分组
taxLinesTaxLines税费明细
checkoutId?string结账单 ID
checkoutUrl?string结账页地址
createTime?string创建时间
identifierExtra?string
installmentFee?string分期手续费
orderKey?string
orderStatusUrl?string订单状态页地址
orderToken?string标识这次结账会话的 token
orderType?number订单类型
refund?string退款金额
shippingAddressEditable?boolean收货地址是否还能改
shippingTaxType?number运费税的计算方式
taxType?number订单税费的计算方式
updatedTime?string更新时间
yetPayment?string
customFields?Record<string, string>订单的自定义业务字段

CheckoutPageType​

结账页布局:单页、两页、三页。

成员值说明
SINGLE'single'单页结账
THREE_STEP'three_step'三页结账
TWO_STEP'two_step'两页结账

CheckoutPrices​

下面所有价格字段都是字符串,金额以主单位表示,例如 "10.99" 表示 10.99 美元,不是最小单位(不是 "1099" 分)。做计算时用 Decimal.js 之类的库,避免 JavaScript 浮点误差。

字段类型说明
subtotalPricestring商品小计
shippingPricestring运费
taxPricestring税费
discountCodePricestring优惠码优惠金额
discountPricestring优惠合计
totalPricestring订单总额
discountLineItemPricestring商品行优惠金额
totalTipReceivedstring小费合计
discountShippingPricestring运费优惠金额
giftCardPricestring礼品卡抵扣金额
paymentDuestring实付金额
paidTotalstring已支付金额
discountSubTotal?string商品折扣后的小计
shippingTaxTotal?string运费税合计
allTaxTotal?string全部税费合计
paymentDiscountTotal?string支付优惠
prePaymentAmount?string不含支付优惠的 paymentDue,用于判断是否需要刷新支付方式列表
additionalPrices?AdditionalPrice[]附加费用
chargeQuotes?ChargeQuote[]运输保障服务

CheckoutSettings​

字段类型说明
customerAuthority'all' | 'login'谁可以结账:all 所有人,login 只有登录顾客
discountShowV2string[]
reductionShow{ single: string[]; twoStep: string[]; threeStep: string[]; }各结账布局下分别显示哪些折扣行
orderTimeoutnumber订单超时时间
shippingCpfShippingCpf配送环节用到的 CPF 字段设置
zipCheckV2string
zipCheckConfigV2Record<CountryCode, number>各国家 / 地区的邮编校验配置
zipFormatCheckSwitchSetting是否校验邮编格式
doorplateFormatCheckSwitchSetting是否校验门牌号格式
forcedZipCheckCountryCode[]强制校验邮编的国家 / 地区
instructionstring订单备注框的展示方式,取值同 InstructionType
autoCompleteSwitchSetting是否开启地址自动补全
autoCompleteCollapseMode?SwitchSetting地址被自动补全填好之后是否折叠表单
identificationInfo{ default: IdentificationConfig; }身份证件的配置,按国家 / 地区索引
shippingMethodDisplayStyle'auto_select' | 'manual_select'物流方案怎么选中:auto_select 自动选中,manual_select 顾客手动选
additionalPropertiesAdditionalProperty[]商家自定义的附加字段

CheckoutStep​

结账步骤:填联系方式、选配送方式、选支付方式。

取值说明
'contact_information'填联系方式和地址的那一步
'shipping_method'选配送方式的那一步
'payment_method'选支付方式的那一步

CheckoutThemeConfig​

结账页的主题配置,把 ThemeStyleConfig、LogoConfig、MenuPolicyConfig、BannerConfig、PluginConfig、InteractionConfig 六组配置的字段合并成一个对象。

字段类型说明
checkoutRecommendImageLink'' | { url: string; type: string }广告位跳转链接
checkoutRecommendImagestring广告位图片
checkoutPaymentBackgroundImagestring付款区域背景图
checkoutPaymentBackgroundColorstring付款区域背景色,同时配了背景图时以图片为准
checkoutInputBackgroundColorstring输入框背景色
checkoutOrderBackgroundImagestring订单摘要背景图
checkoutOrderBackgroundColorstring订单摘要背景色,同时配了背景图时以图片为准
checkoutHeadingFontfamilycheckoutFontfamily标题字体
checkoutBodyFontfamilycheckoutFontfamily正文字体
checkoutButtonFontfamilycheckoutFontfamily按钮字体
checkoutButtonBackgroundColorstring按钮背景色,也是页脚返回链接的文字颜色
checkoutButtonTextstring按钮文字颜色
checkoutErrorColorstring报错提示的文字颜色
checkoutFocusColorstring输入框聚焦时的高亮颜色
checkoutBorderRadiusstring页面统一使用的圆角大小
checkoutBorderColorstring左侧表单区域
checkoutTextMainColorstring页面主文字颜色
checkoutTextSubColorstring页面次文字颜色
checkoutEmptyBgColorstring空白区域的背景色
checkoutBlockBorderColorstring左侧卡片内部,包含输入框、物流方案卡片等
checkoutBlockTextMainColorstring卡片内的主文字颜色
checkoutBlockTextSubColorstring卡片内的次文字颜色
checkoutSummaryBorderColorstring右侧订单摘要区域
checkoutSummaryTextMainColorstring订单摘要的主文字颜色
checkoutSummaryTextSubColorstring订单摘要的次文字颜色
checkoutSummaryBlockBorderColorstring右侧卡片内部
checkoutSummaryBlockTextMainColorstring订单摘要里卡片的主文字颜色
checkoutSummaryBlockTextSubColorstring订单摘要里卡片的次文字颜色
checkoutLogoImagestring结账页的 Logo 图片
checkoutLogoSize'large' | 'medium' | 'small'Logo 的尺寸档位
checkoutLogoPositionstringLogo 的位置
checkoutMenuPolicyLink1?'' | CheckoutMenuPolicyLink第一个政策菜单项的链接目标
checkoutMenuPolicyLink2?'' | CheckoutMenuPolicyLink第二个政策菜单项的链接目标
checkoutMenuPolicyLink3?'' | CheckoutMenuPolicyLink第三个政策菜单项的链接目标
checkoutMenuPolicyText1?string第一个政策菜单项的文案
checkoutMenuPolicyText2?string第二个政策菜单项的文案
checkoutMenuPolicyText3?string第三个政策菜单项的文案
checkoutMenuAlignmentstring政策菜单的对齐方式
blocksArray<{ type: string; settings: { checkoutMenuPolicyText: string; checkoutMenuPolicyLink: CheckoutMenuPolicyLink; }; key: string; }>新版数据格式,上面六个字段是旧格式;两者同时存在时以 blocks 为准
checkoutPcImagestring桌面端使用的 Banner 图片
checkoutMobileImagestring移动端使用的 Banner 图片
checkoutImageHeight'normal' | 'large' | 'small'Banner 图片的高度档位
checkoutAlignment'top' | 'center' | 'bottom'Banner 的垂直对齐方式
checkoutIsFullWidthbooleanBanner 是否通栏铺满页面宽度
checkoutShowBottomMarginbooleanBanner 下方是否留出下边距
plugins{ appserval: { servalBg1Color: string; servalBg2Color: string; servalDiscountColor: string; servalHeadingColor: string; showNewCustomerExclusiveTag: boolean; exclusiveForNewUsers: false; }; }结账页插件的配置
checkoutPaymentIconShowboolean是否显示支付方式图标
checkoutMobileOrderSummaryCollapseboolean移动端订单摘要是否默认折叠
checkoutMobileDiscountBoxLocation'orderSummaryAndPaymentMethod' | 'orderSummary' | 'paymentMethod'移动端折扣码输入框放在哪里

CloseType​

取值说明
'close_icon'顾客点了关闭图标
'true_btn'顾客点了确认按钮
'false_btn'顾客点了取消按钮
'hide_fn'你的代码调了 hide()

CollapseInfo​

字段类型说明
contactstring折叠态里显示的联系方式
deliverystring折叠态里显示的配送方式
addressInfostring折叠态里显示的地址
addressInfoTitlestring折叠态地址那一行的标题
showNewBtnboolean是否显示新建收货地址按钮

CollapseInfoChangeCb​

typescript
export type CollapseInfoChangeCb = () => void;

CommonAddressValuesChangeCb​

typescript
export type CommonAddressValuesChangeCb = (
changeValue: Partial<AddressValues>,
fullAddress: AddressValues,
options?: AddressValuesChangeOptions,
) => void;

ContactDetailsSetting​

取值说明
'single'只收一个联系方式字段
'multiple'收多个联系方式字段

ContactInformation​

字段类型说明
emailstring邮箱
phonestring手机号
emailOrPhonestring邮箱或手机号合并字段的值
phoneAreaCodestring手机区号

ContactInformationChangeCb​

typescript
export type ContactInformationChangeCb = (contactInformation: Partial<ContactInformation>) => void;

ContactSchemaConfig​

字段类型说明
type'address' | 'contact'这一项的类型
showWhenOptional?boolean这个字段可选时是否仍然显示

ContactType​

联系方式的收集方式:只收邮箱、只收手机号,或者两者填一个。

成员值说明
ONLY_EMAIL'only_email'只收邮箱
ONLY_PHONE'only_phone'只收手机号
EMAIL_OR_PHONE'email_or_phone'邮箱和手机号填一个就行

Country​

字段类型说明
cnNamestring中文名称
namestring国家 / 地区名称
flagstring国旗
phoneCodestring电话区号
phoneKeystring这个国家 / 地区区号的 key
isoCode2string两位国家 / 地区代码

CouponAvailStatus​

成员值说明
AVAILABLE'available'这张券在当前订单上可用
UNAVAILABLE'unavailable'这张券在当前订单上不可用

CouponChangeCb​

typescript
export type CouponChangeCb = () => void;

CouponData​

字段类型说明
pagenumber当前页码
limitnumber每页条数
dataCouponItem[]这一页的优惠券
totalnumber总条数

CouponItem​

字段类型说明
idstring这一项的唯一 ID
codestring券码
titlestring券的名称
discountTextstring描述这张券优惠内容的文案
prerequisiteTextstring使用这张券需要满足的条件文案
createdAtstring这条记录的创建时间
expiredAtstring券的过期时间
isFirstOrderboolean这张券是否只对首单有效

CouponListChangeCb​

typescript
export type CouponListChangeCb = (data: CouponData) => void;

CSettings​

字段类型说明
localestring当前语言
localeRtlboolean当前语言是否从右往左排版
cdnDomainstringCDN 域名
customer{ customerId: string; customerEmail: string; customerPhone: string; }顾客信息
imageDomainstring图片域名
paymentSettings{ paypalExpressEnabled: true; expressCheckoutConfig: { expressAccountInfos: {}; expressChannels: string[]; expressThemeConfigs: {}; }; }支付相关配置
saServerUrlstring埋点事件上报的服务端地址
saWebUrlstring加载埋点脚本的地址
currencyCodestring货币代码
currencySymbolstring货币符号
currencySymbolPosstring货币符号放在金额前面还是后面
theme{ themeVersionId: string; merchantThemeName: string; updatedAt: string; }主题信息
meta{ page: { templateName: string; templateType: number; }; }结账页前端的页面元信息
moneyFormatstring金额格式
slugstring
clientSentryDsnstring前端上报错误用的 Sentry DSN
environmentstring前端运行所处的环境
regionstring区域代码
storePlanstring店铺套餐
storeTrialboolean店铺是否在试用期
passwordEnabledboolean店铺是否开启了密码访问
namespacestring结账页前端的命名空间
siteKeynull人机验证服务的 site key
routes{ root: string; }应用路由的基础路径
market{ marketId: string; }市场信息
shop{ customerId: string; finance: string; financeSymbol: string; cdnDomain: string; shopName: string; themeId: string; shopId: string; shopEnv: string; defaultImg: string; templateName: string; templateType: string; favicon: string; formLang: {}; contactEmail: string; serviceEmail: string; timeZone: string; }店铺信息

Customer​

字段类型说明
idstring顾客记录的 ID
firstNamestring名
lastNamestring姓
emailstring邮箱地址
phonestring | null手机号
namestring顾客的全名
orderCountnumber这位顾客下过的订单数
customerIdstring顾客 ID
createAtstring顾客资料的创建时间
registeredAtstring顾客的注册时间
registeredstring这位顾客是否已注册店铺账号
subscribedboolean顾客是否订阅了营销邮件

CustomerAuthority​

谁可以结账:all 所有人,login 只有登录顾客。

取值说明
'all'所有人都能结账
'login'只有登录顾客能结账

DayConfigOfPickupTime​

字段类型说明
day?number1-7
state?number0 休息,1 营业
start?string时间段的开始时间
end?string时间段的结束时间

DeliveryListChangeCb​

typescript
export type DeliveryListChangeCb = () => void;

DeliveryMethodChangeCb​

typescript
export type DeliveryMethodChangeCb = (id: DeliveryMethodItem) => void;

DeliveryMethodItem​

字段类型说明
iconTypestring这个配送方式用哪个图标
checkoutBusinessTypeCheckoutBusinessType对应的结账类型
textstring展示文案

DeliveryMethodListChangeCb​

typescript
export type DeliveryMethodListChangeCb = (items: DeliveryMethodItem[]) => DeliveryMethodItem[];

DialogContent​

字段类型说明
contentstring弹窗或抽屉的正文内容
footer?string弹窗或抽屉的底部内容
trueBtn?string确认按钮的文案
falseBtn?string取消按钮的文案

DialogOptions​

字段类型说明
hideTrueBtn?boolean隐藏弹窗的确认按钮
hideFalseBtn?boolean隐藏弹窗的取消按钮
closeThroughResolve?boolean点击close icon 时返回resolve状态?; 默认为false,返回reject
maskBlur?boolean蒙层是否启用模糊滤镜,默认为 false
style?{ width?: number; height?: number; maxHeight?: number; maxWidth?: number; backgroundColor?: string; }加在元素上的行内样式

DiscountApplication​

字段类型说明
typestring优惠类型
codestring优惠码
statusstring优惠状态
messagestring提示文案
discountIdstring优惠 ID
discountAmountstring该商品优惠金额 eg. "2.00"
discountMessagestring这个折扣附带的提示文案
entitledProductListArray<{ productId: string; variantId: string; price: string; quantity: number; compareAtPrice: string; inventoryTracking: boolean; inventoryQuantity: number; spu: string; }>参与这个优惠的商品
valueTypestring折扣是固定金额还是百分比
targetTypestring折扣作用在什么上,比如商品或运费
targetSelectionstring折扣挑中哪些商品
titlestring优惠名称
valuestringeg. "20"
discountTypestring折扣的种类
allocationMethodstring折扣在订单行之间的分摊方式
isFreeGiftboolean是不是赠品优惠
totalDiscountAmountstring活动总优惠金额 eg. "2"
subTypestring折扣的细分类型
iconstringurl
labelTextstring标签文案
labelFontColorstring标签文字颜色
labelBackgroundColorstring标签背景色

DiscountCodeType​

成员值说明
DISCOUNT_CODE'discountCode'这个码是折扣码
GIFT_CARD'giftCard'这个码是礼品卡

DiscountTypeEnum​

成员值说明
AUTOMATIC'automatic'自动优惠,不用输码就生效
DISCOUNT_REBATE'discount_rebate'满减优惠
DISCOUNT_CODE'discount_code'顾客手动输入的折扣码
DISCOUNT_COUPON'discount_coupon'顾客持有的优惠券
GIFT_CARD'gift_card'礼品卡

DrawerContent​

字段类型说明
contentstring弹窗或抽屉的正文内容
footer?string弹窗或抽屉的底部内容
trueBtn?string确认按钮的文案
falseBtn?string取消按钮的文案

DrawerOptions​

字段类型说明
hideTrueBtn?boolean隐藏弹窗的确认按钮
hideFalseBtn?boolean隐藏弹窗的取消按钮
maskBlur?boolean蒙层是否启用模糊滤镜,默认为 false
style?{ width?: number; height?: number; maxHeight?: number; maxWidth?: number; backgroundColor?: string; }加在元素上的行内样式

DynamicExtensionPoint​

typescript
enum DynamicExtensionPoint {
// 每个动态扩展点模板一个成员,完整清单见扩展点页面
PRODUCT_RENDER_AFTER = 'Checkout::Product-{id}::RenderAfter',
SHIPPING_LINE_RENDER_AFTER = 'Checkout::ShippingLine-{id}::RenderAfter',
// ...
}

EventBus​

一个小型的发布 / 订阅总线,每个地址字段的 eventBus 属性上挂着一个。

字段类型说明
eventMapMap<string, Set<Function>>按事件名分组的回调集合
onceCbMapMap<Function, Function>一次性回调的包装函数,按原函数索引
emit(name, ...rest)—触发一个事件,通知所有监听这个名字的回调
on(name, cb)—在一个事件名上注册回调
once(name, cb)—注册一个只触发一次的回调
off(name, cb)—把某个回调从一个事件名上移除

EventType​

取值说明
'change'页面上某个值变了
'return'顾客返回上一步
'navigate'页面跳转到别处

ExceptionChangeCbs​

typescript
export type ExceptionChangeCbs = (tags?: IException) => void;

ExceptionInfo​

字段类型说明
codestring错误码
message?string错误信息
title?string标题
content?string正文
footer?string底部文案
backStep?string顾客会被退回到的那一步
invalidLineItems?Array<InvalidLineItem>已失效的订单行
changedLineItems?Array<ChangedLineItem>发生了变化的订单行

ExceptNotification​

字段类型说明
codestring异常的错误码
message?string异常的错误信息
nextAction?NextAction页面接下来该做什么
invalidLineItems?Array<InvalidLineItem>已经不再有效的订单行
kickLineItems?Array<KickLineItem>已经被踢出订单的订单行
thirdPartyErrorDetails?Record<string, unknown>[]第三方返回的原始错误详情

ExtendSchema​

地址表单里一项的 schema,除了普通字段,还包括勾选项、标题和操作项。

typescript
export type ExtendSchema =
| AddressItemSchema
| AddressItemCheckoutSchema
| AddressItemTitleSchema
| AddressItemActionSchema;

Extension​

字段类型说明
componentsExtensionComponent[]这个扩展的组件列表
namestring扩展名称
name_enstring扩展的英文名称
descstring扩展描述
desc_enstring扩展的英文描述
deleteTargetsstring[]这个扩展要隐藏的原生模块
placeholderRecord<string, string>占位文案,按字段 ID 索引

ExtensionComponent​

字段类型说明
extensionIdstring扩展 ID
contentstring渲染出来的 HTML 内容
pointstring渲染到哪个扩展点

ExtensionList​

字段类型说明
extensionIdstring扩展 ID
resourceUrlstring加载扩展脚本的 URL
fields?string扩展声明的字段
name?string扩展的名称
name_en?string英文名称
desc?string扩展的说明
desc_en?string英文说明

ExtensionLoadCb​

typescript
export type ExtensionLoadCb = (point: ExtensionPoint) => void;

ExtensionPoint​

typescript
export type ExtensionPoint = StaticExtensionPoint | DynamicExtensionPoint;

ExtensionTarget​

typescript
enum ExtensionTarget {
// 每个可隐藏的原生模块一个成员,完整清单见结账扩展参考页
shippingList = 'shippingList',
couponDrawer = 'couponDrawer',
// ...
}

FailPriceResult​

字段类型说明
datanull结果的数据体
messagestring错误信息
statestring结果状态,成功时为 success

FieldFnValidate​

字段类型说明
idstring这条校验规则的 ID
messagestring校验不通过时显示的文案
validate(value)boolean返回这个值是否通过校验

FieldRegExpValidate​

字段类型说明
idstring这一项的唯一 ID
messagestring校验不通过时显示的文案
regexpstring取值需要匹配的正则表达式

FieldsChangeCb​

typescript
export type FieldsChangeCb = (fields?: Array<keyof AddressValues>) => void;

FieldType​

成员值说明
String0普通文本字段
Number1数字字段
Enum2固定选项字段
Bool3布尔字段
Phone101手机号字段
Email102邮箱字段
Checkbox103勾选框
Title104标题行,不是输入项
Action105操作行,比如一个链接或按钮,不是输入项

FieldValidate​

typescript
export type FieldValidate = FieldRegExpValidate | FieldFnValidate;

FormatShippingLineType​

字段类型说明
formatDiscountShippingPricestring带货币符号的优惠后运费
formatShippingPricestring带货币符号的运费
isFreeboolean是不是免运费

GetAddressTemplateParams​

字段类型说明
countryCodestring国家 / 地区代码
provinceCodestring省 / 州代码

GiftCard​

字段类型说明
typeDiscountCodeType码的类型
codestring礼品卡码
idstring礼品卡 ID
titlestring礼品卡名称
lastCharacters?string卡号后几位
amountUsed?string已抵扣金额
realAmountCurrency?string礼品卡本身的币种
realSymbol?string礼品卡本身币种的符号
realAmountUsed?string按礼品卡本身币种计的已用金额

GiftCardTagChange​

typescript
export type GiftCardTagChange = (item: GiftCardTagItem) => GiftCardTagItem;

GiftCardTagItem​

字段类型说明
disable?boolean是否禁用
hideIcon?boolean是否隐藏图标

GiftCardTagsChangeCb​

typescript
export type GiftCardTagsChangeCb = (tags: GiftCardTagItem[]) => void;

GiftCardTagsFilter​

typescript
export type GiftCardTagsFilter = (tags: GiftCardTagItem[]) => GiftCardTagItem[];

HideExtensionTargetCb​

typescript
export type HideExtensionTargetCb = () => void;

HttpCompleteResponse​

字段类型说明
statusnumberHTTP 状态码
statusTextstringHTTP 状态描述
headersRecord<string, string>请求头或响应头
dataPayload响应的数据体

HttpFailResponse​

字段类型说明
okfalse这次请求是否成功

HttpSuccessResponse​

字段类型说明
oktrue这次请求是否成功

IAddressBookItem​

字段类型说明
showEmailboolean是否展示邮箱
showPhoneboolean是否展示手机号

IdentificationConfig​

字段类型说明
countries?Record<string, string[]> | null这份配置覆盖的国家 / 地区
isFilledboolean顾客是否已经填了这个字段
formatCheckboolean是否校验取值的格式
rulesArray<{ countryCode: string; provinceCode?: string; name: string; regexp: string; exampleVal: string; }>生效的规则,每个国家 / 地区一条

IDialog​

字段类型说明
show()Promise<boolean>这一项是否显示
hide()void关闭弹窗或抽屉

IDrawer​

字段类型说明
show()Promise<boolean>这一项是否显示
hide()void关闭弹窗或抽屉
onClose(cb)void注册抽屉关闭时的回调
destroy()void关闭抽屉并销毁它

IException​

字段类型说明
codestring错误码
message?string错误信息
invalidLineItems?Array<InvalidLineItem>已失效的订单行
changedLineItems?Array<ChangedLineItem>发生了变化的订单行
kickLineItems?Array<KickLineItem | (Omit<KickLineItem, 'properties'> & { properties: Record<string, string> })>被移出订单的行
nextAction?NextAction页面接下来该做什么
thirdPartyErrorDetails?ThirdPartyErrorDetails第三方返回的错误详情

IExceptionCode​

取值说明
'30002'平台错误码 30002
'30003'平台错误码 30003
'30005'平台错误码 30005
'line_items_variant_not_exist'订单里某个规格已经不存在
'price_shipline_changed'运费变了
'price_tax_changed'税费变了
'price_shipping_tax_changed'运费税变了
'checkout_address_invalid'订单上的地址不合法
'shipping_not_available'这个地址没有可用的配送方式
'payment_method_invalid'选中的支付方式不能用
'80009'平台错误码 80009
'discount_code_expired'折扣码已过期
'discount_code_times_limit'折扣码使用次数已用完
'shipping_line_changed'配送方式变了
'shipping_line_changed_refresh'配送方式变了,页面需要刷新
'gift_card_disabled'礼品卡已停用
'gift_card_no_funds'礼品卡余额已用完
'total_price_changed'订单总价变了
'pickup_changed'自提点变了
'pay_cod_limit'订单超出货到付款的限额
'pay_ip_limit'支付被 IP 限制拦下
'price_shipline_changed_true'运费变了,且新值已经生效
'system_busy'平台繁忙,稍后重试

InitPhoneResult​

这是文档为便于引用起的名字,源码中是内联类型。

字段类型说明
phoneAreaCodestring手机号的国际电话区号
phonestring手机号

InstructionType​

订单备注框的展示方式:展开、折叠、隐藏。

成员值说明
UNFOLD'unfold'订单备注框默认展开
FOLD'fold'订单备注框默认折叠
HIDDEN'hidden'不显示订单备注框

InteractionConfig​

字段类型说明
checkoutPaymentIconShowboolean是否显示支付方式图标
checkoutMobileOrderSummaryCollapseboolean移动端订单摘要是否默认折叠
checkoutMobileDiscountBoxLocation'orderSummaryAndPaymentMethod' | 'orderSummary' | 'paymentMethod'移动端折扣码输入框放在哪里

InvalidLineItem​

字段类型说明
productTitlestring商品标题
image{ src: string; }商品图片
optionsArray<{ name: string; value: string | number; }>这一项可选的取值

isShowCountries​

字段类型说明
[key: string]{ countryCodes?: string; countries?: { [key: string]: string[] }; isFilled: boolean; title: string; formatCheck?: boolean; }其他任意 key,按名字索引

IsSpecialInstructionCollapseChange​

typescript
export type IsSpecialInstructionCollapseChange = (isCollapse: boolean) => void;

JumpWay​

取值说明
'a'走 &lt;a&gt; 链接跳转
'window.open'用 window.open 开新窗口
'history'写一条 history 记录,页面不重新加载
'hash'只改 URL 的 hash 部分
'location'给 location 赋值,页面会重新加载

KickLineItem​

字段类型说明
idstring这一项的唯一 ID
productIdstring商品 ID
variantIdstring规格 ID
quantitynumber调整后剩余的数量
originalQuantitynumber调整前的数量
urlstring商品图片 URL
namestring商品名称,不支持多语言,请改用 productTitle
optionsArray<{ name: string; value: any }>这一项可选的取值
productTitle?string商品名称,支持多语言
propertiesstring挂在这一行上的自定义属性

LineItem​

字段类型说明
idstring订单行 ID
productTitlestring商品名称
productIdstring商品 ID
productHandlestring商品 handle
variantIdstring变体 ID
variantTitlestring变体名称
quantitynumber数量
fulfillmentStatusstring履约状态
notestring备注
image{ path: string; src: string; }商品图
compareAtPricestring划线价
pricestring单价
linePricestring这一行的金额
totalstring这一行的合计
skustringSKU
weightstring重量
weightUnitstring重量单位
taxableboolean是否计税
requiresShippingboolean是否需要配送
optionsArray<{ name: string; value: string }>变体选项
vendorstring供应商
productUrlstring商品页地址
propertiesstring自定义属性
discountApplicationsArray<DiscountApplication>这一行生效的优惠
finalPrice?string所有商品优惠后的单价 eg. "9.00"
finalLinePrice?string所有商品优惠后的单价 x 数量 eg. "18.00"
discountTotal?string商品优惠总金额,discount_application 的汇总 eg. "2.00"
isFreeGift?boolean是不是赠品
type?string这一项的类型

LineMutationErrorCode​

取值说明
'bundled_product_requires_real_item'加了组合商品,但没有它依附的实物商品
'checkout_token_missing'页面上取不到结账 token
'checkout_token_invalid'结账 token 无效

LineMutationResult​

字段类型说明
state'success' | string结果状态,成功时为 success
data?LineMutationResultData结果的数据体
code?LineMutationErrorCode | string失败时的错误码
message?string错误信息

LineMutationResultData​

字段类型说明
orderIdstring订单 ID
lineItemsLineItem[]订单的商品行
priceDirtyboolean为 true 表示价格已过期、需要重新计算
lineItemsVersionnumber订单行的版本号,每次改动递增
shippingReselectRequired?boolean仅当「是否需要物流」翻转时为 true
paymentReselectRequired?boolean顾客是否需要重新选一次支付方式

LoadingStatus​

字段类型说明
globalLoadingboolean整页是不是在加载中

Locale​

结账页支持的语言标记。

取值说明
'ar-SA'阿拉伯语(沙特阿拉伯)
'de-DE'德语(德国)
'en-US'英语(美国)
'es-ES'西班牙语(西班牙)
'fr-FR'法语(法国)
'id-ID'印尼语(印度尼西亚)
'it-IT'意大利语(意大利)
'ja-JP'日语(日本)
'ko-KR'韩语(韩国)
'nl-NL'荷兰语(荷兰)
'pl-PL'波兰语(波兰)
'pt-PT'葡萄牙语(葡萄牙)
'ru-RU'俄语(俄罗斯)
'th-TH'泰语(泰国)
'zh-CN'简体中文(中国大陆)
'zh-TW'繁体中文(台湾)

LocaleMap​

字段类型说明
'en-US'Record<string, string>每个语言一项,值是该语言下的文案
[k in Locale]Record<string, string>每个语言一项,值是该语言下的文案

LogoConfig​

字段类型说明
checkoutLogoImagestring结账页的 Logo 图片
checkoutLogoSize'large' | 'medium' | 'small'Logo 的尺寸档位
checkoutLogoPositionstringLogo 的位置

MarketInfo​

字段类型说明
marketIdstring市场 ID
marketPriceSettingMarketPriceSetting这个市场的价格设置

MarketPriceSetting​

字段类型说明
local_currency_enabledboolean是否按本地币种展示价格
custom_rate_enabledboolean是否使用自定义汇率
custom_ratenumber手动汇率 USD -> CNY 主市场货币 -> 市场基本货币
ratenumber自动汇率 USD -> HKD 主市场货币 -> 市场基本货币/本地货币
back_ratenumber反向自动汇率 HKD -> USD 市场基本货币/本地货币 -> 主市场货币
actual_ratenumber生效转换汇率 USD -> HKD 主市场货币 -> 市场基本货币/本地货币
base_to_localnumberCNY -> HKD 市场基本货币 -> 本地货币
local_to_basenumberHKD -> CNY 本地货币 -> 市场基本货币
adjustnumber价格调整
price_round_enabledtrue换算后的价格是否取整

MenuPolicyConfig​

字段类型说明
checkoutMenuPolicyLink1?'' | CheckoutMenuPolicyLink第一个政策菜单项的链接目标
checkoutMenuPolicyLink2?'' | CheckoutMenuPolicyLink第二个政策菜单项的链接目标
checkoutMenuPolicyLink3?'' | CheckoutMenuPolicyLink第三个政策菜单项的链接目标
checkoutMenuPolicyText1?string第一个政策菜单项的文案
checkoutMenuPolicyText2?string第二个政策菜单项的文案
checkoutMenuPolicyText3?string第三个政策菜单项的文案
checkoutMenuAlignmentstring政策菜单的对齐方式
blocksArray<{ type: string; settings: { checkoutMenuPolicyText: string; checkoutMenuPolicyLink: CheckoutMenuPolicyLink; }; key: string; }>新版数据格式,上面六个字段是旧格式;两者同时存在时以 blocks 为准

MutationSource​

typescript
export type MutationSource = string;

NameSetting​

取值说明
'separate'姓和名分成两个输入框
'normal'姓名合成一个输入框
字段类型说明
idCheckoutStep这个链接指向的结账步骤
title'information' | 'shipping' | 'payment'埋点用
textstring链接文案

NavigateLinksChangeCb​

typescript
export type NavigateLinksChangeCb = () => void;

NewsLetterStatus​

营销邮件的订阅状态:未订阅、已订阅。

成员值说明
NO_SUBSCRIPTION0未订阅营销邮件
SUBSCRIBED1已订阅营销邮件

NextAction​

字段类型说明
redirectToUrl{ url: string; }要把顾客跳转到的 URL
type'redirect_to_url'这一项的类型

NmeRequirementSetting​

取值说明
'both'姓和名都必填
'last_name'只有姓必填

OnCloseCb​

typescript
export type OnCloseCb = (type: CloseType) => void;

OnLoadingStatusChangeCallback​

typescript
export type OnLoadingStatusChangeCallback = (status: LoadingStatus) => void;

OnPayFailedPayload​

字段类型说明
sysCodeGroupstring | null
paymentKeystring标识支付方式的 key

OnPayFailedResult​

字段类型说明
handledboolean你的回调是否已经自己处理了这次失败

OnStoreDataChangeCb​

typescript
export type OnStoreDataChangeCb = () => void;

OnSubmitPendingChangeCallback​

typescript
export type OnSubmitPendingChangeCallback = (val: Pending, change: Partial<Pending>) => void;

OptionValue​

字段类型说明
namestring选项的名称
codeC这一项的代码
alternateNames?string[]这个选项的其他别名

OrderConfig​

订单上的配置信息,取自 CheckoutOrder 的 config 字段。

字段类型说明
checkoutBusinessTypenumber这笔订单的结账类型,取值同 CheckoutBusinessType
checkoutTemplateTypenumber结账页使用的模板类型
pageType'single' | 'three_step' | 'two_step'结账页布局,取值同 CheckoutPageType
marketSetting{ marketId?: string; }这笔订单归属的市场
productTaxIncluded?boolean商品价格是否已含税

OrderInfo​

字段类型说明
currencyCodestring结账货币,例如 USD
currencySymbolstring货币符号,例如 $
alreadyPaymentLinesAlreadyPaymentLines已支付明细
failCodestring | null失败码,没失败时为空
idstring订单 ID
statusOrderStatus订单状态
checkoutStatusstring结账状态
financialStatusstring支付状态
orderNostring订单号
cancelReasonstring | null取消原因
orderType?number订单类型:1 = 礼品卡商品订单,0 = 其他订单(标准商品、虚拟商品等)
exceptionError?string下面两个字段只有感谢页才有
exceptionErrorMessage?string异常信息
additionalPrices?AdditionalPrice[]附加费用
customFields?Record<string, string>订单的自定义业务字段

OrderResult​

字段类型说明
data?OrderResultData响应的数据体
statestring结果状态,成功时为 success
errorsstring[]错误信息列表

OrderResultData​

字段类型说明
exceptNotificationExceptNotification平台报出的异常信息
addressSettingsCheckoutAddressSettings店铺的地址表单设置
checkoutSettingsCheckoutSettings店铺的结账设置
customerInfoCheckoutCustomerInfo顾客填写的联系信息
ipAddressCheckoutIpAddress下单来源的 IP 地址信息
orderCheckoutOrder订单本身
paymentSettingsPaymentSettings店铺的支付设置
showDetailsShowDetails页面上哪些区块显示
stepCheckoutStep对应的结账步骤

OrderStatus​

订单状态。

取值说明
'opened'订单已创建但还没提交
'placed'订单已提交
'cancelled'订单已取消
'finished'订单已完成

PageTypeChangeCb​

typescript
export type PageTypeChangeCb = (type: CheckoutPageType) => void;

PayAttemptCb​

typescript
export type PayAttemptCb = () => void;

PayFailedHandler​

typescript
export type PayFailedHandler = (payload: OnPayFailedPayload) => Promise<OnPayFailedResult>;

PaymentIconResource​

字段类型说明
paymentKeystring标识支付方式的 key
iconstring这一行显示的图标

PaymentLine​

字段类型说明
failCode?string | null失败码,没失败时为空
availableboolean | string这个支付方式是否可用
createdAtstring创建时间
descstring描述
idstring支付方式 ID
namestring支付方式名称
paymentChannelstring支付渠道
paymentMethodstring支付方式
publicKeyany
statusstring状态
storeIdstring店铺 ID
tipsstring提示文案
updatedAtstring更新时间
supportTip?boolean是否支持小费
paypalClassicMode?boolean是否走 PayPal 的经典流程
channelstring支付渠道
methodstring支付方式
fePay?boolean这笔支付是否在前端完成
failReason?string失败原因
paymentKey?string标识支付方式的 key
discounts?Record<string, unknown>[]绑定在这个支付方式上的优惠

PaymentLinesSource​

取值说明
'destroy'上一条支付记录被销毁
'verificationError'支付校验失败
'api'支付记录来自一次接口返回

PaymentResources​

字段类型说明
[key: string]Cards其他任意 key,按名字索引

PaymentSettings​

字段类型说明
supportChannelsstring[]店铺已开启的支付渠道
paymentResourcesPaymentResources支付方式需要的静态资源
paymentIconResources?PaymentIconResource[]可用支付方式的图标资源
paypalExpressEnabledstringPayPal Express 是否开启

PaymentUpdateParams​

字段类型说明
paymentLinePaymentLine当前选中的支付方式
paymentLinesArray<PaymentLine>可选的支付方式列表
paymentButtonboolean是否显示支付按钮
paymentReadyboolean支付方式是否已经可以提交
cardInfoPartial<CardInfo>银行卡信息
source?PaymentLinesSource这次支付更新由什么触发,取值同 PaymentLinesSource
paymentFeatures?{ useCustomPaymentButton: boolean; useBillingAddress: boolean; }这个支付方式需要哪些支付能力

PayResponse​

typescript
export type PayResponse = (
| {
data: {
exceptNotification: ExceptNotification;
result?:
| {
redirectType: 'newwindow' | 'redirect' | 'iframe';
redirectUrl: string;
}
| {
redirectType: 'form';
form: string;
};
};
state: 'success';
}
| {
data: null;
state: 'pay_failed';
}
) & {
errors: string[];
message: string;
};

Pending​

字段类型说明
priceboolean价格接口调用中
shippingLinesboolean物流方案列表加载中
paymentboolean支付脚本加载中,不是支付方式列表
pickupLocationboolean自提点列表加载中

PhoneInfo​

字段类型说明
phonestring手机号
phoneAreaCodestring手机号的国际电话区号

PickupInformationChangeCb​

typescript
export type PickupInformationChangeCb = (pickupInformation?: string) => void;

PickupLocation​

字段类型说明
deliveryMethod?number1 快递,2 本地配送,3 到店自提
businessTimeType?number字段不存在默认为 1, 1 统一的时间,2 按天设置
id?string自提点 ID
name?string自提点名称
desc?string自提点描述
shippingPrice?string这个自提点的费用
supportCod?number0 不支持,1 支持
locationId?string关联的位置 ID
country?string国家 / 地区名称
countryCode?string国家 / 地区代码
province?string省 / 州名称
provinceCode?string省 / 州代码
city?string城市
address?string详细地址
address1?string详细地址第二行(门牌号、公寓号等)
company?string公司名
zip?string邮编
timeZone?string时区
timeDaySetting?DayConfigOfPickupTime[]每天可自提的时间段
timeRemark?string自提时间的备注
businessStart?string自提点营业开始时间
businessEnd?string自提点营业结束时间
timeLag?string预计提货时间(单位h)
estimatedTimeEnd?string预计提货时间 (前端使用)
estimatedTimeUnit?string预计提货时间单位(前端使用、多语言前端控制),枚举 h、d
pickupAt?string顾客选的自提时间
lastSelected?boolean是否为上次选中的自提点
formattedPickAt?string自提时间,以自提点时区为准,是按 YYYY-MM-DD HH:mm:ss 格式化后的时间

PickupLocationsChangeCb​

typescript
export type PickupLocationsChangeCb = (locations?: PickupLocation[]) => void;

PlaceType​

typescript
export type PlaceType =
| {
types: Array<string>;
stringify?: string;
}
| Array<string>;

PlayCardCards​

字段类型说明
cardNamestring卡种的显示名称
cardTypestring卡种,比如 Visa、Mastercard
countryCnName?string国家 / 地区的中文名
countryCode?string国家 / 地区代码
countryEnName?string国家 / 地区的英文名
iconstring这一行显示的图标
name?string这一项的名称
pmId?string

PluginConfig​

字段类型说明
plugins{ appserval: { servalBg1Color: string; servalBg2Color: string; servalDiscountColor: string; servalHeadingColor: string; showNewCustomerExclusiveTag: boolean; exclusiveForNewUsers: false; }; }结账页插件的配置

PriceDetail​

金额明细里的一行,字段是 BasePriceDetail 的全部字段,再加一个 id 和一组可选的子行。

字段类型说明
key?string这一行明细的标识
dataRobot?string
title?string这一行的标题
titleLangId?string标题的翻译 key
subTitle?string这一行的副标题
subTitleLangId?string副标题的翻译 key
originPrice?string折扣前的金额
price?string这一行的金额
originalValue?string这一行未格式化的原始值
value?string这一项的取值
desc?string这一行附带的说明文字
descLangId?string说明文字的翻译 key
icon?string这一行显示的图标
isShow?boolean这一行是否显示
tooltip?string这一行的悬浮提示文字
subList?SubPriceDetail[]这一行下面的子行
idstring这一项的唯一 ID

PriceGroupDetail​

字段类型说明
keyPriceGroupDetailKey分组标识
list?PriceDetail[]这一组下的价格条目
desc?string描述
descLangId?string说明文字的翻译 key

PriceGroupDetailKey​

取值说明
'tax_total'税费合计
'shipping_tax_total'运费税
'sub_total'商品小计
'shipping_total'运费合计
'discount_coupon_total'优惠券折扣合计
'discount_flash_sale_total'闪购折扣合计
'discount_applications'逐条列出的已应用折扣
'total_tip_received'小费合计
'gift_card'礼品卡
'payment_discount_total'支付方式折扣合计
'additional_price'运费险
'charge_quotes'这笔订单报出的附加费

PriceListChangeCb​

typescript
export type PriceListChangeCb = (newPriceList: PriceGroupDetail[]) => void;

PriceParams​

字段类型说明
reductions?Array<{ code: string }>要应用的折扣码,按码给出
discountApplications?Array<{ code: string; discountId: string; _delete: 1; }>逐条列出的已应用折扣
calculateShippingLineboolean这次是否要重新计算运费
totalTipReceivedstring订单上的小费合计
appliedGiftCards?Record<string, { id: string; _delete: 1 }>这笔订单上已使用的礼品卡
type?DiscountTypeEnum这次要应用的折扣种类,取值同 DiscountTypeEnum
step?string对应的结账步骤
paymentLine?PaymentLine | null订单上选中的支付方式
config{ checkoutBusinessType: CheckoutBusinessType; }随这次请求或这笔订单带上的配置

PriceResult​

typescript
export type PriceResult = SuccessPriceResult | FailPriceResult;

PriceResultData​

字段类型说明
exceptNotificationExceptNotification平台报出的异常信息
discountApplicationsCheckoutOrder['discountApplications']逐条列出的已应用折扣
lineItemsCheckoutOrder['lineItems']订单的商品行
pricesCheckoutPrices订单的金额明细
shippingInfo{ requiresShipping: boolean; shippingLine: ShippingLineType; shippingLines: Array<ShippingLineType>; }配送方式,以及这笔单是否需要配送
appliedGiftCardsArray<AppliedGiftCard>这笔订单上已使用的礼品卡
alreadyPaymentLinesAlreadyPaymentLines这笔订单上已经收到的支付记录
pickupLocationsPickupLocation[]可选的自提点列表
pickupLocationPickupLocation订单上选中的自提点
checkoutPriceList?PriceGroupDetail[]价格明细分组
taxLines?TaxLines这笔订单算出的税费明细

PricesChangeCb​

typescript
export type PricesChangeCb = (prices: CheckoutPrices) => void;

ProductItem​

派生自 LineItem,字段完全相同,只是 properties 换成了键值对对象(Record<string, string>),不再是字符串。

字段类型说明
idstring这一项的唯一 ID
productTitlestring商品标题
productIdstring商品 ID
productHandlestring商品的 URL handle
variantIdstring规格 ID
variantTitlestring规格标题
quantitynumber数量
fulfillmentStatusstring这一行的发货状态
notestring挂在这一行上的备注
image{ path: string; src: string; }商品图片
compareAtPricestring规格的原价(划线价)
pricestring这一行的金额
linePricestring这一行的单价乘数量
totalstring这一行的合计金额
skustring规格的 SKU
weightstring商品重量
weightUnitstring重量使用的单位
taxableboolean这一行是否计税
requiresShippingboolean这一行是否需要配送
optionsArray<{ name: string; value: string }>这一项可选的取值
vendorstring商品的供应商
productUrlstring商品在店铺前台的路径
discountApplicationsArray<DiscountApplication>逐条列出的已应用折扣
finalPrice?string所有商品优惠后的单价 eg. "9.00"
finalLinePrice?string所有商品优惠后的单价 x 数量 eg. "18.00"
discountTotal?string商品优惠总金额,discount_application 的汇总 eg. "2.00"
isFreeGift?boolean这一行是否为赠品
type?string订单行的类型标记
propertiesRecord<string, string>挂在这一行上的自定义属性

ProductListChangeCb​

typescript
export type ProductListChangeCb = (newProductList: ProductItem[]) => void;

ProductProperties​

字段类型说明
_shoplazza_bundled_product?boolean捆绑商品,不能独立成单
_shoplazza_exclude_calculation?boolean独立于所有计算之外,仅最终总价加回
[key: string]any其他任意 key,按名字索引

PromptMessage​

字段类型说明
typestring提示类型
dataRobotstring
errorMessage?string错误信息
localesstring[]这条文案覆盖的语言

ReferInfo​

字段类型说明
clientIdstring应用的 client id
countrystring国家 / 地区
domainstring域名
fbcstring
fbpstring
ipstringIP 地址
source'buy_now' | 'back' | 'cart'顾客从哪里进入结账:buy_now 立即购买、back 返回、cart 购物车
userAgentstring浏览器 User-Agent
payMethod?string支付方式
note?string备注

RemoveLineItemsInput​

字段类型说明
lineItemIdsstring[]要操作的订单行 ID 列表
mutationSourceMutationSource你自己填的标记,说明这次改动是谁发起的

RenderParams​

字段类型说明
idstring这一项的唯一 ID
extensionPointExtensionPoint内容渲染在哪个扩展点上
componentPromise<string> | string扩展要渲染的 HTML,也可以是解析出 HTML 的 promise

ReqConfig​

字段类型说明
urlstring请求地址
method?RequestInit['method']HTTP 请求方法
headers?Record<string, string>请求头或响应头
params?Record<string, any> | URLSearchParams请求的查询参数
data?Record<string, any> | string结果的数据体
timeout?number请求超时时间,单位毫秒
withCredentials?boolean请求是否带上 cookie
responseType?'json'响应按什么格式解析
xsrfCookieName?string读取 XSRF token 的 cookie 名
xsrfHeaderName?string发送 XSRF token 的请求头名

Res​

typescript
export type Res<Shape = Record<string, any>, ErrorPayload = Record<string, any> & { state: string | '' }> =
| HttpSuccessResponse<Shape>
| HttpFailResponse<ErrorPayload>;

SaleTaxLine​

字段类型说明
key?string这条税费的标识
price?string这一行的金额

SchemaChangeDisableCB​

typescript
export type SchemaChangeDisableCB = () => Record<string, boolean>;

SchemaChangeLabelCb​

typescript
export type SchemaChangeLabelCb = () => Record<string, string>;

SchemaChangeValidateRule​

字段类型说明
[k: string]SchemaChangeValidateRuleValue其他任意 key,按名字索引

SchemaChangeValidateRuleCB​

typescript
export type SchemaChangeValidateRuleCB = () => SchemaChangeValidateRule;

SchemaChangeValidateRuleValue​

字段类型说明
requiredtrue顾客是否必须填这一项
validatesFieldValidate[]生效的校验规则

SchemaItemVisibilityCb​

typescript
export type SchemaItemVisibilityCb = () => Record<string, boolean>;

SchemaManagerConfig​

字段类型说明
focusIdPrefixstring生成 focus id 时统一加的前缀

SchemaManagerConfigFn​

字段类型说明
getAddressVisible()boolean返回地址表单当前是否可见
getCustomLabels?() => Record<string, string>返回商家自定义的字段标签,按字段 ID 索引
getCustomValidateRules?() => SchemaChangeValidateRule返回要额外应用的校验规则
getAddressExpanded?() => boolean地址表单当前是否已展开;不提供时视为已展开
expandAddress?(reason: 'manual_click' | 'empty_fallback_click' | 'auto_fill') => void展开地址表单

SelectedPickupLocationChangeCb​

typescript
export type SelectedPickupLocationChangeCb = (location?: PickupLocation) => void;

SelectType​

取值说明
'static'选项列表是固定的
'dynamic'选项列表随顾客输入实时拉取

ShippingAddress​

字段类型说明
phoneCountryCode?string手机号所属的国家 / 地区代码
id?string地址 ID
firstNamestring名
lastNamestring姓
emailstring邮箱
phonestring手机号
countryCodestring国家 / 地区代码
countrystring国家 / 地区名称
provinceCodestring省 / 州代码
provincestring省 / 州名称
areastring区 / 县
citystring城市
addressstring详细地址
address1string详细地址第二行(门牌号、公寓号等)
zipstring邮编
extraInfo{ cpf?: string; taxText?: string; idNumber?: string; idNumberText?: string; addition?: AdditionValues; shortAddress?: string; }额外的地址字段,比如税号和证件号
companystring公司名
emailOrPhonestring邮箱或手机号合并字段的值
phoneAreaCodestring手机区号
latitude?string纬度
longitude?string经度

ShippingChangeCb​

typescript
export type ShippingChangeCb = () => void;

ShippingCpf​

字段类型说明
isShowboolean这一行是否显示
configInfo{ configBr: { length: string; type: string; }; configDefault: { length: string; type: string; }; }CPF 字段的分国家配置
countriesany[]这份配置覆盖的国家 / 地区
isShowCountriesisShowCountries哪些国家 / 地区显示 CPF 字段

ShippingLinesErrorInfo​

字段类型说明
message?string错误信息

ShippingLineType​

字段类型说明
createdAt?string创建时间
desc?string描述
idstring | number物流方案 ID
name?string物流方案名称
rateAdditionalAmount?string每增加一个计费单位收多少
rateAdditionalRange?string一个附加计费单位的大小
rateAdditionalUnit?string附加计费所用的单位
rateAmount?string基础运费金额
rateFirstRange?string首个计费单位的大小
rateFirstUnit?string首段计费所用的单位
rateType?string运费的计算方式
ruleRangeInfinite?number计费区间是否没有上限
ruleRangeMax?string计费区间的上限
ruleRangeMin?string计费区间的下限
ruleRangeUnit?string计费区间使用的单位
ruleType?string计费区间按什么衡量,比如重量或金额
shippingId?string配送方式的 ID
shippingPrice?number | string运费
storeId?number店铺 ID
supportCod?number是否支持货到付款
selected?boolean是否已选中
discountShippingPricenumber | string优惠后的运费

ShippingMethodsFetchTriggerSource​

取值说明
'init'页面首次加载
'address_change'物流地址变了
'shipping_method_switch'顾客换了配送方式
'tipping_change'小费变了
'charge_quote_change'附加费项变了
'billing_address_change'账单地址变了
'step_change'顾客切换了步骤
'delivery_method_change'顾客在配送和自提之间切换
'pickup_location_change'顾客换了自提点
'coupon_apply'用上了一张券或折扣码
'coupon_cancel'取消了一张券或折扣码
'gift_card_remove'移除了一张礼品卡
'payment_change'顾客换了支付方式
'payment_cancel'顾客取消了支付
'submit_retry'顾客重新提交了订单
'exception_recovery'页面从异常中恢复
'other'其他触发来源

ShippingPriceDisplayChangeCb​

typescript
export type ShippingPriceDisplayChangeCb = () => void;

ShippingPromptMessageChangeCb​

typescript
export type ShippingPromptMessageChangeCb = () => void;

ShippingProtectionChangeCb​

typescript
export type ShippingProtectionChangeCb = () => void;

ShopConfig​

字段类型说明
contactEmailstring联系邮箱
defaultImgstring商品没有图时用的占位图
shopNamestring店铺名称
shopIdstring店铺 ID
faviconstring站点图标
financestring店铺的币种代码
customerIdstring顾客 ID
financeSymbolstring店铺的币种符号
serviceEmailstring客服邮箱
cdnDomainstringCDN 域名
[key: string]any其他任意 key,按名字索引

ShowDetails​

字段类型说明
isAddressAvailable?boolean地址是否可用

SimplesSetting​

取值说明
'hidden'不显示这个字段
'optional'显示这个字段,可以不填
'required'显示这个字段,必须填

SortSchemaCb​

typescript
export type SortSchemaCb = (items: SortSchemaItem[]) => SortSchemaItem[];

SortSchemaItem​

字段类型说明
idstring这一项的唯一 ID
rownumber这个字段在表单网格里所处的行

StaticExtensionPoint​

typescript
enum StaticExtensionPoint {
// 每个静态扩展点一个成员,完整清单见扩展点页面
PAGE_BEFORE = 'Checkout::RenderBefore',
MAIN_AFTER = 'Checkout::Main::RenderAfter',
// ...
}

StepChangeCb​

typescript
export type StepChangeCb = () => void;

SubmitChangeCb​

typescript
export type SubmitChangeCb = () => void;

SubmitError​

字段类型说明
codestring错误码
messagestring错误信息

SubmitErrorChangeCbs​

typescript
export type SubmitErrorChangeCbs = (tags: { code: string; message: string }) => void;

SubmitSuccessData​

字段类型说明
data?{ exceptNotification: ExceptNotification; result: Record<string, any>; }结果的数据体
statestring结果状态,成功时为 success
errorsstring[]错误信息列表

SubPriceDetail​

金额明细某一行下面的子行,取 BasePriceDetail 的 key、price、value、title、titleLangId、tooltip 六个字段。

字段类型说明
key?string这一行明细的标识
title?string这一行的标题
titleLangId?string标题的翻译 key
price?string这一行的金额
value?string这一项的取值
tooltip?string这一行的悬浮提示文字

SuccessPriceResult​

字段类型说明
dataPriceResultData结果的数据体
messagestring提示文案
state'success'结果状态,成功时为 success

Suggestion​

字段类型说明
textstring这一行显示的文字
idstring这一项的唯一 ID
prefix?string建议项里匹配文字之前的部分
suffix?string建议项里匹配文字之后的部分

SuggestionChangeCb​

typescript
export type SuggestionChangeCb = (sugs: Suggestion[], status?: SuggestionSearchStatus) => void;

SuggestionSchema​

字段类型说明
suggestions?Array<Suggestion>推荐列表
onSuggestionsChange?(cb)void注册建议列表变化时的回调
removeSuggestionChangeCb?(cb)void取消一个建议列表变化回调
onSelectSuggestion?(item)void选中某一个推荐项
prefixIcon?string输入框前置图标(Icon 的 type)

SuggestionSearchStatus​

取值说明
'idle'没有正在进行的搜索
'empty'搜索完成,没有结果

SwitchSetting​

取值说明
'disabled'关
'enabled'开

SwitchShippingProtectionResult​

字段类型说明
successboolean这次调用是否成功
messagestring提示文案
dataany结果的数据体

TaxLines​

字段类型说明
salesTaxLines?SaleTaxLine[]销售税明细

ThemeConfigChangeCb​

typescript
export type ThemeConfigChangeCb = () => void;

ThemeStyleConfig​

字段类型说明
checkoutRecommendImageLink'' | { url: string; type: string }广告位跳转链接
checkoutRecommendImagestring广告位图片
checkoutPaymentBackgroundImagestring付款区域背景图
checkoutPaymentBackgroundColorstring付款区域背景色,同时配了背景图时以图片为准
checkoutInputBackgroundColorstring输入框背景色
checkoutOrderBackgroundImagestring订单摘要背景图
checkoutOrderBackgroundColorstring订单摘要背景色,同时配了背景图时以图片为准
checkoutHeadingFontfamilycheckoutFontfamily标题字体
checkoutBodyFontfamilycheckoutFontfamily正文字体
checkoutButtonFontfamilycheckoutFontfamily按钮字体
checkoutButtonBackgroundColorstring按钮背景色,也是页脚返回链接的文字颜色
checkoutButtonTextstring按钮文字颜色
checkoutErrorColorstring报错提示的文字颜色
checkoutFocusColorstring输入框聚焦时的高亮颜色
checkoutBorderRadiusstring页面统一使用的圆角大小
checkoutBorderColorstring左侧表单区域
checkoutTextMainColorstring页面主文字颜色
checkoutTextSubColorstring页面次文字颜色
checkoutEmptyBgColorstring空白区域的背景色
checkoutBlockBorderColorstring左侧卡片内部,包含输入框、物流方案卡片等
checkoutBlockTextMainColorstring卡片内的主文字颜色
checkoutBlockTextSubColorstring卡片内的次文字颜色
checkoutSummaryBorderColorstring右侧订单摘要区域
checkoutSummaryTextMainColorstring订单摘要的主文字颜色
checkoutSummaryTextSubColorstring订单摘要的次文字颜色
checkoutSummaryBlockBorderColorstring右侧卡片内部
checkoutSummaryBlockTextMainColorstring订单摘要里卡片的主文字颜色
checkoutSummaryBlockTextSubColorstring订单摘要里卡片的次文字颜色

ThirdPartyErrorDetails​

typescript
export type ThirdPartyErrorDetails = Record<string, unknown>[];

TippingChangeCb​

typescript
export type TippingChangeCb = () => void;

TippingInfo​

字段类型说明
productTotalPricenumber商品总额
isShowTippingboolean是否展示小费模块
isSupportTippingboolean是否支持小费
currencySymbolstring货币符号
totalTipReceivedstring小费合计

TippingOption​

字段类型说明
percentnumber | 'none' | 'custom'比例;none 是不给小费,custom 是顾客手动输入
valuenumber金额
formatValuestring带货币符号的金额

TipSchema​

字段类型说明
tip?string小费金额
tipChangeEvent?string

TrackAddressFillParams​

这是文档为便于引用起的名字,源码中是内联类型。

字段类型说明
dataPartial<AddressBookItem>结果的数据体
fillTypenumber

TrackGiftCardProps​

取值说明
'checkout_coupon_apply_begin'顾客开始使用礼品卡
'checkout_coupon_close_begin'顾客开始关闭礼品卡输入区
'checkout_coupon_fail'礼品卡使用失败

TrackSubmitAddressParams​

这是文档为便于引用起的名字,源码中是内联类型。

字段类型说明
skipSetShippingAddress?boolean是否跳过设置物流地址这一步

TrackTippingData​

字段类型说明
total?string随事件上报的小费金额
rate?number顾客选择的小费比例
keyword?string

TrackTippingType​

取值说明
'checkout_tipping_add_tip'顾客加了小费
'checkout_tipping_select'顾客选了一个小费金额
'checkout_tipping_visible'小费模块出现在视野里
'checkout_tipping_focus'顾客聚焦到小费输入框

UIProduct​

字段类型说明
idstring这一项的唯一 ID
variantIdstring变体 ID
productTitlestring商品名称
propertiesProductItem['properties']自定义属性
discountApplicationsProductItem['discountApplications']这一行生效的优惠
optionsProductItem['options']变体选项
isFreeGiftboolean是不是赠品
quantityProductItem['quantity']数量
linePriceProductItem['linePrice']这一行的金额
discountTotal?ProductItem['discountTotal']这一行的优惠合计
finalLinePrice?ProductItem['finalLinePrice']优惠后这一行的金额
compareAtPriceProductItem['compareAtPrice']划线价
priceProductItem['price']单价
coverUrlstring封面图地址

UiProductListChangeCb​

typescript
export type UiProductListChangeCb = (product: UIProduct[]) => UIProduct[];

UiShippingLinesChangeCb​

typescript
export type UiShippingLinesChangeCb = (lines: FormatShippingLineType[]) => FormatShippingLineType[];

UpdateContextCb​

typescript
type UpdateContextCb = (context: AddressSchemaManagerContext) => void;

UpdateCustomFieldsResult​

字段类型说明
state'success' | string结果状态,成功时为 success;方法不抛异常,失败只通过这个字段告知
message?string失败时的错误信息,例如两个参数都为空、订单不可编辑、字段总长度超出上限

UpdateDataByOrderAndPriceApiResult​

这是文档为便于引用起的名字,源码中是内联类型。

字段类型说明
price?PriceResult这一行的金额
order?OrderResult订单本身

UpdateDataByPriceApiParams​

PriceParams 的字段,在这里全部是可选的,只传你要改的那些。

字段类型说明
reductions?Array<{ code: string }>要应用的折扣码,按码给出
discountApplications?Array<{ code: string; discountId: string; _delete: 1; }>逐条列出的已应用折扣
calculateShippingLine?boolean这次是否要重新计算运费
totalTipReceived?string订单上的小费合计
appliedGiftCards?Record<string, { id: string; _delete: 1 }>这笔订单上已使用的礼品卡
type?DiscountTypeEnum这一项的类型
step?string对应的结账步骤
paymentLine?PaymentLine | null订单上选中的支付方式
config?{ checkoutBusinessType: CheckoutBusinessType; }随这次请求或这笔订单带上的配置

UpdateOrderCustomFieldsInput​

字段类型说明
customFields?Record<string, string>要设置的字段,合并到订单已有的字段上,没提到的字段不受影响;同名 key 直接覆盖。key 不能为空字符串,也不能为 *。值只能是字符串,对象和数组需自行 JSON.stringify 后传入
deleteCustomFields?string[]要删除的 key;传 ['*'] 删除全部字段

UserInfo​

顾客信息,Customer 的字段在这里全部是可选的。

字段类型说明
id?string这一项的唯一 ID
firstName?string名
lastName?string姓
email?string邮箱地址
phone?string | null手机号
name?string这一项的名称
orderCount?number这位顾客下过的订单数
customerId?string顾客 ID
createAt?string顾客资料的创建时间
registeredAt?string顾客的注册时间
registered?string这位顾客是否已注册店铺账号
subscribed?boolean顾客是否订阅了营销邮件

UserInfoChangeCb​

typescript
export type UserInfoChangeCb = (d: UserInfo) => void;

UseShippingAsBillingAddressCb​

typescript
export type UseShippingAsBillingAddressCb = (val: boolean) => void;

ValidateOptions​

字段类型说明
updateUi?boolean校验结果是否显示到界面上

ValidatePickupResultChangeCb​

typescript
export type ValidatePickupResultChangeCb = (result: ValidateResult | undefined) => void;

ValidateResult​

字段类型说明
fieldIdstring字段 ID
focusIdstring要聚焦的输入框 ID
idstring这一项的唯一 ID
messagestring校验提示文案

ValidateResultChangeCb​

typescript
export type ValidateResultChangeCb = (fieldId: string, result: ValidateResult | undefined) => void;

ValueInterface​

字段类型说明
valuestring这一项的取值
onBlur?(val: string) => void输入框失焦时调用
changeValues(values: Partial<AddressValues>, config?: ChangeValueConfig) => void往地址表单里写入新的值
onValuesChange(cb)void注册字段取值变化时的回调
removeValuesChangeCb(cb)void取消一个取值变化回调

VisibleConfig​

字段类型说明
billingboolean账单地址模块是否展示
virtualProductBillingboolean虚拟商品的账单地址模块是否展示
billingSelectorboolean账单地址选择器是否展示
addressCardboolean地址卡片是否展示
deliveryMethodboolean配送方式模块是否展示
specialInstructionboolean订单备注模块是否展示
pickupInformationboolean自提信息模块是否展示
pickupAddressboolean自提地址是否展示
expressCheckoutboolean快捷支付模块是否展示
deliveryboolean配送模块是否展示
mobileCouponboolean移动端优惠码模块是否展示
summaryCouponboolean订单摘要里的优惠码模块是否展示
addressBookboolean地址簿是否展示
shippingAddressboolean收货地址模块是否展示
contactInformationboolean联系方式模块是否展示

VisibleConfigChangeCb​

typescript
export type VisibleConfigChangeCb = (visibleConfig: VisibleConfig) => void;