@pisell/pisellos
Version:
一个可扩展的前端模块化SDK框架,支持插件系统
90 lines (89 loc) • 2.31 kB
TypeScript
import { CartItem } from '../Cart/types';
export declare enum OrderHooks {
OnOrderCreate = "order:onOrderCreate",
OnOrderUpdate = "order:onOrderUpdate",
OnOrderCancel = "order:onOrderCancel",
OnOrderStatusChange = "order:onOrderStatusChange"
}
export interface OrderState {
}
/**
* 订单信息
*/
export interface CommitOrderParams {
url?: string;
query: {
cartItems: CartItem[];
type: 'virtual' | 'appointment_booking';
platform?: 'pc' | 'h5';
extraData?: Record<string, any>;
};
}
/**
* 支付项数据
*/
export interface PaymentItemData {
/** 当前支付项的唯一 ID */
uuid: string;
/** 当前支付方式付出去多少钱 */
amount: string;
/** 支付类型代码 */
code: string;
/** 支付类型id */
id: number;
/** 支付类型名称 */
name: string;
/** 支付类型 */
type: string;
/** 是否已同步到后端 */
isSynced?: boolean;
}
/**
* Checkout 专用订单创建参数
*/
export interface CheckoutOrderParams {
type: 'virtual' | 'appointment_booking';
platform: 'PC' | 'H5';
sales_channel?: string;
order_sales_channel?: string;
bookings?: any[];
shop_note?: string;
schedule_date?: string;
is_deposit?: number;
relation_products?: any[];
relation_forms?: any[];
payments?: PaymentItemData[];
customer_id?: string;
/** 小票数据标记,当有支付项时设置为1 */
small_ticket_data_flag?: number;
[key: string]: any;
}
/**
* 订单模块 API
*/
export interface OrderModuleAPI {
/**
* 创建订单
* @param params 订单信息
* @returns 订单信息
*/
createOrder: (params: CommitOrderParams['query']) => any;
/**
* 检查购物车提交订单前是否符合条件
*/
checkBeforeSubmitOrder: (params: {
cartItems: CartItem[];
type: 'holder' | 'account';
}) => boolean;
/**
* 提交订单
* @param params 订单信息
*/
submitOrder: (params: CommitOrderParams) => Promise<void>;
/**
* Checkout 专用:创建订单到后端
* @param params 订单参数
* @returns 后端返回的订单数据
*/
createOrderByCheckout: (params: CheckoutOrderParams) => Promise<any>;
}