import type { ProductPriceRange } from './ProductPriceRange'; import type { ProductPriceTable } from './ProductPriceTable'; /** * @type PricesResult: Document representing the price details for a single product. Contains only price-related fields; no images, availability, variations, or other product data are included. Price fields are absent when no pricebook is configured for the requested site and locale context — only `productId` is guaranteed in the response. * * @property productId: The ID of the product. * - **Min Length:** 1 * - **Max Length:** 100 * * @property price: The effective sales price of the product. For complex products (master, set), this is the minimum price of the related child products. * * @property priceMax: The maximum sales price. For complex products (master, set), this is the maximum price of the related child products. * * @property pricePerUnit: The price per unit if defined for the product. * * @property pricePerUnitMax: The maximum price per unit, typically for a master product\'s variant. * * @property pricePerUnitUnit: The unit of measure for the per-unit price (e.g. \"kg\", \"lb\"). * - **Min Length:** 1 * - **Max Length:** 256 * * @property tieredPrices: The list of tiered prices for the product. Each entry represents a price for a given pricebook and minimum order quantity threshold. Uses the effective (lowest) winning price from the merged applicable pricebooks for each quantity tier — matching the SCAPI product endpoint\'s tieredPrices field. * * @property prices: A map of pricebook IDs to their corresponding prices for this product. * * @property currency: A three letter uppercase currency code conforming to the [ISO 4217](https://www.iso.org/iso-4217-currency-codes.html) standard, or the string `N/A` indicating that a currency is not applicable. * - **Pattern:** /^([A-Z][A-Z][A-Z]|N\/A)$/ * * @property priceRanges: Per-pricebook min/max price ranges. Only present for complex products (master, variation group, product set) that have variants with differing prices. * */ export type PricesResult = { productId: string; price?: number; priceMax?: number; pricePerUnit?: number; pricePerUnitMax?: number; pricePerUnitUnit?: string; tieredPrices?: Array; prices?: { [key: string]: number; }; currency?: string; priceRanges?: Array; } & { [key: string]: any; };