UNPKG

@selldone/sdk-storefront

Version:

A TypeScript SDK to connect to your shop and build a fully functional storefront and website by simply developing a frontend web application. All backend operations are seamlessly managed by the serverless Selldone solution.

72 lines (71 loc) 2.75 kB
import { XapiProduct } from "../XapiProduct"; import { Product } from "@selldone/core-js/models/shop/product/product.model"; import { Currency } from "@selldone/core-js/enums/payment/Currency"; import { Category } from "@selldone/core-js/models/shop/category/category.model"; import type { Article } from "@selldone/core-js/models/article/article.model"; import { CrossSelling } from "@selldone/core-js/models/shop/cross-selling/cross-sell.model"; import { ProductVariant } from "@selldone/core-js"; /** * Language of returned article determine by 'X-Localization' in the header. * * @param product_id * @param options */ export default function XapiProductGet(this: XapiProduct, product_id: string | number, options?: XapiProductGetTypes.IOptions): Promise<XapiProductGetTypes.IResponse>; export declare namespace XapiProductGetTypes { interface IResponse { product: Product & { article_pack: { article?: (Article & { tags: string[]; }) | null; can_edit?: boolean; liked?: boolean; stared?: boolean; follow?: boolean; catch_power?: boolean; reported?: boolean; }; categories?: Pick<Category, "id" | "title" | "name" | "description" | "parent_id" | "icon">[]; ross_sells?: Pick<CrossSelling, any> & { target: Pick<Product, "id" | "type" | "title" | "title_en" | "icon" | "price" | "currency">; product_variants: Pick<ProductVariant, "id" | "product_id" | "color" | "style" | "volume" | "weight" | "pack" | "type" | "pricing" | "price" | "quantity" | "image">[]; }; }; campaign_id: number | null; link_id: number | null; "preferred-language": keyof typeof Currency; /** * @deprecated * Now categories will be in the product object! */ categories?: Pick<Category, "id" | "title" | "name" | "description" | "parent_id" | "icon">[]; vendors?: IVendorOptions[]; } interface IVendorOptions { id: number; name: string; description: string; icon: string; variant_id: number; price: number; currency: string; commission: number; discount: number; dis_start: Date; dis_end: Date; quantity: number; lead: number; page_id: number; } /** * Interface representing product options. * * @see getFilteredProducts for more details. */ interface IOptions { "augmented-categories"?: number; "augmented-cross-sells"?: boolean; no_article?: boolean; } }