import type { GiftCertificateItem } from './GiftCertificateItem'; import type { OrderPaymentInstrument } from './OrderPaymentInstrument'; import type { BonusDiscountLineItem } from './BonusDiscountLineItem'; import type { ShippingItem } from './ShippingItem'; import type { OrderAddress } from './OrderAddress'; import type { Shipment } from './Shipment'; import type { CouponItem } from './CouponItem'; import type { CustomerInfo } from './CustomerInfo'; import type { BasketProductItem } from './BasketProductItem'; import type { GroupedTaxItem } from './GroupedTaxItem'; import type { PriceAdjustment } from './PriceAdjustment'; /** * @type Basket: Document representing a basket. * * @property adjustedMerchandizeTotalTax: The total tax on products in the shipment, including item-level price adjustments but not including service charges such as shipping. If the Discount Taxation preference is set to Tax Products and Shipping Only Based on Adjusted Price, this amount also includes prorated order-level price adjustments. It is read only. * * @property adjustedShippingTotalTax: The total tax on shipping charges in the shipment, including shipping price adjustments. It is read only. * * @property agentBasket: Is the basket created by an agent? It is read only. * * @property basketId: The unique identifier for the basket. It is read only. * * @property billingAddress: The billing address. * * @property bonusDiscountLineItems: The bonus discount line items. * * @property channelType: The sales channel. It is read only. * * @property couponItems: The coupon items. * * @property creationDate: The timestamp when the basket was created. It is read only. * * @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 customerInfo: The customer information, if the customer is logged in. * * @property giftCertificateItems: The gift certificate line items. * * @property groupedTaxItems: Tax values that are grouped and summed based on the tax rate. The tax totals of the line items with the same tax rate are grouped together and summed up. This does not affect the calculation in any way. It is read only. * * @property inventoryReservationExpiry: The expiration datetime of the inventory reservation. It is read only. * * @property lastModified: The timestamp when the basket was last modified. It is read only. * * @property merchandizeTotalTax: The total products tax in the purchase currency. Merchandise total price represents the sum of the product prices before services (such as shipping) or adjustments from promotions have been added. It is read only. * * @property orderPriceAdjustments: The order-level price adjustments. * * @property orderTotal: The total price, including products, shipping and tax. It is read only. * * @property paymentInstruments: The payment instruments list. * * @property productItems: The product items. * * @property productSubTotal: The total price of all products including item-level adjustments, but not including order-level adjustments or shipping charges. If the taxation policy is net, it doesn\'t include tax. If the taxation policy is gross, it includes tax. It is read only. * * @property productTotal: The total price of all products including adjustments, but not including shipping charges. If the taxation policy is net, it doesn\'t include tax. If the taxation policy is gross, it includes tax. It is read only. * * @property shipments: The shipments. * * @property shippingItems: The shipping items. * * @property shippingTotal: The total price of all shipping charges, including shipping adjustments. If the taxation policy is net, it doesn\'t include tax. If the taxation policy is gross, it includes tax. It is read only. * * @property shippingTotalTax: The total tax on all shipping charges, not including shipping adjustments. It is read only. * * @property sourceCode: The source code assigned to the basket. It is read only. * * @property taxTotal: The total tax amount. It is read only. * * @property taxation: The taxation policy (gross or net). It is read only. * * @property taxRoundedAtGroup: If the tax is rounded at the group level, this is set to true. If the tax is rounded at the item or unit level, it is set to false. * * @property temporaryBasket: If the created basket is a temporary basket, this is set to true. Otherwise, it is set to false. * */ export type Basket = { adjustedMerchandizeTotalTax?: number; adjustedShippingTotalTax?: number; agentBasket?: boolean; basketId?: string; billingAddress?: OrderAddress; bonusDiscountLineItems?: Array; channelType?: BasketChannelTypeEnum; couponItems?: Array; creationDate?: string; currency?: string; customerInfo?: CustomerInfo; giftCertificateItems?: Array; groupedTaxItems?: Array; inventoryReservationExpiry?: string; lastModified?: string; merchandizeTotalTax?: number; orderPriceAdjustments?: Array; orderTotal?: number; paymentInstruments?: Array; productItems?: Array; productSubTotal?: number; productTotal?: number; shipments?: Array; shippingItems?: Array; shippingTotal?: number; shippingTotalTax?: number; sourceCode?: string; taxTotal?: number; taxation?: BasketTaxationEnum; taxRoundedAtGroup?: boolean; temporaryBasket?: boolean; } & { [key: string]: any; }; export type BasketChannelTypeEnum = 'storefront' | 'callcenter' | 'marketplace' | 'dss' | 'store' | 'pinterest' | 'twitter' | 'facebookads' | 'subscriptions' | 'onlinereservation' | 'customerservicecenter' | 'instagramcommerce' | 'tiktok' | 'snapchat' | 'google' | 'whatsapp' | 'youtube'; export type BasketTaxationEnum = 'gross' | 'net';