@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
TypeScript
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;
}
}