import type { Discount } from './Discount'; import type { ABTestSegment } from './ABTestSegment'; /** * @type PriceAdjustment: Document representing a price adjustment within a basket or order. Price adjustments can be assigned at the order, product, or shipping level. * * @property basePrice: The adjustment amount. If the taxation policy is net, it doesn\'t include tax. If the taxation policy is gross, it includes tax. * * @property grossPrice: The adjustment amount, including tax. * * @property itemText: The text describing the adjustment. * - **Max Length:** 256 * * @property netPrice: The adjustment amount, not including tax. * * @property tax: The tax on the adjustment amount. * * @property taxBasis: The amount used to calculate the tax for this adjustment. * * @property abTestSegment: The AB testing segment, if enabled for the site and applicable to this price adjustment. * * @property appliedDiscount: Details describing the discount on which this price adjustment is based. For adjustments not based on a discount, this value is null. * * @property campaignId: The campaign ID of the promotion on which this price adjustment is based. For adjustments not based on a promotion, this value is null. For adjustments based on an AB test promotion, this value is not null, but isn\'t meaningful. * - **Min Length:** 1 * - **Max Length:** 256 * * @property couponCode: The coupon code of the coupon on which this price adjustment is based. For adjustments not based on a coupon, this value is null. * - **Min Length:** 1 * - **Max Length:** 256 * * @property createdBy: The user who created the price adjustment. * - **Max Length:** 256 * * @property creationDate: The timestamp when the price adjustment was created. * * @property custom: A flag indicating whether this price adjustment was created by custom logic. This flag is set to true unless the price adjustment was created by the promotion engine. * * @property lastModified: The timestamp when the price adjustment was last modified. * * @property manual: A flag indicating whether this price adjustment was created by a manual process. If the price adjustment was created by the promotion engine, this value is always false. * * @property priceAdjustmentId: The price adjustment ID. * - **Min Length:** 1 * - **Max Length:** 256 * * @property promotionId: The promotion ID of the promotion on which this price adjustment is based. Custom price adjustment can assign an arbitrary promotion ID, but it must not be used by the promotion engine. If no promotion ID is specified, then the system assigns a generated ID. * - **Min Length:** 1 * - **Max Length:** 256 * * @property reasonCode: The reason code why this price adjustment was made. * - **Min Length:** 1 * - **Max Length:** 256 * */ export type PriceAdjustment = { basePrice?: number; grossPrice?: number; itemText?: string; netPrice?: number; tax?: number; taxBasis?: number; abTestSegment?: ABTestSegment; appliedDiscount?: Discount; campaignId?: string; couponCode?: string; createdBy?: string; creationDate?: string; custom?: boolean; lastModified?: string; manual?: boolean; priceAdjustmentId?: string; promotionId: string; reasonCode?: string; } & { [key: string]: any; };