import apiService from './apiClient'; export interface products { "total": number, "page": number, "page_size": number, "products":Products } export interface Product { "offer_id": number, "subject": string, "subject_trans": string, "subject_trans_ar": string, "subject_trans_en": string, "product_image_urls": string[], "category_id": number, "sold_out": number, "create_date": string, "seller_open_id": string, "min_price": number, "max_price": number } export type Products = Product[] export interface ProductParams { page: number; page_size: number; category_id?: number | null; keyword?: string; max_price?: number | null; min_price?: number | null; sort_order?:string; sort_by:string, language:string } export interface SkuAttribute { "attribute_id": number, "attribute_name": string, "attribute_name_trans": string, "value": string, "value_trans": string, "value_trans_ar": string, "value_trans_en": string, "sku_image_url": string, 'has_color'?: boolean, size?:number, list:Sku[], } export interface Sku { "sku_id": 0, "price": number, "spec_id": "string", "amount_on_sale": 0, "consign_price": 0, "cargo_number": "string", "one_piece_price": 0, "offer_price": number, "attributes": SkuAttribute[], value?:string, size?:number } export interface ColorOptions { "title": string, "options": SkuAttribute[] } export interface ProductDetailParams { "offer_id": 0, "category_id": 0, "price": number | string, "subject": "string", "subject_trans": "string", "subject_trans_ar": "string", "subject_trans_en": "string", "description": "string", "main_video": "https://example.com/", "detail_video": "https://example.com/", "product_image_urls": [ "string" ], "min_order_quantity": 1, "status": "string", "create_date": "2025-03-31T15:07:27.792Z", "top_category_id": 0, "second_category_id": 0, "third_category_id": 0, "seller_open_id": "string", "sold_out": 0, "batchNumber": 0, "sale_info": { "amount_on_sale": 0, "price_range_list": [ { "min_quantity": 0, "price": 0 } ], "quote_type": 0, "unit_info": { "name": "string", "count": 0 }, "fenxiao_sale_info": {}, "last_update_time": "2025-03-31T15:07:27.792Z" }, "shipping_info": { "send_goods_address_text": "string", "weight_kg": 0, "width_cm": 0, "height_cm": 0, "length_cm": 0, "shipping_time_guarantee": "string" }, "attributes": [ { "attribute_id": "string", "attribute_name": "string", "attribute_name_trans": "string", "value": "string", "value_trans": "string", "value_trans_ar": "string", "value_trans_en": "string" } ], "skus": Sku[], "categories": [ { "category_id": 0, "parent_category_id": 0, "category_level": 0, "category_name": "string", "category_name_trans": "string", "language": "string", "is_leaf": true } ] } export interface similar { "offer_id": number, "subject": string, "subject_trans": string, "subject_trans_ar": string, "subject_trans_en": string, "product_image_urls": string[], "category_id": number, "sold_out": number, "create_date": string, "seller_open_id": string, "min_price": number, "max_price": number } export interface ProductGroupList { attribute_name:string, has_image:boolean, attributes:SkuAttribute[], value?:string } export type Similars = similar[] // 搜索商品 export const productApi = { // 搜索商品 getSearchProducts: (params: ProductParams) => { return apiService.get('/api/search/', params); }, // 获取商品详情 getProductDetail: (offer_id: string) => { return apiService.get(`/api/products/${offer_id}/`); }, // 获取相似商品 getSimilarProducts: (offer_id: string) => { return apiService.get(`/api/products/${offer_id}/similar/?limit=5`); } }