UNPKG

@spartacus/core

Version:

Spartacus - the core framework

181 lines (180 loc) 4.43 kB
import { Image, Images } from './image.model'; import { User } from './misc.model'; export interface VariantOptionQualifier { image?: Image; name?: string; qualifier?: VariantQualifier; value?: string; } export interface PromotionRestriction { description?: string; restrictionType?: string; } export interface FeatureUnit { name?: string; symbol?: string; unitType?: string; } export interface FeatureValue { value?: string; } export interface Feature { code?: string; comparable?: boolean; description?: string; featureUnit?: FeatureUnit; featureValues?: FeatureValue[]; name?: string; range?: boolean; type?: string; } export interface VariantCategory { hasImage?: boolean; name?: string; priority?: number; } export interface VariantValueCategory { name?: string; sequence?: number; superCategories?: VariantCategory[]; } export declare enum VariantType { SIZE = "ApparelSizeVariantProduct", STYLE = "ApparelStyleVariantProduct", COLOR = "ElectronicsColorVariantProduct" } export declare enum PriceType { BUY = "BUY", FROM = "FROM" } export interface Price { currencyIso?: string; formattedValue?: string; maxQuantity?: number; minQuantity?: number; priceType?: PriceType; value?: number; } export interface Stock { isValueRounded?: boolean; stockLevel?: number; stockLevelStatus?: string; } export interface VariantOption { code?: string; priceData?: Price; stock?: Stock; url?: string; variantOptionQualifiers?: VariantOptionQualifier[]; } export interface Promotion { code?: string; couldFireMessages?: string[]; description?: string; enabled?: boolean; endDate?: Date; firedMessages?: string[]; priority?: number; productBanner?: Image; promotionGroup?: string; promotionType?: string; restrictions?: PromotionRestriction[]; startDate?: Date; title?: string; } export interface Category { code?: string; name?: string; image?: Image; url?: string; } export interface Classification { code?: string; features?: Feature[]; name?: string; } export interface FutureStock { date?: Date; formattedDate?: string; stock?: Stock; } export interface PriceRange { maxPrice?: Price; minPrice?: Price; } export interface ProductReference { description?: string; preselected?: boolean; quantity?: number; referenceType?: string; target?: Product; } export interface Review { alias?: string; comment?: string; date?: Date; headline?: string; id?: string; principal?: User; rating?: number; } export interface VariantMatrixElement { elements?: VariantMatrixElement[]; isLeaf?: boolean; parentVariantCategory?: VariantCategory; variantOption?: VariantOption; variantValueCategory?: VariantValueCategory; } export interface ProductReferences { [referenceType: string]: ProductReference[]; } export interface BaseOption { options?: VariantOption[]; selected?: VariantOption; variantType?: VariantType; } export interface Product { availableForPickup?: boolean; averageRating?: number; baseOptions?: BaseOption[]; baseProduct?: string; categories?: Category[]; classifications?: Classification[]; code?: string; description?: string; futureStocks?: FutureStock[]; images?: Images; manufacturer?: string; multidimensional?: boolean; name?: string; /** * The product slug is used to create pretty URL for links to product detail pages. * * The slug typically avoid spaces (`%20`) or other characters that are encoded in the URL. */ slug?: string; nameHtml?: string; numberOfReviews?: number; potentialPromotions?: Promotion[]; price?: Price; priceRange?: PriceRange; productReferences?: ProductReferences; purchasable?: boolean; reviews?: Review[]; stock?: Stock; summary?: string; url?: string; variantMatrix?: VariantMatrixElement[]; variantOptions?: VariantOption[]; variantType?: VariantType; volumePrices?: Price[]; volumePricesFlag?: boolean; } export declare enum VariantQualifier { SIZE = "size", STYLE = "style", COLOR = "color", THUMBNAIL = "thumbnail", PRODUCT = "product", ROLLUP_PROPERTY = "rollupProperty" }