pancake-client-sdk
Version:
Official TypeScript SDK for Pancake POS API
135 lines (134 loc) • 3.52 kB
TypeScript
export interface MarketplaceAccount {
id: string;
platform: MarketplacePlatform;
shop_id: string;
account_name: string;
shop_name?: string;
status: ConnectionStatus;
settings: MarketplaceSettings;
metrics?: MarketplaceMetrics;
created_at: string;
updated_at: string;
last_sync_at?: string;
}
export type MarketplacePlatform = 'shopee' | 'lazada' | 'tiktok' | 'sendo' | 'amazon' | 'shopify';
export type ConnectionStatus = 'connected' | 'disconnected' | 'expired' | 'error';
export interface MarketplaceSettings {
auto_sync: boolean;
sync_interval_minutes: number;
sync_orders: boolean;
sync_products: boolean;
sync_inventory: boolean;
sync_prices: boolean;
auto_fulfill: boolean;
default_warehouse_id?: string;
order_tag_ids?: string[];
notification_emails?: string[];
}
export interface MarketplaceMetrics {
total_orders: number;
total_sales: number;
active_products: number;
conversion_rate: number;
average_rating: number;
customer_satisfaction: number;
response_rate: number;
shipping_performance: number;
}
export interface SyncStatus {
id: string;
account_id: string;
type: SyncType;
status: 'pending' | 'processing' | 'completed' | 'failed';
progress?: number;
total_items?: number;
processed_items?: number;
error_items?: number;
started_at: string;
completed_at?: string;
error?: string;
}
export type SyncType = 'orders' | 'products' | 'inventory' | 'prices' | 'categories' | 'full';
export interface MarketplaceProduct {
platform_id: string;
platform: MarketplacePlatform;
product_id: string;
name: string;
status: 'active' | 'inactive' | 'deleted';
url?: string;
platform_category_id?: string;
variations?: {
platform_id: string;
variation_id: string;
stock: number;
price: number;
sales: number;
}[];
metrics?: {
views: number;
sales: number;
rating: number;
review_count: number;
};
}
export interface MarketplaceOrder {
platform_id: string;
platform: MarketplacePlatform;
order_id: string;
status: string;
created_at: string;
updated_at: string;
items: {
platform_product_id: string;
platform_variation_id?: string;
quantity: number;
price: number;
}[];
}
export interface MarketplaceLogistics {
platform: MarketplacePlatform;
shipping_providers: {
id: string;
name: string;
enabled: boolean;
settings?: Record<string, any>;
}[];
shipping_methods: {
id: string;
name: string;
provider_id: string;
enabled: boolean;
}[];
}
export interface PlatformCategory {
id: string;
name: string;
parent_id?: string;
level: number;
leaf: boolean;
children?: PlatformCategory[];
}
export interface ConnectAccountRequest {
platform: MarketplacePlatform;
auth_code: string;
shop_id: string;
settings?: Partial<MarketplaceSettings>;
}
export interface MarketplaceStats {
total_orders: number;
total_sales: number;
by_platform: {
[key in MarketplacePlatform]?: {
orders: number;
sales: number;
products: number;
};
};
top_products: {
product_id: string;
name: string;
platform: MarketplacePlatform;
sales: number;
revenue: number;
}[];
}