ProductsModule: { assignments: { addProxyAssignment: ((productId: string, params: { proxyId: string; vectors: ProductConfiguration[] }, userId?: string) => Promise<string>); removeAssignment: ((productId: string, params: { vectors: ProductConfiguration[] }, userId?: string) => Promise<number>) }; bundleItems: { addBundleItem: ((productId: string, doc: ProductBundleItem, userId?: string) => Promise<string>); removeBundleItem: ((productId: string, index: number, userId?: string) => Promise<ProductBundleItem>) }; calculate: ((pricingContext: ProductPricingContext & { item: OrderPosition }, requestContext: Context) => Promise<ProductPricingCalculation[]>); count: ((query: ProductQuery) => Promise<number>); create: ((doc: Product & { locale: string; title: string }, userId?: string, options?: { autopublish?: boolean }) => Promise<Product>); delete: ((productId: string, userId?: string) => Promise<number>); deleteProductsPermanently: ((params: { excludedProductIds?: _ID[]; productId?: string }) => Promise<number>); findProduct: ((params: { productId?: string; sku?: string; slug?: string }) => Promise<Product>); findProducts: ((params: ProductQuery & { limit?: number; offset?: number; sort?: SortOption[] }, options?: FindOptions) => Promise<Product[]>); interface: ((productDiscount: ProductDiscount) => IDiscountAdapter); isActive: ((product: Product) => boolean); isDraft: ((product: Product) => boolean); media: ProductMediaModule; normalizedStatus: ((product: Product) => ProductStatus); prices: { catalogPriceRange: ((product: Product, params: { country: string; currency: string; includeInactive?: boolean; quantity?: number; vectors: ProductConfiguration[] }) => Promise<ProductPriceRange>); catalogPrices: ((prodct: Product) => ProductPrice[]); catalogPricesLeveled: ((product: Product, params: { country: string; currency: string }) => Promise<{ maxQuantity: number; minQuantity: number; price: ProductPrice }[]>); price: ((product: Product, params: { country: string; currency: string; quantity?: number }) => Promise<ProductPrice>); rates: { getRate: any; updateRate: any }; simulatedPriceRange: ((prodct: Product, params: { country: string; currency: string; includeInactive?: boolean; quantity?: number; useNetPrice?: boolean; vectors: ProductConfiguration[] }, requestContext: Context) => Promise<ProductPriceRange>); userPrice: ((prodct: Product, params: { configuration?: ProductConfiguration[]; country: string; currency: string; quantity?: number; useNetPrice?: boolean }, requestContext: Context) => Promise<ProductPrice>) }; pricingSheet: ((params: { calculation: ProductPricingCalculation[]; currency: string; quantity: number }) => IProductPricingSheet); productExists: ((params: { productId?: string; slug?: string }) => Promise<boolean>); proxyAssignments: ((product: Product, options: { includeInactive?: boolean }) => Promise<{ assignment: ProductAssignment; product: Product }[]>); proxyProducts: ((product: Product, vectors: ProductConfiguration[], options: { includeInactive?: boolean }) => Promise<Product[]>); publish: ((product: Product, userId?: string) => Promise<boolean>); resolveOrderableProduct: ((product: Product, params: { configuration?: ProductConfiguration[] }, requestContext: Context) => Promise<Product>); reviews: ProductReviewsModule; search: { buildActiveDraftStatusFilter: (() => Query); buildActiveStatusFilter: (() => Query); countFilteredProducts: ((params: { productIds: string[]; productSelector: Query }) => Promise<number>); findFilteredProducts: ((params: { limit?: number; offset?: number; productIds: string[]; productSelector: Query; sort?: FindOptions["sort"] }) => Promise<Product[]>) }; texts: { deleteMany: ((productId: string, userId?: string) => Promise<number>); findLocalizedText: ((params: { locale?: string; productId: string }) => Promise<ProductText>); findTexts: ((query: Query, options?: FindOptions) => Promise<ProductText[]>); makeSlug: ((data: { productId: string; slug?: string; title: string }) => Promise<string>); searchTexts: (({ searchText: string }: any) => Promise<string[]>); updateTexts: ((productId: string, texts: Omit<ProductText, "productId" | "authorId">[], userId?: string) => Promise<ProductText[]>); upsertLocalizedText: ((productId: string, locale: string, text: Omit<ProductText, "productId" | "locale" | "authorId">, userId?: string) => Promise<ProductText>) }; unpublish: ((product: Product, userId?: string) => Promise<boolean>); update: ((productId: string, doc: Update<Product>, userId: string) => Promise<string>); variations: ProductVariationsModule }

Type declaration

  • assignments: { addProxyAssignment: ((productId: string, params: { proxyId: string; vectors: ProductConfiguration[] }, userId?: string) => Promise<string>); removeAssignment: ((productId: string, params: { vectors: ProductConfiguration[] }, userId?: string) => Promise<number>) }
    • addProxyAssignment: ((productId: string, params: { proxyId: string; vectors: ProductConfiguration[] }, userId?: string) => Promise<string>)
        • (productId: string, params: { proxyId: string; vectors: ProductConfiguration[] }, userId?: string): Promise<string>
        • Parameters

          Returns Promise<string>

    • removeAssignment: ((productId: string, params: { vectors: ProductConfiguration[] }, userId?: string) => Promise<number>)
  • bundleItems: { addBundleItem: ((productId: string, doc: ProductBundleItem, userId?: string) => Promise<string>); removeBundleItem: ((productId: string, index: number, userId?: string) => Promise<ProductBundleItem>) }
    • addBundleItem: ((productId: string, doc: ProductBundleItem, userId?: string) => Promise<string>)
        • (productId: string, doc: ProductBundleItem, userId?: string): Promise<string>
        • Parameters

          Returns Promise<string>

    • removeBundleItem: ((productId: string, index: number, userId?: string) => Promise<ProductBundleItem>)
        • (productId: string, index: number, userId?: string): Promise<ProductBundleItem>
        • Parameters

          • productId: string
          • index: number
          • Optional userId: string

          Returns Promise<ProductBundleItem>

  • calculate: ((pricingContext: ProductPricingContext & { item: OrderPosition }, requestContext: Context) => Promise<ProductPricingCalculation[]>)
  • count: ((query: ProductQuery) => Promise<number>)
  • create: ((doc: Product & { locale: string; title: string }, userId?: string, options?: { autopublish?: boolean }) => Promise<Product>)
      • (doc: Product & { locale: string; title: string }, userId?: string, options?: { autopublish?: boolean }): Promise<Product>
      • Parameters

        • doc: Product & { locale: string; title: string }
        • Optional userId: string
        • Optional options: { autopublish?: boolean }
          • Optional autopublish?: boolean

        Returns Promise<Product>

  • delete: ((productId: string, userId?: string) => Promise<number>)
      • (productId: string, userId?: string): Promise<number>
      • Parameters

        • productId: string
        • Optional userId: string

        Returns Promise<number>

  • deleteProductsPermanently: ((params: { excludedProductIds?: _ID[]; productId?: string }) => Promise<number>)
      • (params: { excludedProductIds?: _ID[]; productId?: string }): Promise<number>
      • Parameters

        • params: { excludedProductIds?: _ID[]; productId?: string }
          • Optional excludedProductIds?: _ID[]
          • Optional productId?: string

        Returns Promise<number>

  • findProduct: ((params: { productId?: string; sku?: string; slug?: string }) => Promise<Product>)
      • (params: { productId?: string; sku?: string; slug?: string }): Promise<Product>
      • Parameters

        • params: { productId?: string; sku?: string; slug?: string }
          • Optional productId?: string
          • Optional sku?: string
          • Optional slug?: string

        Returns Promise<Product>

  • findProducts: ((params: ProductQuery & { limit?: number; offset?: number; sort?: SortOption[] }, options?: FindOptions) => Promise<Product[]>)
  • interface: ((productDiscount: ProductDiscount) => IDiscountAdapter)
  • isActive: ((product: Product) => boolean)
      • (product: Product): boolean
      • Parameters

        Returns boolean

  • isDraft: ((product: Product) => boolean)
      • (product: Product): boolean
      • Parameters

        Returns boolean

  • media: ProductMediaModule
  • normalizedStatus: ((product: Product) => ProductStatus)
  • prices: { catalogPriceRange: ((product: Product, params: { country: string; currency: string; includeInactive?: boolean; quantity?: number; vectors: ProductConfiguration[] }) => Promise<ProductPriceRange>); catalogPrices: ((prodct: Product) => ProductPrice[]); catalogPricesLeveled: ((product: Product, params: { country: string; currency: string }) => Promise<{ maxQuantity: number; minQuantity: number; price: ProductPrice }[]>); price: ((product: Product, params: { country: string; currency: string; quantity?: number }) => Promise<ProductPrice>); rates: { getRate: any; updateRate: any }; simulatedPriceRange: ((prodct: Product, params: { country: string; currency: string; includeInactive?: boolean; quantity?: number; useNetPrice?: boolean; vectors: ProductConfiguration[] }, requestContext: Context) => Promise<ProductPriceRange>); userPrice: ((prodct: Product, params: { configuration?: ProductConfiguration[]; country: string; currency: string; quantity?: number; useNetPrice?: boolean }, requestContext: Context) => Promise<ProductPrice>) }
    • catalogPriceRange: ((product: Product, params: { country: string; currency: string; includeInactive?: boolean; quantity?: number; vectors: ProductConfiguration[] }) => Promise<ProductPriceRange>)
    • catalogPrices: ((prodct: Product) => ProductPrice[])
    • catalogPricesLeveled: ((product: Product, params: { country: string; currency: string }) => Promise<{ maxQuantity: number; minQuantity: number; price: ProductPrice }[]>)
        • (product: Product, params: { country: string; currency: string }): Promise<{ maxQuantity: number; minQuantity: number; price: ProductPrice }[]>
        • Parameters

          • product: Product
          • params: { country: string; currency: string }
            • country: string
            • currency: string

          Returns Promise<{ maxQuantity: number; minQuantity: number; price: ProductPrice }[]>

    • price: ((product: Product, params: { country: string; currency: string; quantity?: number }) => Promise<ProductPrice>)
        • (product: Product, params: { country: string; currency: string; quantity?: number }): Promise<ProductPrice>
        • Parameters

          • product: Product
          • params: { country: string; currency: string; quantity?: number }
            • country: string
            • currency: string
            • Optional quantity?: number

          Returns Promise<ProductPrice>

    • rates: { getRate: any; updateRate: any }
      • getRate:function
        • Parameters

          • baseCurrency: string
          • quoteCurrency: string
          • maxAge: number

          Returns Promise<number>

      • updateRate:function
    • simulatedPriceRange: ((prodct: Product, params: { country: string; currency: string; includeInactive?: boolean; quantity?: number; useNetPrice?: boolean; vectors: ProductConfiguration[] }, requestContext: Context) => Promise<ProductPriceRange>)
        • (prodct: Product, params: { country: string; currency: string; includeInactive?: boolean; quantity?: number; useNetPrice?: boolean; vectors: ProductConfiguration[] }, requestContext: Context): Promise<ProductPriceRange>
        • Parameters

          • prodct: Product
          • params: { country: string; currency: string; includeInactive?: boolean; quantity?: number; useNetPrice?: boolean; vectors: ProductConfiguration[] }
            • country: string
            • currency: string
            • Optional includeInactive?: boolean
            • Optional quantity?: number
            • Optional useNetPrice?: boolean
            • vectors: ProductConfiguration[]
          • requestContext: Context

          Returns Promise<ProductPriceRange>

    • userPrice: ((prodct: Product, params: { configuration?: ProductConfiguration[]; country: string; currency: string; quantity?: number; useNetPrice?: boolean }, requestContext: Context) => Promise<ProductPrice>)
  • pricingSheet: ((params: { calculation: ProductPricingCalculation[]; currency: string; quantity: number }) => IProductPricingSheet)
  • productExists: ((params: { productId?: string; slug?: string }) => Promise<boolean>)
      • (params: { productId?: string; slug?: string }): Promise<boolean>
      • Parameters

        • params: { productId?: string; slug?: string }
          • Optional productId?: string
          • Optional slug?: string

        Returns Promise<boolean>

  • proxyAssignments: ((product: Product, options: { includeInactive?: boolean }) => Promise<{ assignment: ProductAssignment; product: Product }[]>)
  • proxyProducts: ((product: Product, vectors: ProductConfiguration[], options: { includeInactive?: boolean }) => Promise<Product[]>)
  • publish: ((product: Product, userId?: string) => Promise<boolean>)
      • (product: Product, userId?: string): Promise<boolean>
      • Parameters

        • product: Product
        • Optional userId: string

        Returns Promise<boolean>

  • resolveOrderableProduct: ((product: Product, params: { configuration?: ProductConfiguration[] }, requestContext: Context) => Promise<Product>)
  • reviews: ProductReviewsModule
  • search: { buildActiveDraftStatusFilter: (() => Query); buildActiveStatusFilter: (() => Query); countFilteredProducts: ((params: { productIds: string[]; productSelector: Query }) => Promise<number>); findFilteredProducts: ((params: { limit?: number; offset?: number; productIds: string[]; productSelector: Query; sort?: FindOptions["sort"] }) => Promise<Product[]>) }
    • buildActiveDraftStatusFilter: (() => Query)
    • buildActiveStatusFilter: (() => Query)
    • countFilteredProducts: ((params: { productIds: string[]; productSelector: Query }) => Promise<number>)
        • (params: { productIds: string[]; productSelector: Query }): Promise<number>
        • Parameters

          • params: { productIds: string[]; productSelector: Query }
            • productIds: string[]
            • productSelector: Query

          Returns Promise<number>

    • findFilteredProducts: ((params: { limit?: number; offset?: number; productIds: string[]; productSelector: Query; sort?: FindOptions["sort"] }) => Promise<Product[]>)
        • (params: { limit?: number; offset?: number; productIds: string[]; productSelector: Query; sort?: FindOptions["sort"] }): Promise<Product[]>
        • Parameters

          • params: { limit?: number; offset?: number; productIds: string[]; productSelector: Query; sort?: FindOptions["sort"] }
            • Optional limit?: number
            • Optional offset?: number
            • productIds: string[]
            • productSelector: Query
            • Optional sort?: FindOptions["sort"]

          Returns Promise<Product[]>

  • texts: { deleteMany: ((productId: string, userId?: string) => Promise<number>); findLocalizedText: ((params: { locale?: string; productId: string }) => Promise<ProductText>); findTexts: ((query: Query, options?: FindOptions) => Promise<ProductText[]>); makeSlug: ((data: { productId: string; slug?: string; title: string }) => Promise<string>); searchTexts: (({ searchText: string }: any) => Promise<string[]>); updateTexts: ((productId: string, texts: Omit<ProductText, "productId" | "authorId">[], userId?: string) => Promise<ProductText[]>); upsertLocalizedText: ((productId: string, locale: string, text: Omit<ProductText, "productId" | "locale" | "authorId">, userId?: string) => Promise<ProductText>) }
    • deleteMany: ((productId: string, userId?: string) => Promise<number>)
        • (productId: string, userId?: string): Promise<number>
        • Parameters

          • productId: string
          • Optional userId: string

          Returns Promise<number>

    • findLocalizedText: ((params: { locale?: string; productId: string }) => Promise<ProductText>)
        • (params: { locale?: string; productId: string }): Promise<ProductText>
        • Parameters

          • params: { locale?: string; productId: string }
            • Optional locale?: string
            • productId: string

          Returns Promise<ProductText>

    • findTexts: ((query: Query, options?: FindOptions) => Promise<ProductText[]>)
    • makeSlug: ((data: { productId: string; slug?: string; title: string }) => Promise<string>)
        • (data: { productId: string; slug?: string; title: string }): Promise<string>
        • Parameters

          • data: { productId: string; slug?: string; title: string }
            • productId: string
            • Optional slug?: string
            • title: string

          Returns Promise<string>

    • searchTexts: (({ searchText: string }: any) => Promise<string[]>)
        • ({ searchText: string }: any): Promise<string[]>
        • Parameters

          • { searchText: string }: any

          Returns Promise<string[]>

    • updateTexts: ((productId: string, texts: Omit<ProductText, "productId" | "authorId">[], userId?: string) => Promise<ProductText[]>)
        • (productId: string, texts: Omit<ProductText, "productId" | "authorId">[], userId?: string): Promise<ProductText[]>
        • Parameters

          • productId: string
          • texts: Omit<ProductText, "productId" | "authorId">[]
          • Optional userId: string

          Returns Promise<ProductText[]>

    • upsertLocalizedText: ((productId: string, locale: string, text: Omit<ProductText, "productId" | "locale" | "authorId">, userId?: string) => Promise<ProductText>)
        • (productId: string, locale: string, text: Omit<ProductText, "productId" | "locale" | "authorId">, userId?: string): Promise<ProductText>
        • Parameters

          • productId: string
          • locale: string
          • text: Omit<ProductText, "productId" | "locale" | "authorId">
          • Optional userId: string

          Returns Promise<ProductText>

  • unpublish: ((product: Product, userId?: string) => Promise<boolean>)
      • (product: Product, userId?: string): Promise<boolean>
      • Parameters

        • product: Product
        • Optional userId: string

        Returns Promise<boolean>

  • update: ((productId: string, doc: Update<Product>, userId: string) => Promise<string>)
      • (productId: string, doc: Update<Product>, userId: string): Promise<string>
      • Parameters

        • productId: string
        • doc: Update<Product>
        • userId: string

        Returns Promise<string>

  • variations: ProductVariationsModule