import type { TaxItem } from './TaxItem'; import type { CreateOrderPriceAdjustment } from './CreateOrderPriceAdjustment'; import type { CreateOrderOptionItem } from './CreateOrderOptionItem'; /** * @type CreateOrderProductItems: Document representing a product item for an order. * * @property basePrice: The base price of the line item, which is the unit price not including adjustments. If the taxation policy is net, it doesn\'t include tax. If the taxation policy is gross, it includes tax. * * @property brand: The brand of the line item. * - **Max Length:** 256 * * @property grossPrice: The gross price of the line item before applying any adjustments. * * @property itemText: The text describing the item. * * @property netPrice: The net price of the line item before applying any adjustments. * * @property optionItems: The array of option items. This array can be empty. * * @property priceAdjustments: The price adjustments on product line item. * * @property productId: The id (SKU) of the product. * - **Min Length:** 1 * - **Max Length:** 100 * * @property productName: The name of the product. * - **Max Length:** 256 * * @property quantity: The ordered quantity of the products represented by this item. * * @property shipmentId: The ID of the shipment to which this item belongs. Shipment \'me\' is reserved for the system and is not valid to pass. * - **Min Length:** 1 * - **Max Length:** 256 * * @property tax: The tax on the line item before applying any adjustments. * * @property taxBasis: The amount used to calculate the tax for this item. * * @property taxItems: The individual tax items for this product line item (e.g. state tax, county tax). When omitted, only the aggregated tax/taxRate values are persisted. * * @property taxRate: The tax rate applicable to this product line item. For a 10% tax rate, the value is 0.1. Just for display. No calculation or sanity checks are applied. * */ export type CreateOrderProductItems = { basePrice: number; brand?: string; grossPrice: number; itemText?: string; netPrice: number; optionItems?: Array; priceAdjustments?: Array; productId: string; productName?: string; quantity: number; shipmentId: string; tax: number; taxBasis?: number; taxItems?: Array; taxRate?: number; } & { [key: string]: any; };