跳到主要内容

CheckoutAPI 参考

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

快速上手

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

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获取当前语言,例如 enstring
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-USLocale

用法

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

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获取当前选中的物流方案,没有选中时返回 nullFormatShippingLineType | null
updateSelectedShippingLine切换选中的物流方案shippingLine: ShippingLineTypePromise<void>
shouldCalculateShippingLine当前是否应该请求物流方案;三页布局在信息步返回 falseboolean
onShippingChange注册物流方案发生变化的回调cb: ShippingChangeCbvoid
removeShippingChangeCb删除物流方案发生变化的回调cb: ShippingChangeCbvoid
isShippingMethodAutoSelect店铺后台是否配置了自动选中物流方案boolean
isSupportShippingLinesCollapse物流方案列表是否支持折叠,只有单页和两页布局支持boolean
getShippingPromptMessage获取物流方案列表当前的提示文案,没有提示时返回 nullPromptMessage | 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

已填信息卡片

方法用途参数返回
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当前是否自提结账模板;商家配了自提点就是自提模板。顾客是不是真走自提要看 isSelectedPickupboolean
isSelectedPickup本单是否走自提;自提模板且顾客选了自提才为 trueboolean
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

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();

抽屉不传 trueBtnfalseBtn 时用默认的 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

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

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

AddressChangeCb

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。它还带有 BaseAddressItemSchemaValueInterface 的全部字段,下面只列它自己的成员。

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

AddressItemPhoneSchema

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

export type AddressItemPhoneSchema = AddressItemGeneralPhoneSchema;

AddressItemSchema

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

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 和校验。

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

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

AddressValuesChangeOptions

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

AddSchemaChangeCbs

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

AfterPayCb

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

AfterPayParams

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

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

AllExtensionLoadedCb

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

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

export type BillingAddressChangeCb = () => void;

BillingAddressValuesChangeCb

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

BuyerJourneyInterceptCb

export type BuyerJourneyInterceptCb = () => BuyerJourneyInterceptCbReturn;

BuyerJourneyInterceptCbReturn

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

CancelCouponParams

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

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

CheckoutCustomerInfo

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

CheckoutFeatures

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

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

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

结账页的主题配置,把 ThemeStyleConfigLogoConfigMenuPolicyConfigBannerConfigPluginConfigInteractionConfig 六组配置的字段合并成一个对象。

字段类型说明
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

export type CollapseInfoChangeCb = () => void;

CommonAddressValuesChangeCb

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

ContactDetailsSetting

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

ContactInformation

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

ContactInformationChangeCb

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

export type CouponChangeCb = () => void;

CouponData

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

CouponItem

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

CouponListChangeCb

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

export type DeliveryListChangeCb = () => void;

DeliveryMethodChangeCb

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

DeliveryMethodItem

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

DeliveryMethodListChangeCb

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

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

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,除了普通字段,还包括勾选项、标题和操作项。

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

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

ExtensionPoint

export type ExtensionPoint = StaticExtensionPoint | DynamicExtensionPoint;

ExtensionTarget

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

FailPriceResult

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

FieldFnValidate

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

FieldRegExpValidate

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

FieldsChangeCb

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

FieldType

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

FieldValidate

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

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

GiftCardTagItem

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

GiftCardTagsChangeCb

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

GiftCardTagsFilter

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

HideExtensionTargetCb

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

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

export type MutationSource = string;

NameSetting

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

NavigateLinksChangeCb

export type NavigateLinksChangeCb = () => void;

NewsLetterStatus

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

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

NextAction

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

NmeRequirementSetting

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

OnCloseCb

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

OnLoadingStatusChangeCallback

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

OnPayFailedPayload

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

OnPayFailedResult

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

OnStoreDataChangeCb

export type OnStoreDataChangeCb = () => void;

OnSubmitPendingChangeCallback

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

OptionValue

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

OrderConfig

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

字段类型说明
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[]附加费用

OrderResult

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

OrderResultData

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

OrderStatus

订单状态。

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

PageTypeChangeCb

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

PayAttemptCb

export type PayAttemptCb = () => void;

PayFailedHandler

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

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

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

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

PlaceType

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

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

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

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

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

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

SaleTaxLine

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

SchemaChangeDisableCB

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

SchemaChangeLabelCb

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

SchemaChangeValidateRule

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

SchemaChangeValidateRuleCB

export type SchemaChangeValidateRuleCB = () => SchemaChangeValidateRule;

SchemaChangeValidateRuleValue

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

SchemaItemVisibilityCb

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

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

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

export type ShippingPriceDisplayChangeCb = () => void;

ShippingPromptMessageChangeCb

export type ShippingPromptMessageChangeCb = () => void;

ShippingProtectionChangeCb

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

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

SortSchemaItem

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

StaticExtensionPoint

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

StepChangeCb

export type StepChangeCb = () => void;

SubmitChangeCb

export type SubmitChangeCb = () => void;

SubmitError

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

SubmitErrorChangeCbs

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

SubmitSuccessData

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

SubPriceDetail

金额明细某一行下面的子行,取 BasePriceDetailkeypricevaluetitletitleLangIdtooltip 六个字段。

字段类型说明
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

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

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

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

TippingChangeCb

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

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

UiShippingLinesChangeCb

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

UpdateContextCb

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

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; }随这次请求或这笔订单带上的配置

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

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

UseShippingAsBillingAddressCb

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

ValidateOptions

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

ValidatePickupResultChangeCb

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

ValidateResult

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

ValidateResultChangeCb

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

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