import type { GiftCertificateItem } from './GiftCertificateItem'; import type { Address } from './Address'; import type { BonusDiscountLineItem } from './BonusDiscountLineItem'; import type { ShippingItem } from './ShippingItem'; import type { PaymentInstrument } from './PaymentInstrument'; import type { OrderExportStatus } from './OrderExportStatus'; import type { Shipment } from './Shipment'; import type { OrderConfirmationStatus } from './OrderConfirmationStatus'; import type { OrderShippingStatus } from './OrderShippingStatus'; import type { OrderStatus } from './OrderStatus'; import type { OrderPaymentStatus } from './OrderPaymentStatus'; import type { CouponItem } from './CouponItem'; import type { CustomerInfo } from './CustomerInfo'; import type { ProductItem } from './ProductItem'; import type { PriceAdjustment } from './PriceAdjustment'; /** * @type Order: Document representing an order. * * @property adjustedMerchandizeTotalTax: The total tax on products in the order, including price adjustments, but not including service charges such as shipping. * * @property adjustedShippingTotalTax: The total tax on shipping charges in the order, including shipping price adjustments. * * @property affiliatePartnerId: The affiliate partner ID. * - **Max Length:** 256 * * @property affiliatePartnerName: The affiliate partner name. * - **Max Length:** 256 * * @property billingAddress: The billing address. * * @property bonusDiscountLineItems: The bonus discount line items. * * @property businessType: The business type. * * @property cancelCode: The cancellation code. * - **Max Length:** 256 * * @property cancelDescription: The cancellation description. * - **Max Length:** 4000 * * @property channelType: The sales channel. * * @property confirmationStatus: * * @property couponItems: The coupon items. * * @property createdBy: This value depends on how the order was created. If a shopper created the order, this value is Customer. If a job created the order, this value is System. Otherwise, this value is the name of the user who created the order. * - **Max Length:** 256 * * @property creationDate: The timestamp when the order was created. * * @property customerLocale: The locale of the customer who created the order. * - **Max Length:** 256 * * @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: * * @property customerOrderReference: The customer-specific reference information. * - **Max Length:** 256 * * @property exportStatus: * * @property externalOrderNo: The external order number associated with the order. * - **Max Length:** 256 * * @property externalOrderStatus: The status from an external order associated with this order. * - **Max Length:** 256 * * @property externalOrderText: The text from an external order associated with this order. * - **Max Length:** 4000 * * @property giftCertificateItems: The gift certificate line items. * * @property globalPartyId: The Customer 360 Global Party ID associated with the shopper. * - **Max Length:** 256 * * @property invoiceNo: The invoice number. * - **Max Length:** 256 * * @property lastModified: The timestamp when the order was last modified. * * @property merchandizeTotalTax: The total tax on products in the order, not including price adjustments or service charges such as shipping. * * @property orderNo: The order number * - **Min Length:** 1 * - **Max Length:** 50 * * @property orderPriceAdjustments: The order-level price adjustments. * * @property orderTotal: The total price, including products, shipping and, tax. * * @property paymentInstruments: The payment instruments list. * * @property paymentStatus: * * @property placeDate: The timestamp when the order was placed. * * @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. * * @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. * * @property remoteHost: The IP of the host that placed this order. You can turn IP logging on or off for your site. * - **Max Length:** 40 * * @property shipments: The shipments. * * @property shippingItems: The shipping items. * * @property shippingStatus: * * @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. * * @property shippingTotalTax: The total tax on all shipping charges, not including shipping adjustments. * * @property siteId: The identifier of the site that a request is being made in the context of. Attributes might have site specific values, and some objects may only be assigned to specific sites * - **Min Length:** 1 * - **Max Length:** 32 * * @property sourceCode: The source code assigned to the basket from which this order was created. * - **Max Length:** 256 * * @property sourceCodeGroupId: The group ID of the source code assigned to the basket from which this order was created. * - **Min Length:** 1 * - **Max Length:** 256 * * @property status: * * @property taxTotal: The total tax amount. * * @property taxation: The taxation policy (gross or net). * */ export type Order = { adjustedMerchandizeTotalTax?: number; adjustedShippingTotalTax?: number; affiliatePartnerId?: string; affiliatePartnerName?: string; billingAddress?: Address; bonusDiscountLineItems?: Array; businessType?: OrderBusinessTypeEnum; cancelCode?: string; cancelDescription?: string; channelType?: OrderChannelTypeEnum; confirmationStatus?: OrderConfirmationStatus; couponItems?: Array; createdBy?: string; creationDate?: string; customerLocale?: string; currency?: string; customerInfo?: CustomerInfo; customerOrderReference?: string; exportStatus?: OrderExportStatus; externalOrderNo?: string; externalOrderStatus?: string; externalOrderText?: string; giftCertificateItems?: Array; globalPartyId?: string; invoiceNo?: string; lastModified?: string; merchandizeTotalTax?: number; orderNo: string; orderPriceAdjustments?: Array; orderTotal?: number; paymentInstruments?: Array; paymentStatus?: OrderPaymentStatus; placeDate?: string; productItems?: Array; productSubTotal?: number; productTotal?: number; remoteHost?: string; shipments?: Array; shippingItems?: Array; shippingStatus?: OrderShippingStatus; shippingTotal?: number; shippingTotalTax?: number; siteId?: string; sourceCode?: string; sourceCodeGroupId?: string; status?: OrderStatus; taxTotal?: number; taxation?: OrderTaxationEnum; } & { [key: string]: any; }; export type OrderBusinessTypeEnum = 'b2c' | 'b2b'; export type OrderChannelTypeEnum = 'storefront' | 'callcenter' | 'marketplace' | 'dss' | 'store' | 'pinterest' | 'twitter' | 'facebookads' | 'subscriptions' | 'onlinereservation' | 'customerservicecenter' | 'instagramcommerce' | 'tiktok' | 'snapchat' | 'google' | 'whatsapp' | 'youtube'; export type OrderTaxationEnum = 'gross' | 'net';