{"version":3,"file":"static/js/d6485229aab251530a07.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/../../src/index.ts?0e3e","webpack://Msdyn365.Commerce.Online/../../src/DataActions/StoreOperationsDataActions.g.ts?85ae","webpack://Msdyn365.Commerce.Online/../../src/DataActions/ProductsDataActions.g.ts?8ea2","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CartsDataActions.g.ts?f2f8","webpack://Msdyn365.Commerce.Online/../../src/Entities/CommerceTypes.g.ts?34ee","webpack://Msdyn365.Commerce.Online/../src/retail-action.ts?fc97","webpack://Msdyn365.Commerce.Online/../src/DataServiceQuery.ts?8aab","webpack://Msdyn365.Commerce.Online/../../src/DataActions/ProductListsDataActions.g.ts?81df","webpack://Msdyn365.Commerce.Online/../../src/DataActions/OrgUnitsDataActions.g.ts?c88f","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.array.sort.js?f005","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CustomersDataActions.g.ts?081a","webpack://Msdyn365.Commerce.Online/../../src/DataActions/BusinessPartnerUsersDataActions.g.ts?c8e5","webpack://Msdyn365.Commerce.Online/../../src/action-registrar.ts?ed12","webpack://Msdyn365.Commerce.Online/../../src/create-data-action.vnext.ts?cb4f","webpack://Msdyn365.Commerce.Online/../../src/wrap-data-action.ts?c6a2","webpack://Msdyn365.Commerce.Online/../../src/create-data-action-hook.ts?619e","webpack://Msdyn365.Commerce.Online/../../src/action-error.ts?76a5","webpack://Msdyn365.Commerce.Online/../../src/action-runtime-utils.ts?df0b","webpack://Msdyn365.Commerce.Online/../../../src/cache/retail-cache-helper.ts?35f4","webpack://Msdyn365.Commerce.Online/../../src/event-emitter.ts?da67","webpack://Msdyn365.Commerce.Online/../../src/action-executor.ts?e3c4","webpack://Msdyn365.Commerce.Online/../../../src/actions/get-catalogs.ts?b35c","webpack://Msdyn365.Commerce.Online/../../src/helpers.ts?e5d2","webpack://Msdyn365.Commerce.Online/../../src/action-context.ts?0ab9","webpack://Msdyn365.Commerce.Online/../../src/mock-helper.ts?6126","webpack://Msdyn365.Commerce.Online/../../../src/actions/get-media-locations.ts?b49d","webpack://Msdyn365.Commerce.Online/../../../src/actions/get-additional-media-locations.ts?d6e0","webpack://Msdyn365.Commerce.Online/../../../src/actions/get-customer.ts?6b9b","webpack://Msdyn365.Commerce.Online/../../src/DataActions/BusinessPartnersDataActions.g.ts?502e","webpack://Msdyn365.Commerce.Online/../../src/extensions/StringExtensions.ts?6e3d","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.parse-float.js?84d3","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.promise.finally.js?e4b4","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CommerceListsDataActions.g.ts?d44a","webpack://Msdyn365.Commerce.Online/../../src/exceptions/ProxyErrorSDK.ts?c06e","webpack://Msdyn365.Commerce.Online/../../src/exceptions/ProxyError.ts?f6d3","webpack://Msdyn365.Commerce.Online/../../src/logging/ConsoleEventWriter.ts?1638","webpack://Msdyn365.Commerce.Online/../../src/logging/RetailLogger.ts?9e7e","webpack://Msdyn365.Commerce.Online/../../src/logging/Tracer.ts?faf4","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/number-parse-float.js?9778","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/environment-ff-version.js?f461","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/environment-is-ie-or-edge.js?1053","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/environment-webkit-version.js?f8b1","webpack://Msdyn365.Commerce.Online/../../src/ICache.ts?b706","webpack://Msdyn365.Commerce.Online/../../src/cache-utils.ts?471a","webpack://Msdyn365.Commerce.Online/../../src/request-cache.ts?b274","webpack://Msdyn365.Commerce.Online/../src/async-result.ts?1ea5","webpack://Msdyn365.Commerce.Online/../../src/exceptions/ErrorHelper.ts?deca","webpack://Msdyn365.Commerce.Online/../../src/externals/helper.ts?18b4","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CatalogsDataActions.g.ts?8b5c","webpack://Msdyn365.Commerce.Online/../../src/DataActions/CategoriesDataActions.g.ts?d9f0","webpack://Msdyn365.Commerce.Online/../../src/exceptions/ErrorParser.ts?d883","webpack://Msdyn365.Commerce.Online/../../src/externals/DataJS.New.ts?f131","webpack://Msdyn365.Commerce.Online/../../src/externals/handler.ts?a98d","webpack://Msdyn365.Commerce.Online/../../src/DataActions/RecommendationsDataActions.g.ts?31c0","webpack://Msdyn365.Commerce.Online/../../src/DataActions/SalesOrdersDataActions.g.ts?4e0c","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/internals/delete-property-or-throw.js?ca65","webpack://Msdyn365.Commerce.Online/../../src/Interfaces/ICache.ts?0279","webpack://Msdyn365.Commerce.Online/../src/DataServiceRequest.ts?423e","webpack://Msdyn365.Commerce.Online/../../src/DataActions/ScanResultsDataActions.g.ts?42cd"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\nimport { ProductSearchResult } from '@msdyn365-commerce/retail-proxy';\n\nexport * from '@msdyn365-commerce/core-internal';\nexport { ITelemetry, LogLevel, TelemetryEvent, TelemetryEventContent } from '@msdyn365-commerce/telemetry-internal';\nexport {\n ActionContext,\n buildHydratedMockActionContext,\n createDataAction,\n createObservableDataAction,\n createDataActionHook,\n getCatalogName,\n getMediaLocationsForProductAction,\n MediaLocationsInput,\n MediaLocationType,\n getAdditionalMediaLocationsForProductAction,\n getCustomerActionDataAction,\n GetCustomerInput,\n createGetCustomerInput\n} from '@msdyn365-commerce/action-internal';\nexport * from '@msdyn365-commerce/retail-proxy/dist/async-result';\nexport * from '@msdyn365-commerce/retail-proxy/dist/data-types';\n// Workaround to export ProudctList type found in retail-proxy to add additional typed properties so that users dont have to\n// update their retail-proxy to take advantage of these new typed properties\nexport interface IProductList {\n products: ProductSearchResult[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n listMetadata: any;\n listType: string;\n recommendationListId: string;\n discountIds?: string[];\n}\n\nexport default msdyn365Commerce;\n","\n // \n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { DeliveryOption, Affiliation, ReasonCodeLine, DiscountsSearchCriteria, Promotion, PaymentMerchantInformation, StoreSafe, ShiftReconciliationLineRetrievalCriteria, ShiftReconciliationLine, ReceiptMask, SearchSuggestionCriteria, SearchSuggestion, DeviceActivationResult, CreateHardwareStationTokenResult, ValidateHardwareStationTokenResult, Barcode, ButtonGrid, GetButtonGridsByIdsCriteria, MediaBlob, CardTypeInfo, CityInfo, CountryRegionInfo, OnlineChannel, CountyInfo, CreditMemo, TerminalDataDownloadRequestInfo, DataDownloadParameters, TerminalDataUploadRequestInfo, DataUploadParameters, DownloadSession, OfflineTerminalState, NumberSequenceSeedData, ReceiptNumberResetInfo, LoyaltyRewardPointActivity, CurrencyRequest, CurrencyAmount, DiscountCode, DistrictInfo, HardwareStationProfile, HardwareProfile, LocalizedString, OperationPermission, ReasonCode, CommerceProperty, ReportDataSet, IncomeExpenseAccount, StateProvinceInfo, ZipCodeInfo, KitTransaction, LoyaltyCard, LoyaltyCardSearchCriteria, LoyaltyCardTransaction, TransactionSearchCriteria, Transaction, GiftCard, NonSalesTransaction, DropAndDeclareTransaction, TaxOverride, CustomerBalances, NameValuePair, LinkToExistingCustomerResult, OfflineSyncStatsLine, Shift, StorageAccessToken, Framework, TaskGuidesSearchResult, Recording, AttributeDefinitionCriteria, AttributeDefinition, AttributeGroupDefinitionCriteria, AttributeGroupDefinition, FiscalTransaction, SalesOrder, AuditEvent, InventoryAvailableToPromise, NotificationItem, PurchaseHistorySearchCriteria, PurchaseHistory, FiscalIntegrationDocumentRetrievalCriteria, FiscalIntegrationDocument, FiscalIntegrationRegistrationResult, FiscalIntegrationRegistrationProcess, FiscalIntegrationSupportedEvents, FiscalIntegrationTechnicalProfile, FiscalIntegrationFiscalRegistrationProcessSummary, FiscalIntegrationTechnicalProfileSearchCriteria, FiscalIntegrationServiceInfo, FiscalIntegrationServiceStatus, FiscalIntegrationServiceCommunicationResult, FeatureState, FiscalIntegrationSequentialSignatureData, PickupTimeslotAvailabilitySearchCriteria, PickupTimeslotAvailability, Cart, VendorSearchCriteria, Vendor, VendorValidationResult, BusinessVerticalsIndia, CopilotResponse, OperationalInsightsConfiguration, CashDeclaration, CustomerGroup, ChannelDeliveryOptionConfiguration, ChannelIdentity, OnlineChannelAzureB2CConfiguration, ChannelSearchCriteria, EnvironmentConfiguration, OrderManagementConfiguration, PaymentConfiguration, SearchConfiguration, ExtensionPackageDefinition, ExtensionProfile, DeviceConfiguration, VisualProfile, SupportedLanguage, SalesTaxGroup, TenderType, UnitOfMeasure, Currency, CommissionSalesGroup, ChannelInventoryConfiguration, ChannelMerchandisingConfiguration, ChannelPurchaseConfiguration, InventoryJournalNameSearchCriteria, InventoryJournalName, Device, UserDefinedSecretCertificateResult, ExtensibleEnumerationContainer, AddressPurpose, ReturnPolicy, EmailReceiptSettings, FiscalIntegrationComplianceResult, } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n function storeQuery(): DataServiceQuery {\n return new DataServiceQuery();\n }\n \n export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeliveryOptions', false, \n 'DeliveryOptionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DeliveryOption'}, { });\n }\n\n export function getDeliveryOptionsAsync(context: IContext):AsyncResult {\n const request = createGetDeliveryOptionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createRoundAmountByTenderTypeInput(amount: number, tenderTypeId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RoundAmountByTenderType', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {amount: amount, tenderTypeId: tenderTypeId });\n }\n\n export function roundAmountByTenderTypeAsync(context: IContext, amount: number, tenderTypeId?: string | null):AsyncResult {\n const request = createRoundAmountByTenderTypeInput(amount, tenderTypeId);\n return executeAction(request, context);\n }\n \n export function createGetAffiliationsByNameInput(queryResultSettings: IQueryResultSettings, affiliationNames?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAffiliationsByName', true, \n 'AffiliationClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Affiliation'}, {affiliationNames: affiliationNames });\n }\n\n export function getAffiliationsByNameAsync(context: IContext, affiliationNames?: string[] | null):AsyncResult {\n const request = createGetAffiliationsByNameInput(context.queryResultSettings, affiliationNames);\n return executeAction(request, context);\n }\n \n export function createVoidSuspendedTransactionsInput(suspendedCartIds?: string[] | null, shiftId?: number | null, shiftTerminalId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('VoidSuspendedTransactions', true, '', '', { bypassCache: 'get', returnEntity: ''}, {suspendedCartIds: suspendedCartIds, shiftId: shiftId, shiftTerminalId: shiftTerminalId, reasonCodeLines: reasonCodeLines });\n }\n\n export function voidSuspendedTransactionsAsync(context: IContext, suspendedCartIds?: string[] | null, shiftId?: number | null, shiftTerminalId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult {\n const request = createVoidSuspendedTransactionsInput(suspendedCartIds, shiftId, shiftTerminalId, reasonCodeLines);\n return executeAction(request, context);\n }\n \n export function createGetAvailablePromotionsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: DiscountsSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailablePromotions', true, \n 'PromotionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Promotion'}, {searchCriteria: searchCriteria });\n }\n\n export function getAvailablePromotionsAsync(context: IContext, searchCriteria?: DiscountsSearchCriteria | null):AsyncResult {\n const request = createGetAvailablePromotionsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetMerchantPropertiesByServiceAccountIdInput(queryResultSettings: IQueryResultSettings, serviceAccountIds?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMerchantPropertiesByServiceAccountId', true, \n 'PaymentMerchantInformationClass'\n , 'true', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {serviceAccountIds: serviceAccountIds });\n }\n\n export function getMerchantPropertiesByServiceAccountIdAsync(context: IContext, serviceAccountIds?: string[] | null):AsyncResult {\n const request = createGetMerchantPropertiesByServiceAccountIdInput(context.queryResultSettings, serviceAccountIds);\n return executeAction(request, context);\n }\n \n export function createGetStoreSafesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetStoreSafes', true, \n 'StoreSafeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'StoreSafe'}, { });\n }\n\n export function getStoreSafesAsync(context: IContext):AsyncResult {\n const request = createGetStoreSafesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetShiftReconciliationLinesInput(queryResultSettings: IQueryResultSettings, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetShiftReconciliationLines', true, \n 'ShiftReconciliationLineClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ShiftReconciliationLine'}, {shiftReconciliationLineRetrievalCriteria: shiftReconciliationLineRetrievalCriteria });\n }\n\n export function getShiftReconciliationLinesAsync(context: IContext, shiftReconciliationLineRetrievalCriteria?: ShiftReconciliationLineRetrievalCriteria | null):AsyncResult {\n const request = createGetShiftReconciliationLinesInput(context.queryResultSettings, shiftReconciliationLineRetrievalCriteria);\n return executeAction(request, context);\n }\n \n export function createReconcileLinesInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ReconcileLines', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines, Description: description });\n }\n\n export function reconcileLinesAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null, description?: string | null):AsyncResult {\n const request = createReconcileLinesInput(shiftReconciliationLines, description);\n return executeAction(request, context);\n }\n \n export function createUndoReconciliationInput(shiftReconciliationLines?: ShiftReconciliationLine[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UndoReconciliation', true, '', '', { bypassCache: 'get', returnEntity: ''}, {shiftReconciliationLines: shiftReconciliationLines });\n }\n\n export function undoReconciliationAsync(context: IContext, shiftReconciliationLines?: ShiftReconciliationLine[] | null):AsyncResult {\n const request = createUndoReconciliationInput(shiftReconciliationLines);\n return executeAction(request, context);\n }\n \n export function createGetReceiptMasksInput(queryResultSettings: IQueryResultSettings, receiptTransactionType?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptMasks', true, \n 'ReceiptMaskClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReceiptMask'}, {receiptTransactionType: receiptTransactionType });\n }\n\n export function getReceiptMasksAsync(context: IContext, receiptTransactionType?: number | null):AsyncResult {\n const request = createGetReceiptMasksInput(context.queryResultSettings, receiptTransactionType);\n return executeAction(request, context);\n }\n \n export function createGetSearchSuggestionsInput(queryResultSettings: IQueryResultSettings, searchSuggestionCriteria?: SearchSuggestionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSearchSuggestions', true, \n 'SearchSuggestionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'SearchSuggestion'}, {searchSuggestionCriteria: searchSuggestionCriteria });\n }\n\n export function getSearchSuggestionsAsync(context: IContext, searchSuggestionCriteria?: SearchSuggestionCriteria | null):AsyncResult {\n const request = createGetSearchSuggestionsInput(context.queryResultSettings, searchSuggestionCriteria);\n return executeAction(request, context);\n }\n \n export function createStartSessionInput(transactionId: string | null, overrideSession?: boolean): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('StartSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId, overrideSession: overrideSession });\n }\n\n export function startSessionAsync(context: IContext, transactionId: string | null, overrideSession?: boolean):AsyncResult {\n const request = createStartSessionInput(transactionId, overrideSession);\n return executeAction(request, context);\n }\n \n export function createEndSessionInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('EndSession', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function endSessionAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createEndSessionInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createActivateDeviceInput(deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ActivateDevice', true, \n 'DeviceActivationResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, forceActivate: forceActivate, deviceType: deviceType });\n }\n\n export function activateDeviceAsync(context: IContext, deviceNumber: string | null, terminalId: string | null, deviceId: string | null, forceActivate: boolean, deviceType?: number | null):AsyncResult {\n const request = createActivateDeviceInput(deviceNumber, terminalId, deviceId, forceActivate, deviceType);\n return executeAction(request, context);\n }\n \n export function createMassActivateDeviceInput(deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('MassActivateDevice', true, \n 'DeviceActivationResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'DeviceActivationResult'}, {deviceNumber: deviceNumber, terminalId: terminalId, deviceId: deviceId, deviceType: deviceType });\n }\n\n export function massActivateDeviceAsync(context: IContext, deviceNumber?: string | null, terminalId?: string | null, deviceId?: string | null, deviceType?: number | null):AsyncResult {\n const request = createMassActivateDeviceInput(deviceNumber, terminalId, deviceId, deviceType);\n return executeAction(request, context);\n }\n \n export function createDeactivateDeviceInput(transactionId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DeactivateDevice', true, '', '', { bypassCache: 'get', returnEntity: ''}, {transactionId: transactionId });\n }\n\n export function deactivateDeviceAsync(context: IContext, transactionId?: string | null):AsyncResult {\n const request = createDeactivateDeviceInput(transactionId);\n return executeAction(request, context);\n }\n \n export function createCreateHardwareStationTokenInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateHardwareStationToken', true, \n 'CreateHardwareStationTokenResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'CreateHardwareStationTokenResult'}, { });\n }\n\n export function createHardwareStationTokenAsync(context: IContext):AsyncResult {\n const request = createCreateHardwareStationTokenInput();\n return executeAction(request, context);\n }\n \n export function createValidateHardwareStationTokenInput(deviceNumber?: string | null, hardwareStationToken?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidateHardwareStationToken', true, \n 'ValidateHardwareStationTokenResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'ValidateHardwareStationTokenResult'}, {deviceNumber: deviceNumber, hardwareStationToken: hardwareStationToken });\n }\n\n export function validateHardwareStationTokenAsync(context: IContext, deviceNumber?: string | null, hardwareStationToken?: string | null):AsyncResult {\n const request = createValidateHardwareStationTokenInput(deviceNumber, hardwareStationToken);\n return executeAction(request, context);\n }\n \n export function createGetBarcodeByIdInput(barcodeId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetBarcodeById', true, \n 'BarcodeClass'\n , 'false', { bypassCache: 'none', returnEntity: 'Barcode'}, {barcodeId: barcodeId });\n }\n\n export function getBarcodeByIdAsync(context: IContext, barcodeId?: string | null):AsyncResult {\n const request = createGetBarcodeByIdInput(barcodeId);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridByIdInput(buttonGridId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetButtonGridById', true, \n 'ButtonGridClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {buttonGridId: buttonGridId });\n }\n\n export function getButtonGridByIdAsync(context: IContext, buttonGridId?: string | null):AsyncResult {\n const request = createGetButtonGridByIdInput(buttonGridId);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsWithoutImageInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsWithoutImage', true, \n 'ButtonGridClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n }\n\n export function getButtonGridsWithoutImageAsync(context: IContext, height: number, width: number):AsyncResult {\n const request = createGetButtonGridsWithoutImageInput(context.queryResultSettings, height, width);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsByIdsInput(queryResultSettings: IQueryResultSettings, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsByIds', true, \n 'ButtonGridClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {getButtonGridsByIdsCriteria: getButtonGridsByIdsCriteria });\n }\n\n export function getButtonGridsByIdsAsync(context: IContext, getButtonGridsByIdsCriteria?: GetButtonGridsByIdsCriteria | null):AsyncResult {\n const request = createGetButtonGridsByIdsInput(context.queryResultSettings, getButtonGridsByIdsCriteria);\n return executeAction(request, context);\n }\n \n export function createGetImageBlobsByPictureIdsInput(queryResultSettings: IQueryResultSettings, pictureIds: number[]): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetImageBlobsByPictureIds', true, \n 'MediaBlobClass'\n , 'true', { bypassCache: 'none', returnEntity: 'MediaBlob'}, {pictureIds: pictureIds });\n }\n\n export function getImageBlobsByPictureIdsAsync(context: IContext, pictureIds: number[]):AsyncResult {\n const request = createGetImageBlobsByPictureIdsInput(context.queryResultSettings, pictureIds);\n return executeAction(request, context);\n }\n \n export function createGetCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCardTypes', true, \n 'CardTypeInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CardTypeInfo'}, { });\n }\n\n export function getCardTypesAsync(context: IContext):AsyncResult {\n const request = createGetCardTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createResolveCardTypesInput(queryResultSettings: IQueryResultSettings, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('ResolveCardTypes', true, \n 'CardTypeInfoClass'\n , 'true', { bypassCache: 'get', returnEntity: 'CardTypeInfo'}, {cardNumberPrefix: cardNumberPrefix, cardType: cardType, paymentToken: paymentToken });\n }\n\n export function resolveCardTypesAsync(context: IContext, cardNumberPrefix?: string | null, cardType?: number | null, paymentToken?: string | null):AsyncResult {\n const request = createResolveCardTypesInput(context.queryResultSettings, cardNumberPrefix, cardType, paymentToken);\n return executeAction(request, context);\n }\n \n export function createGetSupportedPaymentCardTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSupportedPaymentCardTypes', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getSupportedPaymentCardTypesAsync(context: IContext):AsyncResult {\n const request = createGetSupportedPaymentCardTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCitiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCities', true, \n 'CityInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CityInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId });\n }\n\n export function getCitiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null):AsyncResult {\n const request = createGetCitiesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsForShippingInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegionsForShipping', false, \n 'CountryRegionInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, { });\n }\n\n export function getCountryRegionsForShippingAsync(context: IContext):AsyncResult {\n const request = createGetCountryRegionsForShippingInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsByLanguageIdInput(queryResultSettings: IQueryResultSettings, languageId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegionsByLanguageId', true, \n 'CountryRegionInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, {languageId: languageId });\n }\n\n export function getCountryRegionsByLanguageIdAsync(context: IContext, languageId?: string | null):AsyncResult {\n const request = createGetCountryRegionsByLanguageIdInput(context.queryResultSettings, languageId);\n return executeAction(request, context);\n }\n \n export function createGetOnlineChannelInput(channelId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOnlineChannel', false, \n 'OnlineChannelClass'\n , 'false', { bypassCache: 'none', returnEntity: 'OnlineChannel'}, {channelId: channelId });\n }\n\n export function getOnlineChannelAsync(context: IContext, channelId: number):AsyncResult {\n const request = createGetOnlineChannelInput(channelId);\n return executeAction(request, context);\n }\n \n export function createGetCountiesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCounties', true, \n 'CountyInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CountyInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId });\n }\n\n export function getCountiesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null):AsyncResult {\n const request = createGetCountiesInput(context.queryResultSettings, countryRegionId, stateProvinceId);\n return executeAction(request, context);\n }\n \n export function createGetCreditMemoByIdInput(creditMemoId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCreditMemoById', true, \n 'CreditMemoClass'\n , 'false', { bypassCache: 'none', returnEntity: 'CreditMemo'}, {creditMemoId: creditMemoId });\n }\n\n export function getCreditMemoByIdAsync(context: IContext, creditMemoId?: string | null):AsyncResult {\n const request = createGetCreditMemoByIdInput(creditMemoId);\n return executeAction(request, context);\n }\n \n export function createGetDownloadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDownloadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getDownloadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetDownloadIntervalInput(dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetTerminalDataStoreNameInput(terminalId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetTerminalDataStoreName', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {terminalId: terminalId });\n }\n\n export function getTerminalDataStoreNameAsync(context: IContext, terminalId?: string | null):AsyncResult {\n const request = createGetTerminalDataStoreNameInput(terminalId);\n return executeAction(request, context);\n }\n \n export function createGetDownloadLinkInput(dataStoreName: string | null, downloadSessionId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDownloadLink', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName, downloadSessionId: downloadSessionId });\n }\n\n export function getDownloadLinkAsync(context: IContext, dataStoreName: string | null, downloadSessionId: number):AsyncResult {\n const request = createGetDownloadLinkInput(dataStoreName, downloadSessionId);\n return executeAction(request, context);\n }\n \n export function createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDataDownloadParametersByTerminal', true, \n 'DataDownloadParametersClass'\n , 'false', { bypassCache: 'none', returnEntity: 'DataDownloadParameters'}, {TerminalDataDownloadRequestInfo: terminalDataDownloadRequestInfo });\n }\n\n export function getDataDownloadParametersByTerminalAsync(context: IContext, terminalDataDownloadRequestInfo?: TerminalDataDownloadRequestInfo | null):AsyncResult {\n const request = createGetDataDownloadParametersByTerminalInput(terminalDataDownloadRequestInfo);\n return executeAction(request, context);\n }\n \n export function createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDataUploadParametersByTerminal', true, \n 'DataUploadParametersClass'\n , 'false', { bypassCache: 'none', returnEntity: 'DataUploadParameters'}, {TerminalDataUploadRequestInfo: terminalDataUploadRequestInfo });\n }\n\n export function getDataUploadParametersByTerminalAsync(context: IContext, terminalDataUploadRequestInfo?: TerminalDataUploadRequestInfo | null):AsyncResult {\n const request = createGetDataUploadParametersByTerminalInput(terminalDataUploadRequestInfo);\n return executeAction(request, context);\n }\n \n export function createGetDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDownloadSessions', true, \n 'DownloadSessionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n }\n\n export function getDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetInitialDownloadSessionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInitialDownloadSessions', true, \n 'DownloadSessionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DownloadSession'}, {dataStoreName: dataStoreName });\n }\n\n export function getInitialDownloadSessionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetInitialDownloadSessionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetUploadJobDefinitionsInput(queryResultSettings: IQueryResultSettings, dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUploadJobDefinitions', true, '', 'true', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getUploadJobDefinitionsAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetUploadJobDefinitionsInput(context.queryResultSettings, dataStoreName);\n return executeAction(request, context);\n }\n \n export function createGetUploadIntervalInput(dataStoreName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUploadInterval', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {dataStoreName: dataStoreName });\n }\n\n export function getUploadIntervalAsync(context: IContext, dataStoreName?: string | null):AsyncResult {\n const request = createGetUploadIntervalInput(dataStoreName);\n return executeAction(request, context);\n }\n \n export function createPostOfflineTransactionsInput(offlineTransactionForMPOS?: string[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('PostOfflineTransactions', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {offlineTransactionForMPOS: offlineTransactionForMPOS });\n }\n\n export function postOfflineTransactionsAsync(context: IContext, offlineTransactionForMPOS?: string[] | null):AsyncResult {\n const request = createPostOfflineTransactionsInput(offlineTransactionForMPOS);\n return executeAction(request, context);\n }\n \n export function createSetOfflineTerminalStateInput(offlineTerminalState?: OfflineTerminalState | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SetOfflineTerminalState', true, '', '', { bypassCache: 'get', returnEntity: ''}, {offlineTerminalState: offlineTerminalState });\n }\n\n export function setOfflineTerminalStateAsync(context: IContext, offlineTerminalState?: OfflineTerminalState | null):AsyncResult {\n const request = createSetOfflineTerminalStateInput(offlineTerminalState);\n return executeAction(request, context);\n }\n \n export function createGetRetailTrialPlanOfferInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetRetailTrialPlanOffer', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getRetailTrialPlanOfferAsync(context: IContext):AsyncResult {\n const request = createGetRetailTrialPlanOfferInput();\n return executeAction(request, context);\n }\n \n export function createGetLatestNumberSequenceInput(queryResultSettings: IQueryResultSettings, searchLocationValue?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLatestNumberSequence', true, \n 'NumberSequenceSeedDataClass'\n , 'true', { bypassCache: 'none', returnEntity: 'NumberSequenceSeedData'}, {searchLocationValue: searchLocationValue });\n }\n\n export function getLatestNumberSequenceAsync(context: IContext, searchLocationValue?: number | null):AsyncResult {\n const request = createGetLatestNumberSequenceInput(context.queryResultSettings, searchLocationValue);\n return executeAction(request, context);\n }\n \n export function createGetReceiptNumberResetInfoInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptNumberResetInfo', true, \n 'ReceiptNumberResetInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReceiptNumberResetInfo'}, { });\n }\n\n export function getReceiptNumberResetInfoAsync(context: IContext):AsyncResult {\n const request = createGetReceiptNumberResetInfoInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointActivityTimelineInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimeline', true, \n 'LoyaltyRewardPointActivityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyRewardPointActivityTimelineAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyRewardPointActivityTimelineInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointActivityTimelineForExpiredPoints', true, \n 'LoyaltyRewardPointActivityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createCalculateTotalCurrencyAmountInput(currenciesAmount?: CurrencyRequest[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CalculateTotalCurrencyAmount', true, \n 'CurrencyAmountClass'\n , 'false', { bypassCache: 'get', returnEntity: 'CurrencyAmount'}, {currenciesAmount: currenciesAmount });\n }\n\n export function calculateTotalCurrencyAmountAsync(context: IContext, currenciesAmount?: CurrencyRequest[] | null):AsyncResult {\n const request = createCalculateTotalCurrencyAmountInput(currenciesAmount);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodeInput(discountCode?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDiscountCode', true, \n 'DiscountCodeClass'\n , 'false', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {discountCode: discountCode });\n }\n\n export function getDiscountCodeAsync(context: IContext, discountCode?: string | null):AsyncResult {\n const request = createGetDiscountCodeInput(discountCode);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesByOfferIdInput(queryResultSettings: IQueryResultSettings, offerId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodesByOfferId', true, \n 'DiscountCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {offerId: offerId });\n }\n\n export function getDiscountCodesByOfferIdAsync(context: IContext, offerId?: string | null):AsyncResult {\n const request = createGetDiscountCodesByOfferIdInput(context.queryResultSettings, offerId);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesByKeywordInput(queryResultSettings: IQueryResultSettings, keyword: string | null, activeDate: Date): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodesByKeyword', true, \n 'DiscountCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, {keyword: keyword, activeDate: activeDate });\n }\n\n export function getDiscountCodesByKeywordAsync(context: IContext, keyword: string | null, activeDate: Date):AsyncResult {\n const request = createGetDiscountCodesByKeywordInput(context.queryResultSettings, keyword, activeDate);\n return executeAction(request, context);\n }\n \n export function createGetDistrictsInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDistricts', true, \n 'DistrictInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DistrictInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName });\n }\n\n export function getDistrictsAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null):AsyncResult {\n const request = createGetDistrictsInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName);\n return executeAction(request, context);\n }\n \n export function createGetHardwareStationProfilesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetHardwareStationProfiles', true, \n 'HardwareStationProfileClass'\n , 'true', { bypassCache: 'none', returnEntity: 'HardwareStationProfile'}, { });\n }\n\n export function getHardwareStationProfilesAsync(context: IContext):AsyncResult {\n const request = createGetHardwareStationProfilesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetHardwareProfileByIdInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetHardwareProfileById', true, \n 'HardwareProfileClass'\n , 'false', { bypassCache: 'none', returnEntity: 'HardwareProfile'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getHardwareProfileByIdAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetHardwareProfileByIdInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetLocalizedStringsInput(queryResultSettings: IQueryResultSettings, languageId?: string | null, textId?: number | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLocalizedStrings', true, \n 'LocalizedStringClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LocalizedString'}, {languageId: languageId, textId: textId });\n }\n\n export function getLocalizedStringsAsync(context: IContext, languageId?: string | null, textId?: number | null):AsyncResult {\n const request = createGetLocalizedStringsInput(context.queryResultSettings, languageId, textId);\n return executeAction(request, context);\n }\n \n export function createGetOperationPermissionByIdInput(operationId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOperationPermissionById', true, \n 'OperationPermissionClass'\n , 'false', { bypassCache: 'none', returnEntity: 'OperationPermission'}, {operationId: operationId });\n }\n\n export function getOperationPermissionByIdAsync(context: IContext, operationId: number):AsyncResult {\n const request = createGetOperationPermissionByIdInput(operationId);\n return executeAction(request, context);\n }\n \n export function createGetReasonCodesByIdInput(queryResultSettings: IQueryResultSettings, reasonCodeGroupId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReasonCodesById', true, \n 'ReasonCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, {reasonCodeGroupId: reasonCodeGroupId });\n }\n\n export function getReasonCodesByIdAsync(context: IContext, reasonCodeGroupId?: string | null):AsyncResult {\n const request = createGetReasonCodesByIdInput(context.queryResultSettings, reasonCodeGroupId);\n return executeAction(request, context);\n }\n \n export function createSearchReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SearchReportDataSet', true, \n 'ReportDataSetClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n }\n\n export function searchReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult {\n const request = createSearchReportDataSetInput(reportId, parameters);\n return executeAction(request, context);\n }\n \n export function createGetReportDataSetByIdInput(reportId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetReportDataSetById', true, \n 'ReportDataSetClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId });\n }\n\n export function getReportDataSetByIdAsync(context: IContext, reportId?: string | null):AsyncResult {\n const request = createGetReportDataSetByIdInput(reportId);\n return executeAction(request, context);\n }\n \n export function createGetSrsReportDataSetInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetSrsReportDataSet', true, \n 'ReportDataSetClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ReportDataSet'}, {reportId: reportId, parameters: parameters });\n }\n\n export function getSrsReportDataSetAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult {\n const request = createGetSrsReportDataSetInput(reportId, parameters);\n return executeAction(request, context);\n }\n \n export function createGetIncomeExpenseAccountsInput(queryResultSettings: IQueryResultSettings, incomeExpenseAccountType: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetIncomeExpenseAccounts', true, \n 'IncomeExpenseAccountClass'\n , 'true', { bypassCache: 'none', returnEntity: 'IncomeExpenseAccount'}, {incomeExpenseAccountType: incomeExpenseAccountType });\n }\n\n export function getIncomeExpenseAccountsAsync(context: IContext, incomeExpenseAccountType: number):AsyncResult {\n const request = createGetIncomeExpenseAccountsInput(context.queryResultSettings, incomeExpenseAccountType);\n return executeAction(request, context);\n }\n \n export function createGetStateProvincesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetStateProvinces', true, \n 'StateProvinceInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'StateProvinceInfo'}, {countryRegionId: countryRegionId });\n }\n\n export function getStateProvincesAsync(context: IContext, countryRegionId?: string | null):AsyncResult {\n const request = createGetStateProvincesInput(context.queryResultSettings, countryRegionId);\n return executeAction(request, context);\n }\n \n export function createGetZipCodesInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetZipCodes', true, \n 'ZipCodeInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, stateProvinceId: stateProvinceId, countyId: countyId, cityName: cityName, district: district });\n }\n\n export function getZipCodesAsync(context: IContext, countryRegionId?: string | null, stateProvinceId?: string | null, countyId?: string | null, cityName?: string | null, district?: string | null):AsyncResult {\n const request = createGetZipCodesInput(context.queryResultSettings, countryRegionId, stateProvinceId, countyId, cityName, district);\n return executeAction(request, context);\n }\n \n export function createGetAddressFromZipCodeInput(queryResultSettings: IQueryResultSettings, countryRegionId?: string | null, zipPostalCode?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAddressFromZipCode', true, \n 'ZipCodeInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ZipCodeInfo'}, {countryRegionId: countryRegionId, zipPostalCode: zipPostalCode });\n }\n\n export function getAddressFromZipCodeAsync(context: IContext, countryRegionId?: string | null, zipPostalCode?: string | null):AsyncResult {\n const request = createGetAddressFromZipCodeInput(context.queryResultSettings, countryRegionId, zipPostalCode);\n return executeAction(request, context);\n }\n \n export function createDisassembleKitTransactionsInput(kitTransaction?: KitTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DisassembleKitTransactions', true, \n 'KitTransactionClass'\n , 'false', { bypassCache: 'get', returnEntity: 'KitTransaction'}, {kitTransaction: kitTransaction });\n }\n\n export function disassembleKitTransactionsAsync(context: IContext, kitTransaction?: KitTransaction | null):AsyncResult {\n const request = createDisassembleKitTransactionsInput(kitTransaction);\n return executeAction(request, context);\n }\n \n export function createIssueLoyaltyCardInput(loyaltyCard?: LoyaltyCard | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('IssueLoyaltyCard', true, \n 'LoyaltyCardClass'\n , 'false', { bypassCache: 'get', returnEntity: 'LoyaltyCard'}, {loyaltyCard: loyaltyCard });\n }\n\n export function issueLoyaltyCardAsync(context: IContext, loyaltyCard?: LoyaltyCard | null):AsyncResult {\n const request = createIssueLoyaltyCardInput(loyaltyCard);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyCardInput(cardNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetLoyaltyCard', true, \n 'LoyaltyCardClass'\n , 'false', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {cardNumber: cardNumber });\n }\n\n export function getLoyaltyCardAsync(context: IContext, cardNumber?: string | null):AsyncResult {\n const request = createGetLoyaltyCardInput(cardNumber);\n return executeAction(request, context);\n }\n \n export function createGetCustomerLoyaltyCardsInput(queryResultSettings: IQueryResultSettings, accountNumber?: string | null, searchCriteria?: LoyaltyCardSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerLoyaltyCards', true, \n 'LoyaltyCardClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCard'}, {accountNumber: accountNumber, searchCriteria: searchCriteria });\n }\n\n export function getCustomerLoyaltyCardsAsync(context: IContext, accountNumber?: string | null, searchCriteria?: LoyaltyCardSearchCriteria | null):AsyncResult {\n const request = createGetCustomerLoyaltyCardsInput(context.queryResultSettings, accountNumber, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyCardTransactionsInput(queryResultSettings: IQueryResultSettings, cardNumber?: string | null, rewardPointId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyCardTransactions', true, \n 'LoyaltyCardTransactionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyCardTransaction'}, {cardNumber: cardNumber, rewardPointId: rewardPointId });\n }\n\n export function getLoyaltyCardTransactionsAsync(context: IContext, cardNumber?: string | null, rewardPointId?: string | null):AsyncResult {\n const request = createGetLoyaltyCardTransactionsInput(context.queryResultSettings, cardNumber, rewardPointId);\n return executeAction(request, context);\n }\n \n export function createGetLoyaltyRewardPointsExpiringSoonInput(queryResultSettings: IQueryResultSettings, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLoyaltyRewardPointsExpiringSoon', true, \n 'LoyaltyRewardPointActivityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'LoyaltyRewardPointActivity'}, {cardNumber: cardNumber, rewardPointId: rewardPointId, daysToExpiry: daysToExpiry });\n }\n\n export function getLoyaltyRewardPointsExpiringSoonAsync(context: IContext, cardNumber: string | null, rewardPointId: string | null, daysToExpiry: number):AsyncResult {\n const request = createGetLoyaltyRewardPointsExpiringSoonInput(context.queryResultSettings, cardNumber, rewardPointId, daysToExpiry);\n return executeAction(request, context);\n }\n \n export function createSearchJournalTransactionsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: TransactionSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchJournalTransactions', true, \n 'TransactionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Transaction'}, {searchCriteria: searchCriteria });\n }\n\n export function searchJournalTransactionsAsync(context: IContext, searchCriteria?: TransactionSearchCriteria | null):AsyncResult {\n const request = createSearchJournalTransactionsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetGiftCardInput(giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetGiftCard', true, \n 'GiftCardClass'\n , 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId, tenderTypeId: tenderTypeId, pin: pin, expirationMonth: expirationMonth, expirationYear: expirationYear });\n }\n\n export function getGiftCardAsync(context: IContext, giftCardId?: string | null, tenderTypeId?: string | null, pin?: string | null, expirationMonth?: number | null, expirationYear?: number | null):AsyncResult {\n const request = createGetGiftCardInput(giftCardId, tenderTypeId, pin, expirationMonth, expirationYear);\n return executeAction(request, context);\n }\n \n export function createGetGiftCardInquiryInput(giftCardId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetGiftCardInquiry', true, \n 'GiftCardClass'\n , 'false', { bypassCache: 'none', returnEntity: 'GiftCard'}, {giftCardId: giftCardId });\n }\n\n export function getGiftCardInquiryAsync(context: IContext, giftCardId?: string | null):AsyncResult {\n const request = createGetGiftCardInquiryInput(giftCardId);\n return executeAction(request, context);\n }\n \n export function createGetNonSalesTransactionsInput(queryResultSettings: IQueryResultSettings, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetNonSalesTransactions', true, \n 'NonSalesTransactionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'NonSalesTransaction'}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId, nonSalesTenderTypeValue: nonSalesTenderTypeValue });\n }\n\n export function getNonSalesTransactionsAsync(context: IContext, shiftId: string | null, shiftTerminalId: string | null, nonSalesTenderTypeValue: number):AsyncResult {\n const request = createGetNonSalesTransactionsInput(context.queryResultSettings, shiftId, shiftTerminalId, nonSalesTenderTypeValue);\n return executeAction(request, context);\n }\n \n export function createCreateNonSalesTransactionInput(nonSalesTransaction?: NonSalesTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateNonSalesTransaction', true, \n 'NonSalesTransactionClass'\n , 'false', { bypassCache: 'get', returnEntity: 'NonSalesTransaction'}, {nonSalesTransaction: nonSalesTransaction });\n }\n\n export function createNonSalesTransactionAsync(context: IContext, nonSalesTransaction?: NonSalesTransaction | null):AsyncResult {\n const request = createCreateNonSalesTransactionInput(nonSalesTransaction);\n return executeAction(request, context);\n }\n \n export function createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction?: DropAndDeclareTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateDropAndDeclareTransaction', true, \n 'DropAndDeclareTransactionClass'\n , 'false', { bypassCache: 'get', returnEntity: 'DropAndDeclareTransaction'}, {dropAndDeclareTransaction: dropAndDeclareTransaction });\n }\n\n export function createDropAndDeclareTransactionAsync(context: IContext, dropAndDeclareTransaction?: DropAndDeclareTransaction | null):AsyncResult {\n const request = createCreateDropAndDeclareTransactionInput(dropAndDeclareTransaction);\n return executeAction(request, context);\n }\n \n export function createGetTaxOverridesInput(queryResultSettings: IQueryResultSettings, overrideBy?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTaxOverrides', true, \n 'TaxOverrideClass'\n , 'true', { bypassCache: 'none', returnEntity: 'TaxOverride'}, {overrideBy: overrideBy });\n }\n\n export function getTaxOverridesAsync(context: IContext, overrideBy?: string | null):AsyncResult {\n const request = createGetTaxOverridesInput(context.queryResultSettings, overrideBy);\n return executeAction(request, context);\n }\n \n export function createGetCustomerBalanceInput(accountNumber?: string | null, invoiceAccountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCustomerBalance', true, \n 'CustomerBalancesClass'\n , 'false', { bypassCache: 'none', returnEntity: 'CustomerBalances'}, {accountNumber: accountNumber, invoiceAccountNumber: invoiceAccountNumber });\n }\n\n export function getCustomerBalanceAsync(context: IContext, accountNumber?: string | null, invoiceAccountNumber?: string | null):AsyncResult {\n const request = createGetCustomerBalanceInput(accountNumber, invoiceAccountNumber);\n return executeAction(request, context);\n }\n \n export function createInitiateLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('InitiateLinkToExistingCustomer', true, \n 'LinkToExistingCustomerResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken, emailTemplateId: emailTemplateId, emailProperties: emailProperties });\n }\n\n export function initiateLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null, emailTemplateId?: string | null, emailProperties?: NameValuePair[] | null):AsyncResult {\n const request = createInitiateLinkToExistingCustomerInput(email, activationToken, emailTemplateId, emailProperties);\n return executeAction(request, context);\n }\n \n export function createFinalizeLinkToExistingCustomerInput(email?: string | null, activationToken?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('FinalizeLinkToExistingCustomer', true, \n 'LinkToExistingCustomerResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'LinkToExistingCustomerResult'}, {email: email, ActivationToken: activationToken });\n }\n\n export function finalizeLinkToExistingCustomerAsync(context: IContext, email?: string | null, activationToken?: string | null):AsyncResult {\n const request = createFinalizeLinkToExistingCustomerInput(email, activationToken);\n return executeAction(request, context);\n }\n \n export function createUnlinkFromExistingCustomerInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UnlinkFromExistingCustomer', true, '', '', { bypassCache: 'get', returnEntity: ''}, { });\n }\n\n export function unlinkFromExistingCustomerAsync(context: IContext):AsyncResult {\n const request = createUnlinkFromExistingCustomerInput();\n return executeAction(request, context);\n }\n \n export function createGetOfflineSyncStatusInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOfflineSyncStatus', true, \n 'OfflineSyncStatsLineClass'\n , 'true', { bypassCache: 'none', returnEntity: 'OfflineSyncStatsLine'}, { });\n }\n\n export function getOfflineSyncStatusAsync(context: IContext):AsyncResult {\n const request = createGetOfflineSyncStatusInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOfflinePendingTransactionCountInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCount', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getOfflinePendingTransactionCountAsync(context: IContext):AsyncResult {\n const request = createGetOfflinePendingTransactionCountInput();\n return executeAction(request, context);\n }\n \n export function createGetOfflinePendingTransactionCountByShiftInput(shiftId: number, shiftTerminalId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOfflinePendingTransactionCountByShift', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {shiftId: shiftId, shiftTerminalId: shiftTerminalId });\n }\n\n export function getOfflinePendingTransactionCountByShiftAsync(context: IContext, shiftId: number, shiftTerminalId?: string | null):AsyncResult {\n const request = createGetOfflinePendingTransactionCountByShiftInput(shiftId, shiftTerminalId);\n return executeAction(request, context);\n }\n \n export function createGetOfflineOpenShiftsInput(queryResultSettings: IQueryResultSettings, filterByCurrentUser: boolean, includeAllShiftsForStore: boolean): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOfflineOpenShifts', false, \n 'ShiftClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Shift'}, {filterByCurrentUser: filterByCurrentUser, includeAllShiftsForStore: includeAllShiftsForStore });\n }\n\n export function getOfflineOpenShiftsAsync(context: IContext, filterByCurrentUser: boolean, includeAllShiftsForStore: boolean):AsyncResult {\n const request = createGetOfflineOpenShiftsInput(context.queryResultSettings, filterByCurrentUser, includeAllShiftsForStore);\n return executeAction(request, context);\n }\n \n export function createDeleteOfflineShiftsInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DeleteOfflineShifts', false, '', 'false', { bypassCache: 'get', returnEntity: ''}, { });\n }\n\n export function deleteOfflineShiftsAsync(context: IContext):AsyncResult {\n const request = createDeleteOfflineShiftsInput();\n return executeAction(request, context);\n }\n \n export function createUpdateDownloadSessionInput(downloadSession?: DownloadSession | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UpdateDownloadSession', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {downloadSession: downloadSession });\n }\n\n export function updateDownloadSessionAsync(context: IContext, downloadSession?: DownloadSession | null):AsyncResult {\n const request = createUpdateDownloadSessionInput(downloadSession);\n return executeAction(request, context);\n }\n \n export function createUpdateApplicationVersionInput(appVersion?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UpdateApplicationVersion', true, '', '', { bypassCache: 'get', returnEntity: ''}, {appVersion: appVersion });\n }\n\n export function updateApplicationVersionAsync(context: IContext, appVersion?: string | null):AsyncResult {\n const request = createUpdateApplicationVersionInput(appVersion);\n return executeAction(request, context);\n }\n \n export function createGetStorageAccessTokenForUploadInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetStorageAccessTokenForUpload', true, \n 'StorageAccessTokenClass'\n , 'false', { bypassCache: 'none', returnEntity: 'StorageAccessToken'}, { });\n }\n\n export function getStorageAccessTokenForUploadAsync(context: IContext):AsyncResult {\n const request = createGetStorageAccessTokenForUploadInput();\n return executeAction(request, context);\n }\n \n export function createGetBusinessProcessModelLibrariesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibraries', true, \n 'FrameworkClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Framework'}, { });\n }\n\n export function getBusinessProcessModelLibrariesAsync(context: IContext):AsyncResult {\n const request = createGetBusinessProcessModelLibrariesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId: number, hierarchyDepth: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetBusinessProcessModelLibrary', true, \n 'FrameworkClass'\n , 'false', { bypassCache: 'none', returnEntity: 'Framework'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, hierarchyDepth: hierarchyDepth });\n }\n\n export function getBusinessProcessModelLibraryAsync(context: IContext, businessProcessModelFrameworkLineId: number, hierarchyDepth: number):AsyncResult {\n const request = createGetBusinessProcessModelLibraryInput(businessProcessModelFrameworkLineId, hierarchyDepth);\n return executeAction(request, context);\n }\n \n export function createSearchTaskGuidesByTitleInput(queryResultSettings: IQueryResultSettings, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchTaskGuidesByTitle', true, \n 'TaskGuidesSearchResultClass'\n , 'true', { bypassCache: 'none', returnEntity: 'TaskGuidesSearchResult'}, {businessProcessModelFrameworkLineId: businessProcessModelFrameworkLineId, taskGuideSearchText: taskGuideSearchText, queryTypeValue: queryTypeValue });\n }\n\n export function searchTaskGuidesByTitleAsync(context: IContext, businessProcessModelFrameworkLineId: number, taskGuideSearchText: string | null, queryTypeValue: number):AsyncResult {\n const request = createSearchTaskGuidesByTitleInput(context.queryResultSettings, businessProcessModelFrameworkLineId, taskGuideSearchText, queryTypeValue);\n return executeAction(request, context);\n }\n \n export function createGenerateBusinessProcessModelPackageInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateBusinessProcessModelPackage', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateBusinessProcessModelPackageAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateBusinessProcessModelPackageInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createDownloadRecordingInput(businessProcessModelLineId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('DownloadRecording', true, \n 'RecordingClass'\n , 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {businessProcessModelLineId: businessProcessModelLineId });\n }\n\n export function downloadRecordingAsync(context: IContext, businessProcessModelLineId: number):AsyncResult {\n const request = createDownloadRecordingInput(businessProcessModelLineId);\n return executeAction(request, context);\n }\n \n export function createLoadRecordingFromFileInput(recordingUrl?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('LoadRecordingFromFile', true, \n 'RecordingClass'\n , 'false', { bypassCache: 'get', returnEntity: 'Recording'}, {recordingUrl: recordingUrl });\n }\n\n export function loadRecordingFromFileAsync(context: IContext, recordingUrl?: string | null):AsyncResult {\n const request = createLoadRecordingFromFileInput(recordingUrl);\n return executeAction(request, context);\n }\n \n export function createGenerateRecordingFileInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateRecordingFile', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateRecordingFileAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateRecordingFileInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createGenerateTrainingDocumentInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateTrainingDocument', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateTrainingDocumentAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateTrainingDocumentInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createGenerateRecordingBundleInput(taskRecording?: Recording | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GenerateRecordingBundle', true, '', 'false', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording });\n }\n\n export function generateRecordingBundleAsync(context: IContext, taskRecording?: Recording | null):AsyncResult {\n const request = createGenerateRecordingBundleInput(taskRecording);\n return executeAction(request, context);\n }\n \n export function createUploadRecordingInput(taskRecording: Recording | null, businessProcessModelLineId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('UploadRecording', true, '', '', { bypassCache: 'get', returnEntity: ''}, {taskRecording: taskRecording, businessProcessModelLineId: businessProcessModelLineId });\n }\n\n export function uploadRecordingAsync(context: IContext, taskRecording: Recording | null, businessProcessModelLineId: number):AsyncResult {\n const request = createUploadRecordingInput(taskRecording, businessProcessModelLineId);\n return executeAction(request, context);\n }\n \n export function createGetAttributeDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeDefinitions', true, \n 'AttributeDefinitionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'AttributeDefinition'}, {attributeDefinitionCriteria: attributeDefinitionCriteria });\n }\n\n export function getAttributeDefinitionsAsync(context: IContext, attributeDefinitionCriteria?: AttributeDefinitionCriteria | null):AsyncResult {\n const request = createGetAttributeDefinitionsInput(context.queryResultSettings, attributeDefinitionCriteria);\n return executeAction(request, context);\n }\n \n export function createGetAttributeGroupDefinitionsInput(queryResultSettings: IQueryResultSettings, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeGroupDefinitions', true, \n 'AttributeGroupDefinitionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'AttributeGroupDefinition'}, {attributeGroupDefinitionCriteria: attributeGroupDefinitionCriteria });\n }\n\n export function getAttributeGroupDefinitionsAsync(context: IContext, attributeGroupDefinitionCriteria?: AttributeGroupDefinitionCriteria | null):AsyncResult {\n const request = createGetAttributeGroupDefinitionsInput(context.queryResultSettings, attributeGroupDefinitionCriteria);\n return executeAction(request, context);\n }\n \n export function createSaveFiscalTransactionInput(fiscalTransaction?: FiscalTransaction | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SaveFiscalTransaction', true, '', '', { bypassCache: 'get', returnEntity: ''}, {fiscalTransaction: fiscalTransaction });\n }\n\n export function saveFiscalTransactionAsync(context: IContext, fiscalTransaction?: FiscalTransaction | null):AsyncResult {\n const request = createSaveFiscalTransactionInput(fiscalTransaction);\n return executeAction(request, context);\n }\n \n export function createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint?: SalesOrder | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidatePrintReceiptCopyAllowed', true, '', '', { bypassCache: 'get', returnEntity: ''}, {salesOrderToPrint: salesOrderToPrint });\n }\n\n export function validatePrintReceiptCopyAllowedAsync(context: IContext, salesOrderToPrint?: SalesOrder | null):AsyncResult {\n const request = createValidatePrintReceiptCopyAllowedInput(salesOrderToPrint);\n return executeAction(request, context);\n }\n \n export function createRegisterAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RegisterAuditEvent', true, '', '', { bypassCache: 'get', returnEntity: ''}, {auditEvent: auditEvent });\n }\n\n export function registerAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult {\n const request = createRegisterAuditEventInput(auditEvent);\n return executeAction(request, context);\n }\n \n export function createRegisterAndGetAuditEventInput(auditEvent?: AuditEvent | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('RegisterAndGetAuditEvent', true, \n 'AuditEventClass'\n , 'false', { bypassCache: 'get', returnEntity: 'AuditEvent'}, {auditEvent: auditEvent });\n }\n\n export function registerAndGetAuditEventAsync(context: IContext, auditEvent?: AuditEvent | null):AsyncResult {\n const request = createRegisterAndGetAuditEventInput(auditEvent);\n return executeAction(request, context);\n }\n \n export function createGetInventoryAvailableToPromiseInput(queryResultSettings: IQueryResultSettings, productId: number, itemId?: string | null, inventLocationId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInventoryAvailableToPromise', true, \n 'InventoryAvailableToPromiseClass'\n , 'true', { bypassCache: 'none', returnEntity: 'InventoryAvailableToPromise'}, {productId: productId, itemId: itemId, inventLocationId: inventLocationId });\n }\n\n export function getInventoryAvailableToPromiseAsync(context: IContext, productId: number, itemId?: string | null, inventLocationId?: string | null):AsyncResult {\n const request = createGetInventoryAvailableToPromiseInput(context.queryResultSettings, productId, itemId, inventLocationId);\n return executeAction(request, context);\n }\n \n export function createGetSalesOrdersWithNoFiscalTransactionsInput(queryResultSettings: IQueryResultSettings, storeNumber?: string | null, terminalId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSalesOrdersWithNoFiscalTransactions', true, \n 'SalesOrderClass'\n , 'true', { bypassCache: 'none', returnEntity: 'SalesOrder'}, {storeNumber: storeNumber, terminalId: terminalId });\n }\n\n export function getSalesOrdersWithNoFiscalTransactionsAsync(context: IContext, storeNumber?: string | null, terminalId?: string | null):AsyncResult {\n const request = createGetSalesOrdersWithNoFiscalTransactionsInput(context.queryResultSettings, storeNumber, terminalId);\n return executeAction(request, context);\n }\n \n export function createGetNotificationsInput(queryResultSettings: IQueryResultSettings, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetNotifications', true, \n 'NotificationItemClass'\n , 'true', { bypassCache: 'none', returnEntity: 'NotificationItem'}, {subscribedOperations: subscribedOperations, extensionProperties: extensionProperties });\n }\n\n export function getNotificationsAsync(context: IContext, subscribedOperations: number[], extensionProperties?: CommerceProperty[] | null):AsyncResult {\n const request = createGetNotificationsInput(context.queryResultSettings, subscribedOperations, extensionProperties);\n return executeAction(request, context);\n }\n \n export function createAcknowledgeNotificationsInput(lastPullDateTime: Date): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('AcknowledgeNotifications', true, '', '', { bypassCache: 'get', returnEntity: ''}, {lastPullDateTime: lastPullDateTime });\n }\n\n export function acknowledgeNotificationsAsync(context: IContext, lastPullDateTime: Date):AsyncResult {\n const request = createAcknowledgeNotificationsInput(lastPullDateTime);\n return executeAction(request, context);\n }\n \n export function createSearchPurchaseHistoryInput(queryResultSettings: IQueryResultSettings, searchCriteria?: PurchaseHistorySearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchPurchaseHistory', true, \n 'PurchaseHistoryClass'\n , 'true', { bypassCache: 'none', returnEntity: 'PurchaseHistory'}, {searchCriteria: searchCriteria });\n }\n\n export function searchPurchaseHistoryAsync(context: IContext, searchCriteria?: PurchaseHistorySearchCriteria | null):AsyncResult {\n const request = createSearchPurchaseHistoryInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalDocument', true, \n 'FiscalIntegrationDocumentClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationNonFiscalDocument', true, \n 'FiscalIntegrationDocumentClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria: fiscalIntegrationDocumentRetrievalCriteria, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationNonFiscalDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, fiscalIntegrationDocumentRetrievalCriteria?: FiscalIntegrationDocumentRetrievalCriteria | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationNonFiscalDocumentInput(hardwareProfileId, functionalityProfileGroupId, fiscalIntegrationDocumentRetrievalCriteria, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceSetupDocument', true, \n 'FiscalIntegrationDocumentClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalServiceSetupDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalServiceSetupDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationFiscalServiceReadDataDocument', true, \n 'FiscalIntegrationDocumentClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationDocument'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, connectorType: connectorType });\n }\n\n export function getFiscalIntegrationFiscalServiceReadDataDocumentAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, connectorType?: number | null):AsyncResult {\n const request = createGetFiscalIntegrationFiscalServiceReadDataDocumentInput(hardwareProfileId, functionalityProfileGroupId, connectorType);\n return executeAction(request, context);\n }\n \n export function createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ProcessFiscalIntegrationFiscalServiceReadDataResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, documentToProcess: documentToProcess, connectorType: connectorType });\n }\n\n export function processFiscalIntegrationFiscalServiceReadDataResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, documentToProcess?: string | null, connectorType?: number | null):AsyncResult {\n const request = createProcessFiscalIntegrationFiscalServiceReadDataResultInput(hardwareProfileId, functionalityProfileGroupId, documentToProcess, connectorType);\n return executeAction(request, context);\n }\n \n export function createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SaveFiscalIntegrationRegistrationResult', true, '', '', { bypassCache: 'get', returnEntity: ''}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n }\n\n export function saveFiscalIntegrationRegistrationResultAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string | null, registrationResult?: FiscalIntegrationRegistrationResult | null, connectorType?: number | null):AsyncResult {\n const request = createSaveFiscalIntegrationRegistrationResultInput(hardwareProfileId, functionalityProfileGroupId, registrationResult, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationRegistrationProcessInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationRegistrationProcess', true, \n 'FiscalIntegrationRegistrationProcessClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationRegistrationProcess'}, { });\n }\n\n export function getFiscalIntegrationRegistrationProcessAsync(context: IContext):AsyncResult {\n const request = createGetFiscalIntegrationRegistrationProcessInput();\n return executeAction(request, context);\n }\n \n export function createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetChannelSupportedFiscalIntegrationEventsByGroup', true, \n 'FiscalIntegrationSupportedEventsClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationSupportedEvents'}, {functionalityProfileGroupId: functionalityProfileGroupId });\n }\n\n export function getChannelSupportedFiscalIntegrationEventsByGroupAsync(context: IContext, functionalityProfileGroupId?: string | null):AsyncResult {\n const request = createGetChannelSupportedFiscalIntegrationEventsByGroupInput(functionalityProfileGroupId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfiles', true, \n 'FiscalIntegrationTechnicalProfileClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getFiscalIntegrationTechnicalProfilesAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesInput(context.queryResultSettings, hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIds', true, \n 'FiscalIntegrationTechnicalProfileClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId, functionalityProfileGroupId: functionalityProfileGroupId });\n }\n\n export function getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync(context: IContext, hardwareProfileId?: string | null, functionalityProfileGroupId?: string[] | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput(context.queryResultSettings, hardwareProfileId, functionalityProfileGroupId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalRegistrationProcessSummaryInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalRegistrationProcessSummary', true, \n 'FiscalIntegrationFiscalRegistrationProcessSummaryClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationFiscalRegistrationProcessSummary'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getFiscalRegistrationProcessSummaryAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFiscalRegistrationProcessSummaryInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createBackupFiscalRegistrationProcessContextInput(terminalId: string | null, storeNumber: string | null, channelId: number, fiscalProcessCompleted: boolean, fiscalIntegrationSerializedContext?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('BackupFiscalRegistrationProcessContext', true, '', '', { bypassCache: 'get', returnEntity: ''}, {terminalId: terminalId, storeNumber: storeNumber, channelId: channelId, fiscalProcessCompleted: fiscalProcessCompleted, fiscalIntegrationSerializedContext: fiscalIntegrationSerializedContext });\n }\n\n export function backupFiscalRegistrationProcessContextAsync(context: IContext, terminalId: string | null, storeNumber: string | null, channelId: number, fiscalProcessCompleted: boolean, fiscalIntegrationSerializedContext?: string | null):AsyncResult {\n const request = createBackupFiscalRegistrationProcessContextInput(terminalId, storeNumber, channelId, fiscalProcessCompleted, fiscalIntegrationSerializedContext);\n return executeAction(request, context);\n }\n \n export function createGetActiveFiscalRegistrationProcessContextBackupInput(terminalId: string | null, storeNumber: string | null, channelId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetActiveFiscalRegistrationProcessContextBackup', true, '', 'false', { bypassCache: 'none', returnEntity: ''}, {terminalId: terminalId, storeNumber: storeNumber, channelId: channelId });\n }\n\n export function getActiveFiscalRegistrationProcessContextBackupAsync(context: IContext, terminalId: string | null, storeNumber: string | null, channelId: number):AsyncResult {\n const request = createGetActiveFiscalRegistrationProcessContextBackupInput(terminalId, storeNumber, channelId);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput(queryResultSettings: IQueryResultSettings, hardwareProfileId?: string | null, fiscalIntegrationTechnicalProfileSearchCriteria?: FiscalIntegrationTechnicalProfileSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationTechnicalProfilesBySearchCriteria', true, \n 'FiscalIntegrationTechnicalProfileClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationTechnicalProfile'}, {hardwareProfileId: hardwareProfileId, fiscalIntegrationTechnicalProfileSearchCriteria: fiscalIntegrationTechnicalProfileSearchCriteria });\n }\n\n export function getFiscalIntegrationTechnicalProfilesBySearchCriteriaAsync(context: IContext, hardwareProfileId?: string | null, fiscalIntegrationTechnicalProfileSearchCriteria?: FiscalIntegrationTechnicalProfileSearchCriteria | null):AsyncResult {\n const request = createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput(context.queryResultSettings, hardwareProfileId, fiscalIntegrationTechnicalProfileSearchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetFiscalIntegrationServiceStatusInput(fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetFiscalIntegrationServiceStatus', true, \n 'FiscalIntegrationServiceStatusClass'\n , 'false', { bypassCache: 'none', returnEntity: 'FiscalIntegrationServiceStatus'}, {fiscalIntegrationServiceInfo: fiscalIntegrationServiceInfo });\n }\n\n export function getFiscalIntegrationServiceStatusAsync(context: IContext, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null):AsyncResult {\n const request = createGetFiscalIntegrationServiceStatusInput(fiscalIntegrationServiceInfo);\n return executeAction(request, context);\n }\n \n export function createSubmitFiscalIntegrationDocumentInput(documentToSubmit?: string | null, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SubmitFiscalIntegrationDocument', true, \n 'FiscalIntegrationServiceCommunicationResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'FiscalIntegrationServiceCommunicationResult'}, {documentToSubmit: documentToSubmit, fiscalIntegrationServiceInfo: fiscalIntegrationServiceInfo });\n }\n\n export function submitFiscalIntegrationDocumentAsync(context: IContext, documentToSubmit?: string | null, fiscalIntegrationServiceInfo?: FiscalIntegrationServiceInfo | null):AsyncResult {\n const request = createSubmitFiscalIntegrationDocumentInput(documentToSubmit, fiscalIntegrationServiceInfo);\n return executeAction(request, context);\n }\n \n export function createGetFeatureStatesInput(queryResultSettings: IQueryResultSettings, featureNames?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFeatureStates', true, \n 'FeatureStateClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FeatureState'}, {featureNames: featureNames });\n }\n\n export function getFeatureStatesAsync(context: IContext, featureNames?: string[] | null):AsyncResult {\n const request = createGetFeatureStatesInput(context.queryResultSettings, featureNames);\n return executeAction(request, context);\n }\n \n export function createGetLastFiscalIntegrationSequentialSignaturesInput(queryResultSettings: IQueryResultSettings, sequentialKeys?: string[] | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLastFiscalIntegrationSequentialSignatures', true, \n 'FiscalIntegrationSequentialSignatureDataClass'\n , 'true', { bypassCache: 'none', returnEntity: 'FiscalIntegrationSequentialSignatureData'}, {sequentialKeys: sequentialKeys });\n }\n\n export function getLastFiscalIntegrationSequentialSignaturesAsync(context: IContext, sequentialKeys?: string[] | null):AsyncResult {\n const request = createGetLastFiscalIntegrationSequentialSignaturesInput(context.queryResultSettings, sequentialKeys);\n return executeAction(request, context);\n }\n \n export function createCreateFiscalTransactionInput(functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CreateFiscalTransaction', true, \n 'FiscalTransactionClass'\n , 'false', { bypassCache: 'get', returnEntity: 'FiscalTransaction'}, {functionalityProfileGroupId: functionalityProfileGroupId, registrationResult: registrationResult, connectorType: connectorType });\n }\n\n export function createFiscalTransactionAsync(context: IContext, functionalityProfileGroupId: string | null, registrationResult: FiscalIntegrationRegistrationResult | null, connectorType: number):AsyncResult {\n const request = createCreateFiscalTransactionInput(functionalityProfileGroupId, registrationResult, connectorType);\n return executeAction(request, context);\n }\n \n export function createGetEstimatedPickupTimeslotAvailabilitiesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetEstimatedPickupTimeslotAvailabilities', true, \n 'PickupTimeslotAvailabilityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'PickupTimeslotAvailability'}, {searchCriteria: searchCriteria });\n }\n\n export function getEstimatedPickupTimeslotAvailabilitiesAsync(context: IContext, searchCriteria?: PickupTimeslotAvailabilitySearchCriteria | null):AsyncResult {\n const request = createGetEstimatedPickupTimeslotAvailabilitiesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createCalculateSalesDocumentInput(salesDocument?: Cart | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CalculateSalesDocument', true, \n 'CartClass'\n , 'false', { bypassCache: 'get', returnEntity: 'Cart'}, {salesDocument: salesDocument });\n }\n\n export function calculateSalesDocumentAsync(context: IContext, salesDocument?: Cart | null):AsyncResult {\n const request = createCalculateSalesDocumentInput(salesDocument);\n return executeAction(request, context);\n }\n \n export function createSearchVendorsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: VendorSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchVendors', true, \n 'VendorClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Vendor'}, {searchCriteria: searchCriteria });\n }\n\n export function searchVendorsAsync(context: IContext, searchCriteria?: VendorSearchCriteria | null):AsyncResult {\n const request = createSearchVendorsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createValidateVendorApprovedForItemInput(itemId?: string | null, vendorAccountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('ValidateVendorApprovedForItem', true, \n 'VendorValidationResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'VendorValidationResult'}, {itemId: itemId, vendorAccountNumber: vendorAccountNumber });\n }\n\n export function validateVendorApprovedForItemAsync(context: IContext, itemId?: string | null, vendorAccountNumber?: string | null):AsyncResult {\n const request = createValidateVendorApprovedForItemInput(itemId, vendorAccountNumber);\n return executeAction(request, context);\n }\n \n export function createLocalizationIndiaGetBusinessVerticalsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('LocalizationIndiaGetBusinessVerticals', true, \n 'BusinessVerticalsIndiaClass'\n , 'true', { bypassCache: 'get', returnEntity: 'BusinessVerticalsIndia'}, { });\n }\n\n export function localizationIndiaGetBusinessVerticalsAsync(context: IContext):AsyncResult {\n const request = createLocalizationIndiaGetBusinessVerticalsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReportCopilotSummaryInput(reportId?: string | null, parameters?: CommerceProperty[] | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetReportCopilotSummary', true, \n 'CopilotResponseClass'\n , 'false', { bypassCache: 'none', returnEntity: 'CopilotResponse'}, {reportId: reportId, parameters: parameters });\n }\n\n export function getReportCopilotSummaryAsync(context: IContext, reportId?: string | null, parameters?: CommerceProperty[] | null):AsyncResult {\n const request = createGetReportCopilotSummaryInput(reportId, parameters);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGrids', false, \n 'ButtonGridClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, { });\n }\n\n export function getButtonGridsAsync(context: IContext):AsyncResult {\n const request = createGetButtonGridsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetButtonGridsByScreenSizeInput(queryResultSettings: IQueryResultSettings, height: number, width: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetButtonGridsByScreenSize', false, \n 'ButtonGridClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ButtonGrid'}, {height: height, width: width });\n }\n\n export function getButtonGridsByScreenSizeAsync(context: IContext, height: number, width: number):AsyncResult {\n const request = createGetButtonGridsByScreenSizeInput(context.queryResultSettings, height, width);\n return executeAction(request, context);\n }\n \n export function createGetOperationalInsightsConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOperationalInsightsConfiguration', false, \n 'OperationalInsightsConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'OperationalInsightsConfiguration'}, { });\n }\n\n export function getOperationalInsightsConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetOperationalInsightsConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetCashDeclarationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCashDeclarations', false, \n 'CashDeclarationClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CashDeclaration'}, { });\n }\n\n export function getCashDeclarationsAsync(context: IContext):AsyncResult {\n const request = createGetCashDeclarationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCountryRegionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCountryRegions', false, \n 'CountryRegionInfoClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CountryRegionInfo'}, { });\n }\n\n export function getCountryRegionsAsync(context: IContext):AsyncResult {\n const request = createGetCountryRegionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCustomerGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerGroups', false, \n 'CustomerGroupClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CustomerGroup'}, { });\n }\n\n export function getCustomerGroupsAsync(context: IContext):AsyncResult {\n const request = createGetCustomerGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetChannelDeliveryOptionConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetChannelDeliveryOptionConfiguration', false, \n 'ChannelDeliveryOptionConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ChannelDeliveryOptionConfiguration'}, { });\n }\n\n export function getChannelDeliveryOptionConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetChannelDeliveryOptionConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetChannelsByTypeInput(queryResultSettings: IQueryResultSettings, channelType?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannelsByType', false, \n 'ChannelIdentityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, {channelType: channelType });\n }\n\n export function getChannelsByTypeAsync(context: IContext, channelType?: string | null):AsyncResult {\n const request = createGetChannelsByTypeInput(context.queryResultSettings, channelType);\n return executeAction(request, context);\n }\n \n export function createGetChannelsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannels', false, \n 'ChannelIdentityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, { });\n }\n\n export function getChannelsAsync(context: IContext):AsyncResult {\n const request = createGetChannelsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOnlineChannelAzureB2CConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOnlineChannelAzureB2CConfiguration', false, \n 'OnlineChannelAzureB2CConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'OnlineChannelAzureB2CConfiguration'}, { });\n }\n\n export function getOnlineChannelAzureB2CConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetOnlineChannelAzureB2CConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createSearchChannelsInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ChannelSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchChannels', true, \n 'ChannelIdentityClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ChannelIdentity'}, {searchCriteria: searchCriteria });\n }\n\n export function searchChannelsAsync(context: IContext, searchCriteria?: ChannelSearchCriteria | null):AsyncResult {\n const request = createSearchChannelsInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetEnvironmentConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetEnvironmentConfiguration', false, \n 'EnvironmentConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'EnvironmentConfiguration'}, { });\n }\n\n export function getEnvironmentConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetEnvironmentConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetOrderManagementConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOrderManagementConfiguration', false, \n 'OrderManagementConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'OrderManagementConfiguration'}, { });\n }\n\n export function getOrderManagementConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetOrderManagementConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetPaymentConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPaymentConfiguration', false, \n 'PaymentConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'PaymentConfiguration'}, { });\n }\n\n export function getPaymentConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetPaymentConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetSearchConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetSearchConfiguration', false, \n 'SearchConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'SearchConfiguration'}, { });\n }\n\n export function getSearchConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetSearchConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetExtensionPackageDefinitionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetExtensionPackageDefinitions', false, \n 'ExtensionPackageDefinitionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ExtensionPackageDefinition'}, { });\n }\n\n export function getExtensionPackageDefinitionsAsync(context: IContext):AsyncResult {\n const request = createGetExtensionPackageDefinitionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetExtensionProfileInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetExtensionProfile', false, \n 'ExtensionProfileClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ExtensionProfile'}, { });\n }\n\n export function getExtensionProfileAsync(context: IContext):AsyncResult {\n const request = createGetExtensionProfileInput();\n return executeAction(request, context);\n }\n \n export function createGetDeviceConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetDeviceConfiguration', false, \n 'DeviceConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'DeviceConfiguration'}, { });\n }\n\n export function getDeviceConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetDeviceConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetVisualProfileInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetVisualProfile', false, \n 'VisualProfileClass'\n , 'false', { bypassCache: 'none', returnEntity: 'VisualProfile'}, { });\n }\n\n export function getVisualProfileAsync(context: IContext):AsyncResult {\n const request = createGetVisualProfileInput();\n return executeAction(request, context);\n }\n \n export function createGetLanguagesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLanguages', false, \n 'SupportedLanguageClass'\n , 'true', { bypassCache: 'none', returnEntity: 'SupportedLanguage'}, { });\n }\n\n export function getLanguagesAsync(context: IContext):AsyncResult {\n const request = createGetLanguagesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetAffiliationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAffiliations', false, \n 'AffiliationClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Affiliation'}, { });\n }\n\n export function getAffiliationsAsync(context: IContext):AsyncResult {\n const request = createGetAffiliationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOperationPermissionsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOperationPermissions', false, \n 'OperationPermissionClass'\n , 'true', { bypassCache: 'none', returnEntity: 'OperationPermission'}, { });\n }\n\n export function getOperationPermissionsAsync(context: IContext):AsyncResult {\n const request = createGetOperationPermissionsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReasonCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReasonCodes', false, \n 'ReasonCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, { });\n }\n\n export function getReasonCodesAsync(context: IContext):AsyncResult {\n const request = createGetReasonCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReturnOrderReasonCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReturnOrderReasonCodes', false, \n 'ReasonCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ReasonCode'}, { });\n }\n\n export function getReturnOrderReasonCodesAsync(context: IContext):AsyncResult {\n const request = createGetReturnOrderReasonCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetSalesTaxGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSalesTaxGroups', false, \n 'SalesTaxGroupClass'\n , 'true', { bypassCache: 'none', returnEntity: 'SalesTaxGroup'}, { });\n }\n\n export function getSalesTaxGroupsAsync(context: IContext):AsyncResult {\n const request = createGetSalesTaxGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetTenderTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTenderTypes', false, \n 'TenderTypeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'TenderType'}, { });\n }\n\n export function getTenderTypesAsync(context: IContext):AsyncResult {\n const request = createGetTenderTypesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetUnitsOfMeasureInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUnitsOfMeasure', false, \n 'UnitOfMeasureClass'\n , 'true', { bypassCache: 'none', returnEntity: 'UnitOfMeasure'}, { });\n }\n\n export function getUnitsOfMeasureAsync(context: IContext):AsyncResult {\n const request = createGetUnitsOfMeasureInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetDiscountCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDiscountCodes', false, \n 'DiscountCodeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'DiscountCode'}, { });\n }\n\n export function getDiscountCodesAsync(context: IContext):AsyncResult {\n const request = createGetDiscountCodesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCurrenciesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCurrencies', false, \n 'CurrencyClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Currency'}, { });\n }\n\n export function getCurrenciesAsync(context: IContext):AsyncResult {\n const request = createGetCurrenciesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCurrenciesAmountInput(queryResultSettings: IQueryResultSettings, currencyCode: string | null, amount: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCurrenciesAmount', false, \n 'CurrencyAmountClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CurrencyAmount'}, {currencyCode: currencyCode, amount: amount });\n }\n\n export function getCurrenciesAmountAsync(context: IContext, currencyCode: string | null, amount: number):AsyncResult {\n const request = createGetCurrenciesAmountInput(context.queryResultSettings, currencyCode, amount);\n return executeAction(request, context);\n }\n \n export function createGetCommissionSalesGroupsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCommissionSalesGroups', false, \n 'CommissionSalesGroupClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CommissionSalesGroup'}, { });\n }\n\n export function getCommissionSalesGroupsAsync(context: IContext):AsyncResult {\n const request = createGetCommissionSalesGroupsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchCommissionSalesGroupsInput(queryResultSettings: IQueryResultSettings, searchText?: string | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchCommissionSalesGroups', false, \n 'CommissionSalesGroupClass'\n , 'true', { bypassCache: 'none', returnEntity: 'CommissionSalesGroup'}, {searchText: searchText });\n }\n\n export function searchCommissionSalesGroupsAsync(context: IContext, searchText?: string | null):AsyncResult {\n const request = createSearchCommissionSalesGroupsInput(context.queryResultSettings, searchText);\n return executeAction(request, context);\n }\n \n export function createGetPaymentMerchantInformationInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPaymentMerchantInformation', false, \n 'PaymentMerchantInformationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function getPaymentMerchantInformationAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetPaymentMerchantInformationInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetPaymentPropertiesIfModifiedInput(hardwareProfileId?: string | null, merchantInformationHash?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPaymentPropertiesIfModified', false, \n 'PaymentMerchantInformationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'PaymentMerchantInformation'}, {hardwareProfileId: hardwareProfileId, merchantInformationHash: merchantInformationHash });\n }\n\n export function getPaymentPropertiesIfModifiedAsync(context: IContext, hardwareProfileId?: string | null, merchantInformationHash?: string | null):AsyncResult {\n const request = createGetPaymentPropertiesIfModifiedInput(hardwareProfileId, merchantInformationHash);\n return executeAction(request, context);\n }\n \n export function createGetOnlineChannelPublishStatusInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetOnlineChannelPublishStatus', false, '', 'false', { bypassCache: 'none', returnEntity: ''}, { });\n }\n\n export function getOnlineChannelPublishStatusAsync(context: IContext):AsyncResult {\n const request = createGetOnlineChannelPublishStatusInput();\n return executeAction(request, context);\n }\n \n export function createSetOnlineChannelPublishStatusInput(publishingStatus: number, statusMessage?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('SetOnlineChannelPublishStatus', true, '', '', { bypassCache: 'get', returnEntity: ''}, {publishingStatus: publishingStatus, statusMessage: statusMessage });\n }\n\n export function setOnlineChannelPublishStatusAsync(context: IContext, publishingStatus: number, statusMessage?: string | null):AsyncResult {\n const request = createSetOnlineChannelPublishStatusInput(publishingStatus, statusMessage);\n return executeAction(request, context);\n }\n \n export function createGetInventoryConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetInventoryConfiguration', false, \n 'ChannelInventoryConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ChannelInventoryConfiguration'}, { });\n }\n\n export function getInventoryConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetInventoryConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetMerchandisingConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetMerchandisingConfiguration', false, \n 'ChannelMerchandisingConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ChannelMerchandisingConfiguration'}, { });\n }\n\n export function getMerchandisingConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetMerchandisingConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createGetPurchaseConfigurationInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetPurchaseConfiguration', false, \n 'ChannelPurchaseConfigurationClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ChannelPurchaseConfiguration'}, { });\n }\n\n export function getPurchaseConfigurationAsync(context: IContext):AsyncResult {\n const request = createGetPurchaseConfigurationInput();\n return executeAction(request, context);\n }\n \n export function createSearchJournalNamesInput(queryResultSettings: IQueryResultSettings, searchCriteria?: InventoryJournalNameSearchCriteria | null): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchJournalNames', true, \n 'InventoryJournalNameClass'\n , 'true', { bypassCache: 'none', returnEntity: 'InventoryJournalName'}, {searchCriteria: searchCriteria });\n }\n\n export function searchJournalNamesAsync(context: IContext, searchCriteria?: InventoryJournalNameSearchCriteria | null):AsyncResult {\n const request = createSearchJournalNamesInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n }\n \n export function createGetAvailableDevicesInput(queryResultSettings: IQueryResultSettings, deviceType: number): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailableDevices', false, \n 'DeviceClass'\n , 'true', { bypassCache: 'none', returnEntity: 'Device'}, {deviceType: deviceType });\n }\n\n export function getAvailableDevicesAsync(context: IContext, deviceType: number):AsyncResult {\n const request = createGetAvailableDevicesInput(context.queryResultSettings, deviceType);\n return executeAction(request, context);\n }\n \n export function createGetUserDefinedSecretStringInput(secretName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUserDefinedSecretString', false, '', 'false', { bypassCache: 'none', returnEntity: ''}, {secretName: secretName });\n }\n\n export function getUserDefinedSecretStringAsync(context: IContext, secretName?: string | null):AsyncResult {\n const request = createGetUserDefinedSecretStringInput(secretName);\n return executeAction(request, context);\n }\n \n export function createGetUserDefinedSecretCertificateInput(secretName?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetUserDefinedSecretCertificate', false, \n 'UserDefinedSecretCertificateResultClass'\n , 'false', { bypassCache: 'none', returnEntity: 'UserDefinedSecretCertificateResult'}, {secretName: secretName });\n }\n\n export function getUserDefinedSecretCertificateAsync(context: IContext, secretName?: string | null):AsyncResult {\n const request = createGetUserDefinedSecretCertificateInput(secretName);\n return executeAction(request, context);\n }\n \n export function createGetImageBlobInput(imageId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetImageBlob', false, \n 'MediaBlobClass'\n , 'false', { bypassCache: 'none', returnEntity: 'MediaBlob'}, {imageId: imageId });\n }\n\n export function getImageBlobAsync(context: IContext, imageId: number):AsyncResult {\n const request = createGetImageBlobInput(imageId);\n return executeAction(request, context);\n }\n \n export function createGetExtensibleEnumerationsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetExtensibleEnumerations', false, \n 'ExtensibleEnumerationContainerClass'\n , 'true', { bypassCache: 'none', returnEntity: 'ExtensibleEnumerationContainer'}, { });\n }\n\n export function getExtensibleEnumerationsAsync(context: IContext):AsyncResult {\n const request = createGetExtensibleEnumerationsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetAddressPurposesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAddressPurposes', false, \n 'AddressPurposeClass'\n , 'true', { bypassCache: 'none', returnEntity: 'AddressPurpose'}, { });\n }\n\n export function getAddressPurposesAsync(context: IContext):AsyncResult {\n const request = createGetAddressPurposesInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetReturnPolicyInput(): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetReturnPolicy', false, \n 'ReturnPolicyClass'\n , 'false', { bypassCache: 'none', returnEntity: 'ReturnPolicy'}, { });\n }\n\n export function getReturnPolicyAsync(context: IContext):AsyncResult {\n const request = createGetReturnPolicyInput();\n return executeAction(request, context);\n }\n \n export function createGetEmailReceiptSettingsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n const query = storeQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetEmailReceiptSettings', false, \n 'EmailReceiptSettingsClass'\n , 'true', { bypassCache: 'none', returnEntity: 'EmailReceiptSettings'}, { });\n }\n\n export function getEmailReceiptSettingsAsync(context: IContext):AsyncResult {\n const request = createGetEmailReceiptSettingsInput(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createCheckFiscalIntegrationComplianceInput(hardwareProfileId?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('CheckFiscalIntegrationCompliance', false, \n 'FiscalIntegrationComplianceResultClass'\n , 'false', { bypassCache: 'get', returnEntity: 'FiscalIntegrationComplianceResult'}, {hardwareProfileId: hardwareProfileId });\n }\n\n export function checkFiscalIntegrationComplianceAsync(context: IContext, hardwareProfileId?: string | null):AsyncResult {\n const request = createCheckFiscalIntegrationComplianceInput(hardwareProfileId);\n return executeAction(request, context);\n }\n \n export function createGetCustomerInsightsCopilotSummaryInput(customerAccountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCustomerInsightsCopilotSummary', false, \n 'CopilotResponseClass'\n , 'false', { bypassCache: 'none', returnEntity: 'CopilotResponse'}, {customerAccountNumber: customerAccountNumber });\n }\n\n export function getCustomerInsightsCopilotSummaryAsync(context: IContext, customerAccountNumber?: string | null):AsyncResult {\n const request = createGetCustomerInsightsCopilotSummaryInput(customerAccountNumber);\n return executeAction(request, context);\n }\n \n export function createGetProductCopilotSummaryInput(productId: number): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetProductCopilotSummary', false, \n 'CopilotResponseClass'\n , 'false', { bypassCache: 'none', returnEntity: 'CopilotResponse'}, {productId: productId });\n }\n\n export function getProductCopilotSummaryAsync(context: IContext, productId: number):AsyncResult {\n const request = createGetProductCopilotSummaryInput(productId);\n return executeAction(request, context);\n }\n \n export function createGetCustomerTimelineCopilotSummaryInput(customerAccountNumber?: string | null): IDataServiceRequest {\n const query = storeQuery();\n return query.createDataServiceRequestForOperation('GetCustomerTimelineCopilotSummary', false, \n 'CopilotResponseClass'\n , 'false', { bypassCache: 'none', returnEntity: 'CopilotResponse'}, {customerAccountNumber: customerAccountNumber });\n }\n\n export function getCustomerTimelineCopilotSummaryAsync(context: IContext, customerAccountNumber?: string | null):AsyncResult {\n const request = createGetCustomerTimelineCopilotSummaryInput(customerAccountNumber);\n return executeAction(request, context);\n }\n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Product, ProductSearchCriteria, ProductRefiner, ProductDimension, ProductVariantResolutionOnKitSelectionContext, ProductDimensionValue, ProductDimensionAvailabilitySearchCriteria, ProductDimensionValueInventoryAvailability, SimpleProduct, ComponentInSlotRelation, ProductComparisonLine, ProductSearchResult, ProductRefinerValue, Address, ProductDeliveryOptions, ChangedProductsSearchCriteria, ReadChangedProductsSession, DeletedListingsResult, AssortedProductIdentity, ProductExistenceCriteria, ProductExistenceId, ProductRating, ProductAssortmentInterval, ListingPublishStatus, AttributeProduct, MediaLocationSearchCriteria, MediaLocation, ProductPrice, ProductAvailableQuantity, ProjectionDomain, AffiliationLoyaltyTier, PriceLookupContext, ProductPromotion, ProductComponent, SearchSuggestion, CategoryPathLookup, CategoryPathResult, UnitOfMeasure, UnitOfMeasureSearchCriteria, ProductUnitOfMeasure, ProductLookupClause, AttributeValue, MediaBlob, ProductRelationType, ProductWarrantiesMapping, ProductWarehouse, ProductWarehouseInventoryInformation, ProductWarehouseQuantity, UpdateProductWarehouseAvailabilityResult, InventoryAvailabilitySearchCriteria } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function productsQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Products\", \"Product\", \"ProductClass\", key);\n }\n \n export function createCreateInput(entity: Product): IDataServiceRequest {\n return productsQuery().create(entity);\n }\n\n export function createProductAsync(context: IContext, entity: Product): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Product): IDataServiceRequest {\n return productsQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Product): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Product): IDataServiceRequest {\n return productsQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Product): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return productsQuery(recordId).read();\n }\n\n export function readAsync(context: IContext, recordId: number): AsyncResult {\n const request = createReadAsync(recordId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return productsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, \n 'ProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria });\n } \n \n export function searchAsync(context: IContext, productSearchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, productSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetRefinersInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefiners', true, \n 'ProductRefinerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {productSearchCriteria: productSearchCriteria });\n } \n \n export function getRefinersAsync(context: IContext, productSearchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createGetRefinersInput(context.queryResultSettings, productSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDimensionValuesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, dimension: number, matchingDimensionValues?: ProductDimension[] | null, kitVariantResolutionContext?: ProductVariantResolutionOnKitSelectionContext | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDimensionValues', true, \n 'ProductDimensionValueClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductDimensionValue'}, {channelId: channelId, dimension: dimension, matchingDimensionValues: matchingDimensionValues, kitVariantResolutionContext: kitVariantResolutionContext });\n } \n \n export function getDimensionValuesAsync(context: IContext, recordId: number, channelId: number, dimension: number, matchingDimensionValues?: ProductDimension[] | null, kitVariantResolutionContext?: ProductVariantResolutionOnKitSelectionContext | null):AsyncResult {\n const request = createGetDimensionValuesInput(context.queryResultSettings, recordId, channelId, dimension, matchingDimensionValues, kitVariantResolutionContext);\n return executeAction(request, context);\n } \n \n export function createGetDimensionValuesWithEstimatedAvailabilitiesInput(queryResultSettings: IQueryResultSettings, recordId: number, searchCriteria?: ProductDimensionAvailabilitySearchCriteria | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDimensionValuesWithEstimatedAvailabilities', true, \n 'ProductDimensionValueInventoryAvailabilityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductDimensionValueInventoryAvailability'}, {searchCriteria: searchCriteria });\n } \n \n export function getDimensionValuesWithEstimatedAvailabilitiesAsync(context: IContext, recordId: number, searchCriteria?: ProductDimensionAvailabilitySearchCriteria | null):AsyncResult {\n const request = createGetDimensionValuesWithEstimatedAvailabilitiesInput(context.queryResultSettings, recordId, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetVariantsByDimensionValuesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, matchingDimensionValues?: ProductDimension[] | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetVariantsByDimensionValues', true, \n 'SimpleProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, matchingDimensionValues: matchingDimensionValues });\n } \n \n export function getVariantsByDimensionValuesAsync(context: IContext, recordId: number, channelId: number, matchingDimensionValues?: ProductDimension[] | null):AsyncResult {\n const request = createGetVariantsByDimensionValuesInput(context.queryResultSettings, recordId, channelId, matchingDimensionValues);\n return executeAction(request, context);\n } \n \n export function createGetVariantsByComponentsInSlotsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, matchingSlotToComponentRelationship?: ComponentInSlotRelation[] | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetVariantsByComponentsInSlots', true, \n 'SimpleProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, matchingSlotToComponentRelationship: matchingSlotToComponentRelationship });\n } \n \n export function getVariantsByComponentsInSlotsAsync(context: IContext, recordId: number, channelId: number, matchingSlotToComponentRelationship?: ComponentInSlotRelation[] | null):AsyncResult {\n const request = createGetVariantsByComponentsInSlotsInput(context.queryResultSettings, recordId, channelId, matchingSlotToComponentRelationship);\n return executeAction(request, context);\n } \n \n export function createGetByIdsInput(queryResultSettings: IQueryResultSettings, channelId: number, productIds: number[], inventLocationId?: string | null, catalogId?: number | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByIds', true, \n 'SimpleProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, productIds: productIds, inventLocationId: inventLocationId, catalogId: catalogId });\n } \n \n export function getByIdsAsync(context: IContext, channelId: number, productIds: number[], inventLocationId?: string | null, catalogId?: number | null):AsyncResult {\n const request = createGetByIdsInput(context.queryResultSettings, channelId, productIds, inventLocationId, catalogId);\n return executeAction(request, context);\n } \n \n export function createCompareInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, productIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Compare', true, \n 'ProductComparisonLineClass'\n , 'true', {bypassCache: 'get', returnEntity: 'ProductComparisonLine'}, {channelId: channelId, catalogId: catalogId, productIds: productIds });\n } \n \n export function compareAsync(context: IContext, channelId: number, catalogId: number, productIds: number[]):AsyncResult {\n const request = createCompareInput(context.queryResultSettings, channelId, catalogId, productIds);\n return executeAction(request, context);\n } \n \n export function createGetRecommendedProductsInput(queryResultSettings: IQueryResultSettings, productIds: number[], customerId?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRecommendedProducts', true, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {productIds: productIds, customerId: customerId });\n } \n \n export function getRecommendedProductsAsync(context: IContext, productIds: number[], customerId?: string | null):AsyncResult {\n const request = createGetRecommendedProductsInput(context.queryResultSettings, productIds, customerId);\n return executeAction(request, context);\n } \n \n export function createRefineSearchByCategoryInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryId: number, refinementCriteria?: ProductRefinerValue[] | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('RefineSearchByCategory', true, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'get', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, categoryId: categoryId, refinementCriteria: refinementCriteria });\n } \n \n export function refineSearchByCategoryAsync(context: IContext, channelId: number, catalogId: number, categoryId: number, refinementCriteria?: ProductRefinerValue[] | null):AsyncResult {\n const request = createRefineSearchByCategoryInput(context.queryResultSettings, channelId, catalogId, categoryId, refinementCriteria);\n return executeAction(request, context);\n } \n \n export function createRefineSearchByTextInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null, refinementCriteria?: ProductRefinerValue[] | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('RefineSearchByText', true, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'get', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, searchText: searchText, refinementCriteria: refinementCriteria });\n } \n \n export function refineSearchByTextAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null, refinementCriteria?: ProductRefinerValue[] | null):AsyncResult {\n const request = createRefineSearchByTextInput(context.queryResultSettings, channelId, catalogId, searchText, refinementCriteria);\n return executeAction(request, context);\n } \n \n export function createGetProductSearchRefinersInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductSearchRefiners', true, \n 'ProductRefinerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {searchCriteria: searchCriteria });\n } \n \n export function getProductSearchRefinersAsync(context: IContext, searchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createGetProductSearchRefinersInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, productIds: number[], address?: Address | null, filterOption?: number | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeliveryOptions', true, \n 'ProductDeliveryOptionsClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductDeliveryOptions'}, {productIds: productIds, address: address, filterOption: filterOption });\n } \n \n export function getDeliveryOptionsAsync(context: IContext, productIds: number[], address?: Address | null, filterOption?: number | null):AsyncResult {\n const request = createGetDeliveryOptionsInput(context.queryResultSettings, productIds, address, filterOption);\n return executeAction(request, context);\n } \n \n export function createChangesInput(queryResultSettings: IQueryResultSettings, productSearchCriteria?: ChangedProductsSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Changes', true, \n 'ProductClass'\n , 'true', {bypassCache: 'get', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria });\n } \n \n export function changesAsync(context: IContext, productSearchCriteria?: ChangedProductsSearchCriteria | null):AsyncResult {\n const request = createChangesInput(context.queryResultSettings, productSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createBeginReadChangedProductsInput(changedProductSearchCriteria?: ChangedProductsSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('BeginReadChangedProducts', true, \n 'ReadChangedProductsSessionClass'\n , 'false', {bypassCache: 'get', returnEntity: 'ReadChangedProductsSession'}, {changedProductSearchCriteria: changedProductSearchCriteria });\n } \n \n export function beginReadChangedProductsAsync(context: IContext, changedProductSearchCriteria?: ChangedProductsSearchCriteria | null):AsyncResult {\n const request = createBeginReadChangedProductsInput(changedProductSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createReadChangedProductsInput(queryResultSettings: IQueryResultSettings, productSearchCriteria: ChangedProductsSearchCriteria | null, skipProductPriceCalculation?: boolean): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('ReadChangedProducts', true, \n 'ProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Product'}, {productSearchCriteria: productSearchCriteria, skipProductPriceCalculation: skipProductPriceCalculation });\n } \n \n export function readChangedProductsAsync(context: IContext, productSearchCriteria: ChangedProductsSearchCriteria | null, skipProductPriceCalculation?: boolean):AsyncResult {\n const request = createReadChangedProductsInput(context.queryResultSettings, productSearchCriteria, skipProductPriceCalculation);\n return executeAction(request, context);\n } \n \n export function createGetDeletedListingsInput(catalogId: number, skip: number, top: number): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetDeletedListings', true, \n 'DeletedListingsResultClass'\n , 'false', {bypassCache: 'none', returnEntity: 'DeletedListingsResult'}, {catalogId: catalogId, skip: skip, top: top });\n } \n \n export function getDeletedListingsAsync(context: IContext, catalogId: number, skip: number, top: number):AsyncResult {\n const request = createGetDeletedListingsInput(catalogId, skip, top);\n return executeAction(request, context);\n } \n \n export function createGetAssortedProductIdsInput(queryResultSettings: IQueryResultSettings, productIds: number[], includeFutureAssortedProducts: boolean): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAssortedProductIds', true, \n 'AssortedProductIdentityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AssortedProductIdentity'}, {productIds: productIds, includeFutureAssortedProducts: includeFutureAssortedProducts });\n } \n \n export function getAssortedProductIdsAsync(context: IContext, productIds: number[], includeFutureAssortedProducts: boolean):AsyncResult {\n const request = createGetAssortedProductIdsInput(context.queryResultSettings, productIds, includeFutureAssortedProducts);\n return executeAction(request, context);\n } \n \n export function createCheckProductsExistenceInput(queryResultSettings: IQueryResultSettings, productExistenceCriteria?: ProductExistenceCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('CheckProductsExistence', true, \n 'ProductExistenceIdClass'\n , 'true', {bypassCache: 'get', returnEntity: 'ProductExistenceId'}, {productExistenceCriteria: productExistenceCriteria });\n } \n \n export function checkProductsExistenceAsync(context: IContext, productExistenceCriteria?: ProductExistenceCriteria | null):AsyncResult {\n const request = createCheckProductsExistenceInput(context.queryResultSettings, productExistenceCriteria);\n return executeAction(request, context);\n } \n \n export function createGetDeletedCatalogsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeletedCatalogs', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n } \n \n export function getDeletedCatalogsAsync(context: IContext, ):AsyncResult {\n const request = createGetDeletedCatalogsInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetDeletedLanguagesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeletedLanguages', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n } \n \n export function getDeletedLanguagesAsync(context: IContext, ):AsyncResult {\n const request = createGetDeletedLanguagesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetProductRatingsInput(queryResultSettings: IQueryResultSettings, productIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductRatings', true, \n 'ProductRatingClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRating'}, {productIds: productIds });\n } \n \n export function getProductRatingsAsync(context: IContext, productIds: number[]):AsyncResult {\n const request = createGetProductRatingsInput(context.queryResultSettings, productIds);\n return executeAction(request, context);\n } \n \n export function createGetProductAssortmentIntervalsInput(queryResultSettings: IQueryResultSettings, productIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAssortmentIntervals', true, \n 'ProductAssortmentIntervalClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductAssortmentInterval'}, {productIds: productIds });\n } \n \n export function getProductAssortmentIntervalsAsync(context: IContext, productIds: number[]):AsyncResult {\n const request = createGetProductAssortmentIntervalsInput(context.queryResultSettings, productIds);\n return executeAction(request, context);\n } \n \n export function createDeleteListingsByCatalogsInput(catalogIds: number[]): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('DeleteListingsByCatalogs', true, '', '', {bypassCache: 'get', returnEntity: ''}, {catalogIds: catalogIds });\n } \n \n export function deleteListingsByCatalogsAsync(context: IContext, catalogIds: number[]):AsyncResult {\n const request = createDeleteListingsByCatalogsInput(catalogIds);\n return executeAction(request, context);\n } \n \n export function createDeleteListingsByLanguagesInput(languages?: string[] | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('DeleteListingsByLanguages', true, '', '', {bypassCache: 'get', returnEntity: ''}, {languages: languages });\n } \n \n export function deleteListingsByLanguagesAsync(context: IContext, languages?: string[] | null):AsyncResult {\n const request = createDeleteListingsByLanguagesInput(languages);\n return executeAction(request, context);\n } \n \n export function createEndReadChangedProductsInput(session?: ReadChangedProductsSession | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('EndReadChangedProducts', true, '', '', {bypassCache: 'get', returnEntity: ''}, {session: session });\n } \n \n export function endReadChangedProductsAsync(context: IContext, session?: ReadChangedProductsSession | null):AsyncResult {\n const request = createEndReadChangedProductsInput(session);\n return executeAction(request, context);\n } \n \n export function createUpdateListingPublishingStatusInput(publishingStatuses?: ListingPublishStatus[] | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('UpdateListingPublishingStatus', true, '', '', {bypassCache: 'get', returnEntity: ''}, {publishingStatuses: publishingStatuses });\n } \n \n export function updateListingPublishingStatusAsync(context: IContext, publishingStatuses?: ListingPublishStatus[] | null):AsyncResult {\n const request = createUpdateListingPublishingStatusInput(publishingStatuses);\n return executeAction(request, context);\n } \n \n export function createGetCatalogProductAttributesInput(queryResultSettings: IQueryResultSettings, catalogId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCatalogProductAttributes', true, \n 'AttributeProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AttributeProduct'}, {catalogId: catalogId });\n } \n \n export function getCatalogProductAttributesAsync(context: IContext, catalogId: number):AsyncResult {\n const request = createGetCatalogProductAttributesInput(context.queryResultSettings, catalogId);\n return executeAction(request, context);\n } \n \n export function createSearchMediaLocationsInput(queryResultSettings: IQueryResultSettings, mediaLocationSearchCriteria?: MediaLocationSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchMediaLocations', true, \n 'MediaLocationClass'\n , 'true', {bypassCache: 'none', returnEntity: 'MediaLocation'}, {mediaLocationSearchCriteria: mediaLocationSearchCriteria });\n } \n \n export function searchMediaLocationsAsync(context: IContext, mediaLocationSearchCriteria?: MediaLocationSearchCriteria | null):AsyncResult {\n const request = createSearchMediaLocationsInput(context.queryResultSettings, mediaLocationSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetPricesInput(queryResultSettings: IQueryResultSettings, itemId: string | null, inventoryDimensionId: string | null, barcode: string | null, customerAccountNumber: string | null, unitOfMeasureSymbol: string | null, quantity: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPrices', true, \n 'ProductPriceClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {itemId: itemId, inventoryDimensionId: inventoryDimensionId, barcode: barcode, customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol, quantity: quantity });\n } \n \n export function getPricesAsync(context: IContext, itemId: string | null, inventoryDimensionId: string | null, barcode: string | null, customerAccountNumber: string | null, unitOfMeasureSymbol: string | null, quantity: number):AsyncResult {\n const request = createGetPricesInput(context.queryResultSettings, itemId, inventoryDimensionId, barcode, customerAccountNumber, unitOfMeasureSymbol, quantity);\n return executeAction(request, context);\n } \n \n export function createGetProductAvailabilitiesInput(queryResultSettings: IQueryResultSettings, itemIds: number[], channelId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAvailabilities', true, \n 'ProductAvailableQuantityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductAvailableQuantity'}, {itemIds: itemIds, channelId: channelId });\n } \n \n export function getProductAvailabilitiesAsync(context: IContext, itemIds: number[], channelId: number):AsyncResult {\n const request = createGetProductAvailabilitiesInput(context.queryResultSettings, itemIds, channelId);\n return executeAction(request, context);\n } \n \n export function createGetActivePricesInput(queryResultSettings: IQueryResultSettings, projectDomain: ProjectionDomain | null, productIds?: number[], activeDate?: Date, customerId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null, includeSimpleDiscountsInContextualPrice?: boolean | null, includeVariantPriceRange?: boolean | null, includeAttainablePricesAndDiscounts?: boolean | null, priceLookupContext?: PriceLookupContext | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetActivePrices', true, \n 'ProductPriceClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {projectDomain: projectDomain, productIds: productIds, activeDate: activeDate, customerId: customerId, affiliationLoyaltyTiers: affiliationLoyaltyTiers, includeSimpleDiscountsInContextualPrice: includeSimpleDiscountsInContextualPrice, includeVariantPriceRange: includeVariantPriceRange, includeAttainablePricesAndDiscounts: includeAttainablePricesAndDiscounts, priceLookupContext: priceLookupContext });\n } \n \n export function getActivePricesAsync(context: IContext, projectDomain: ProjectionDomain | null, productIds?: number[], activeDate?: Date, customerId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null, includeSimpleDiscountsInContextualPrice?: boolean | null, includeVariantPriceRange?: boolean | null, includeAttainablePricesAndDiscounts?: boolean | null, priceLookupContext?: PriceLookupContext | null):AsyncResult {\n const request = createGetActivePricesInput(context.queryResultSettings, projectDomain, productIds, activeDate, customerId, affiliationLoyaltyTiers, includeSimpleDiscountsInContextualPrice, includeVariantPriceRange, includeAttainablePricesAndDiscounts, priceLookupContext);\n return executeAction(request, context);\n } \n \n export function createGetProductPromotionsInput(queryResultSettings: IQueryResultSettings, productDiscountIds: string[] | null, priceLookupContext: PriceLookupContext | null, activeDate?: Date): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductPromotions', true, \n 'ProductPromotionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductPromotion'}, {productDiscountIds: productDiscountIds, priceLookupContext: priceLookupContext, activeDate: activeDate });\n } \n \n export function getProductPromotionsAsync(context: IContext, productDiscountIds: string[] | null, priceLookupContext: PriceLookupContext | null, activeDate?: Date):AsyncResult {\n const request = createGetProductPromotionsInput(context.queryResultSettings, productDiscountIds, priceLookupContext, activeDate);\n return executeAction(request, context);\n } \n \n export function createGetFilteredSlotComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, slotId: number, selectedComponents?: ComponentInSlotRelation[] | null): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFilteredSlotComponents', true, \n 'ProductComponentClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId, slotId: slotId, selectedComponents: selectedComponents });\n } \n \n export function getFilteredSlotComponentsAsync(context: IContext, recordId: number, channelId: number, slotId: number, selectedComponents?: ComponentInSlotRelation[] | null):AsyncResult {\n const request = createGetFilteredSlotComponentsInput(context.queryResultSettings, recordId, channelId, slotId, selectedComponents);\n return executeAction(request, context);\n } \n \n export function createGetComponentByProductSlotRelationInput(channelId: number, componentRelation?: ComponentInSlotRelation | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetComponentByProductSlotRelation', true, \n 'ProductComponentClass'\n , 'false', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId, componentRelation: componentRelation });\n } \n \n export function getComponentByProductSlotRelationAsync(context: IContext, channelId: number, componentRelation?: ComponentInSlotRelation | null):AsyncResult {\n const request = createGetComponentByProductSlotRelationInput(channelId, componentRelation);\n return executeAction(request, context);\n } \n \n export function createGetSearchSuggestionsInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null, hitPrefix?: string | null, hitSuffix?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSearchSuggestions', false, \n 'SearchSuggestionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SearchSuggestion'}, {channelId: channelId, catalogId: catalogId, searchText: searchText, hitPrefix: hitPrefix, hitSuffix: hitSuffix });\n } \n \n export function getSearchSuggestionsAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null, hitPrefix?: string | null, hitSuffix?: string | null):AsyncResult {\n const request = createGetSearchSuggestionsInput(context.queryResultSettings, channelId, catalogId, searchText, hitPrefix, hitSuffix);\n return executeAction(request, context);\n } \n \n export function createGetCategoryPathsInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryPathLookups?: CategoryPathLookup[] | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCategoryPaths', true, \n 'CategoryPathResultClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CategoryPathResult'}, {channelId: channelId, catalogId: catalogId, CategoryPathLookups: categoryPathLookups });\n } \n \n export function getCategoryPathsAsync(context: IContext, channelId: number, catalogId: number, categoryPathLookups?: CategoryPathLookup[] | null):AsyncResult {\n const request = createGetCategoryPathsInput(context.queryResultSettings, channelId, catalogId, categoryPathLookups);\n return executeAction(request, context);\n } \n \n export function createGetUnitsOfMeasureInput(queryResultSettings: IQueryResultSettings, recordId: number, ): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUnitsOfMeasure', false, \n 'UnitOfMeasureClass'\n , 'true', {bypassCache: 'none', returnEntity: 'UnitOfMeasure'}, { });\n } \n \n export function getUnitsOfMeasureAsync(context: IContext, recordId: number):AsyncResult {\n const request = createGetUnitsOfMeasureInput(context.queryResultSettings, recordId);\n return executeAction(request, context);\n } \n \n export function createGetProductUnitsOfMeasureInput(queryResultSettings: IQueryResultSettings, productId: number, unitOfMeasureSearchCriteria?: UnitOfMeasureSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductUnitsOfMeasure', true, \n 'ProductUnitOfMeasureClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductUnitOfMeasure'}, {productId: productId, unitOfMeasureSearchCriteria: unitOfMeasureSearchCriteria });\n } \n \n export function getProductUnitsOfMeasureAsync(context: IContext, productId: number, unitOfMeasureSearchCriteria?: UnitOfMeasureSearchCriteria | null):AsyncResult {\n const request = createGetProductUnitsOfMeasureInput(context.queryResultSettings, productId, unitOfMeasureSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchByCategoryInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, categoryId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByCategory', false, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, categoryId: categoryId });\n } \n \n export function searchByCategoryAsync(context: IContext, channelId: number, catalogId: number, categoryId: number):AsyncResult {\n const request = createSearchByCategoryInput(context.queryResultSettings, channelId, catalogId, categoryId);\n return executeAction(request, context);\n } \n \n export function createSearchByTextInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId: number, searchText?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByText', false, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, searchText: searchText });\n } \n \n export function searchByTextAsync(context: IContext, channelId: number, catalogId: number, searchText?: string | null):AsyncResult {\n const request = createSearchByTextInput(context.queryResultSettings, channelId, catalogId, searchText);\n return executeAction(request, context);\n } \n \n export function createSearchByCriteriaInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductSearchCriteria | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByCriteria', true, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {searchCriteria: searchCriteria });\n } \n \n export function searchByCriteriaAsync(context: IContext, searchCriteria?: ProductSearchCriteria | null):AsyncResult {\n const request = createSearchByCriteriaInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetByLookupClausesInput(queryResultSettings: IQueryResultSettings, channelId: number, productLookupClauses?: ProductLookupClause[] | null, catalogId?: number | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByLookupClauses', true, \n 'SimpleProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId, productLookupClauses: productLookupClauses, catalogId: catalogId });\n } \n \n export function getByLookupClausesAsync(context: IContext, channelId: number, productLookupClauses?: ProductLookupClause[] | null, catalogId?: number | null):AsyncResult {\n const request = createGetByLookupClausesInput(context.queryResultSettings, channelId, productLookupClauses, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetRefinersByCategoryInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryId: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinersByCategory', false, \n 'ProductRefinerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {catalogId: catalogId, categoryId: categoryId });\n } \n \n export function getRefinersByCategoryAsync(context: IContext, catalogId: number, categoryId: number):AsyncResult {\n const request = createGetRefinersByCategoryInput(context.queryResultSettings, catalogId, categoryId);\n return executeAction(request, context);\n } \n \n export function createGetRefinersByTextInput(queryResultSettings: IQueryResultSettings, catalogId: number, searchText?: string | null): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinersByText', false, \n 'ProductRefinerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRefiner'}, {catalogId: catalogId, searchText: searchText });\n } \n \n export function getRefinersByTextAsync(context: IContext, catalogId: number, searchText?: string | null):AsyncResult {\n const request = createGetRefinersByTextInput(context.queryResultSettings, catalogId, searchText);\n return executeAction(request, context);\n } \n \n export function createGetRefinerValuesByCategoryInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryId: number, refinerId: number, refinerSourceValue: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinerValuesByCategory', false, \n 'ProductRefinerValueClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRefinerValue'}, {catalogId: catalogId, categoryId: categoryId, refinerId: refinerId, refinerSourceValue: refinerSourceValue });\n } \n \n export function getRefinerValuesByCategoryAsync(context: IContext, catalogId: number, categoryId: number, refinerId: number, refinerSourceValue: number):AsyncResult {\n const request = createGetRefinerValuesByCategoryInput(context.queryResultSettings, catalogId, categoryId, refinerId, refinerSourceValue);\n return executeAction(request, context);\n } \n \n export function createGetRefinerValuesByTextInput(queryResultSettings: IQueryResultSettings, catalogId: number, searchText: string | null, refinerId: number, refinerSourceValue: number): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefinerValuesByText', false, \n 'ProductRefinerValueClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRefinerValue'}, {catalogId: catalogId, searchText: searchText, refinerId: refinerId, refinerSourceValue: refinerSourceValue });\n } \n \n export function getRefinerValuesByTextAsync(context: IContext, catalogId: number, searchText: string | null, refinerId: number, refinerSourceValue: number):AsyncResult {\n const request = createGetRefinerValuesByTextInput(context.queryResultSettings, catalogId, searchText, refinerId, refinerSourceValue);\n return executeAction(request, context);\n } \n \n export function createGetChannelProductAttributesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannelProductAttributes', false, \n 'AttributeProductClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AttributeProduct'}, { });\n } \n \n export function getChannelProductAttributesAsync(context: IContext, ):AsyncResult {\n const request = createGetChannelProductAttributesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetByIdInput(recordId: number, channelId: number): IDataServiceRequest { \n const query = productsQuery(recordId);\n return query.createDataServiceRequestForOperation('GetById', false, \n 'SimpleProductClass'\n , 'false', {bypassCache: 'none', returnEntity: 'SimpleProduct'}, {channelId: channelId });\n } \n \n export function getByIdAsync(context: IContext, recordId: number, channelId: number):AsyncResult {\n const request = createGetByIdInput(recordId, channelId);\n return executeAction(request, context);\n } \n \n export function createGetAttributeValuesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributeValues', false, \n 'AttributeValueClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AttributeValue'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getAttributeValuesAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetAttributeValuesInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetMediaLocationsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMediaLocations', false, \n 'MediaLocationClass'\n , 'true', {bypassCache: 'none', returnEntity: 'MediaLocation'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getMediaLocationsAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetMediaLocationsInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetMediaBlobsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetMediaBlobs', false, \n 'MediaBlobClass'\n , 'true', {bypassCache: 'none', returnEntity: 'MediaBlob'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getMediaBlobsAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetMediaBlobsInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetDefaultComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDefaultComponents', false, \n 'ProductComponentClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId });\n } \n \n export function getDefaultComponentsAsync(context: IContext, recordId: number, channelId: number):AsyncResult {\n const request = createGetDefaultComponentsInput(context.queryResultSettings, recordId, channelId);\n return executeAction(request, context);\n } \n \n export function createGetSlotComponentsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, slotId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSlotComponents', false, \n 'ProductComponentClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductComponent'}, {channelId: channelId, slotId: slotId });\n } \n \n export function getSlotComponentsAsync(context: IContext, recordId: number, channelId: number, slotId: number):AsyncResult {\n const request = createGetSlotComponentsInput(context.queryResultSettings, recordId, channelId, slotId);\n return executeAction(request, context);\n } \n \n export function createGetAllRelationTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAllRelationTypes', false, \n 'ProductRelationTypeClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRelationType'}, { });\n } \n \n export function getAllRelationTypesAsync(context: IContext, ):AsyncResult {\n const request = createGetAllRelationTypesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetRelationTypesInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRelationTypes', false, \n 'ProductRelationTypeClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductRelationType'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getRelationTypesAsync(context: IContext, recordId: number, channelId: number, catalogId: number):AsyncResult {\n const request = createGetRelationTypesInput(context.queryResultSettings, recordId, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetRelatedProductsInput(queryResultSettings: IQueryResultSettings, recordId: number, channelId: number, catalogId: number, relationTypeId: number): IDataServiceRequest { \n const query = productsQuery(recordId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRelatedProducts', false, \n 'ProductSearchResultClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductSearchResult'}, {channelId: channelId, catalogId: catalogId, relationTypeId: relationTypeId });\n } \n \n export function getRelatedProductsAsync(context: IContext, recordId: number, channelId: number, catalogId: number, relationTypeId: number):AsyncResult {\n const request = createGetRelatedProductsInput(context.queryResultSettings, recordId, channelId, catalogId, relationTypeId);\n return executeAction(request, context);\n } \n \n export function createGetApplicableWarrantiesInput(queryResultSettings: IQueryResultSettings, catalogId: number, warrantableProductIds: number[]): IDataServiceRequest { \n const query = productsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetApplicableWarranties', true, \n 'ProductWarrantiesMappingClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductWarrantiesMapping'}, {catalogId: catalogId, warrantableProductIds: warrantableProductIds });\n } \n \n export function getApplicableWarrantiesAsync(context: IContext, catalogId: number, warrantableProductIds: number[]):AsyncResult {\n const request = createGetApplicableWarrantiesInput(context.queryResultSettings, catalogId, warrantableProductIds);\n return executeAction(request, context);\n } \n \n export function createGetPriceInput(recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null): IDataServiceRequest { \n const query = productsQuery(recordId);\n return query.createDataServiceRequestForOperation('GetPrice', false, \n 'ProductPriceClass'\n , 'false', {bypassCache: 'none', returnEntity: 'ProductPrice'}, {customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol });\n } \n \n export function getPriceAsync(context: IContext, recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null):AsyncResult {\n const request = createGetPriceInput(recordId, customerAccountNumber, unitOfMeasureSymbol);\n return executeAction(request, context);\n } \n \n export function createCalculateProductPriceInput(recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null, loyaltyCardId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null): IDataServiceRequest { \n const query = productsQuery(recordId);\n return query.createDataServiceRequestForOperation('CalculateProductPrice', true, \n 'ProductPriceClass'\n , 'false', {bypassCache: 'get', returnEntity: 'ProductPrice'}, {customerAccountNumber: customerAccountNumber, unitOfMeasureSymbol: unitOfMeasureSymbol, loyaltyCardId: loyaltyCardId, affiliationLoyaltyTiers: affiliationLoyaltyTiers });\n } \n \n export function calculateProductPriceAsync(context: IContext, recordId: number, customerAccountNumber?: string | null, unitOfMeasureSymbol?: string | null, loyaltyCardId?: string | null, affiliationLoyaltyTiers?: AffiliationLoyaltyTier[] | null):AsyncResult {\n const request = createCalculateProductPriceInput(recordId, customerAccountNumber, unitOfMeasureSymbol, loyaltyCardId, affiliationLoyaltyTiers);\n return executeAction(request, context);\n } \n \n export function createGetEstimatedProductWarehouseAvailabilityInput(productWarehouses?: ProductWarehouse[] | null, quantityUnitType?: number | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetEstimatedProductWarehouseAvailability', true, \n 'ProductWarehouseInventoryInformationClass'\n , 'false', {bypassCache: 'none', returnEntity: 'ProductWarehouseInventoryInformation'}, {productWarehouses: productWarehouses, quantityUnitType: quantityUnitType });\n } \n \n export function getEstimatedProductWarehouseAvailabilityAsync(context: IContext, productWarehouses?: ProductWarehouse[] | null, quantityUnitType?: number | null):AsyncResult {\n const request = createGetEstimatedProductWarehouseAvailabilityInput(productWarehouses, quantityUnitType);\n return executeAction(request, context);\n } \n \n export function createUpdateProductWarehouseAvailabilityInput(quantities?: ProductWarehouseQuantity[] | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('UpdateProductWarehouseAvailability', true, \n 'UpdateProductWarehouseAvailabilityResultClass'\n , 'false', {bypassCache: 'get', returnEntity: 'UpdateProductWarehouseAvailabilityResult'}, {quantities: quantities });\n } \n \n export function updateProductWarehouseAvailabilityAsync(context: IContext, quantities?: ProductWarehouseQuantity[] | null):AsyncResult {\n const request = createUpdateProductWarehouseAvailabilityInput(quantities);\n return executeAction(request, context);\n } \n \n export function createGetEstimatedAvailabilityInput(searchCriteria?: InventoryAvailabilitySearchCriteria | null): IDataServiceRequest { \n const query = productsQuery();\n return query.createDataServiceRequestForOperation('GetEstimatedAvailability', true, \n 'ProductWarehouseInventoryInformationClass'\n , 'false', {bypassCache: 'none', returnEntity: 'ProductWarehouseInventoryInformation'}, {searchCriteria: searchCriteria });\n } \n \n export function getEstimatedAvailabilityAsync(context: IContext, searchCriteria?: InventoryAvailabilitySearchCriteria | null):AsyncResult {\n const request = createGetEstimatedAvailabilityInput(searchCriteria);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Cart, CartSearchCriteria, TokenizedPaymentCard, CartTenderLine, SalesOrder, LoyaltyPointRedemptionEstimate, TenderLine, LineShippingAddress, SalesLineDeliveryOption, CartDeliveryPreferences, Address, DeliveryOption, LineDeliverySpecification, DeliverySpecification, ReasonCodeLine, CartLine, ReturnCartLine, TenderDiscountLine, ReceiptRetrievalCriteria, Receipt, RecallInvoicedSalesLineLookup, CardPaymentAcceptSettings, CommerceProperty, CardPaymentAcceptPoint, RetrievePaymentResultSettings, CardPaymentAcceptResult, RecallOrderSearchCriteria, CartPromotions, CartPromotionLine, CartLineUserAlerts, ChargeCode, TenderTypeAmount, CartConfiguration, CartLineValidationResults } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function cartsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"Carts\", \"Cart\", \"CartClass\", key);\n }\n \n export function createCreateInput(entity: Cart): IDataServiceRequest {\n return cartsQuery().create(entity);\n }\n\n export function createCartAsync(context: IContext, entity: Cart): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Cart): IDataServiceRequest {\n return cartsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Cart): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Cart): IDataServiceRequest {\n return cartsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Cart): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return cartsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return cartsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, cartSearchCriteria?: CartSearchCriteria | null): IDataServiceRequest { \n const query = cartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, \n 'CartClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Cart'}, {cartSearchCriteria: cartSearchCriteria });\n } \n \n export function searchAsync(context: IContext, cartSearchCriteria?: CartSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, cartSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createCheckoutInput(id: string, receiptEmail?: string | null, tokenizedPaymentCard?: TokenizedPaymentCard | null, receiptNumberSequence?: string | null, cartTenderLines?: CartTenderLine[] | null, cartVersion?: number | null, checkoutLocation?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Checkout', true, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {receiptEmail: receiptEmail, tokenizedPaymentCard: tokenizedPaymentCard, receiptNumberSequence: receiptNumberSequence, cartTenderLines: cartTenderLines, cartVersion: cartVersion, checkoutLocation: checkoutLocation });\n } \n \n export function checkoutAsync(context: IContext, id: string, receiptEmail?: string | null, tokenizedPaymentCard?: TokenizedPaymentCard | null, receiptNumberSequence?: string | null, cartTenderLines?: CartTenderLine[] | null, cartVersion?: number | null, checkoutLocation?: number | null):AsyncResult {\n const request = createCheckoutInput(id, receiptEmail, tokenizedPaymentCard, receiptNumberSequence, cartTenderLines, cartVersion, checkoutLocation);\n return executeAction(request, context);\n } \n \n export function createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput(id: string, loyaltyCardId?: string | null, currencyCode?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetMaxLoyaltyPointsToRedeemForTransactionBalance', true, \n 'LoyaltyPointRedemptionEstimateClass'\n , 'false', {bypassCache: 'none', returnEntity: 'LoyaltyPointRedemptionEstimate'}, {loyaltyCardId: loyaltyCardId, currencyCode: currencyCode });\n } \n \n export function getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync(context: IContext, id: string, loyaltyCardId?: string | null, currencyCode?: string | null):AsyncResult {\n const request = createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput(id, loyaltyCardId, currencyCode);\n return executeAction(request, context);\n } \n \n export function createGetPaymentsHistoryInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPaymentsHistory', true, \n 'TenderLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'TenderLine'}, { });\n } \n \n export function getPaymentsHistoryAsync(context: IContext, id: string):AsyncResult {\n const request = createGetPaymentsHistoryInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createGetLineDeliveryOptionsByChannelIdInput(queryResultSettings: IQueryResultSettings, id: string, lineShippingAddresses: LineShippingAddress[] | null, channelId: number, filterOption?: number | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLineDeliveryOptionsByChannelId', true, \n 'SalesLineDeliveryOptionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesLineDeliveryOption'}, {lineShippingAddresses: lineShippingAddresses, channelId: channelId, filterOption: filterOption });\n } \n \n export function getLineDeliveryOptionsByChannelIdAsync(context: IContext, id: string, lineShippingAddresses: LineShippingAddress[] | null, channelId: number, filterOption?: number | null):AsyncResult {\n const request = createGetLineDeliveryOptionsByChannelIdInput(context.queryResultSettings, id, lineShippingAddresses, channelId, filterOption);\n return executeAction(request, context);\n } \n \n export function createGetLineDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, id: string, lineShippingAddresses?: LineShippingAddress[] | null, filterOption?: number | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetLineDeliveryOptions', true, \n 'SalesLineDeliveryOptionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesLineDeliveryOption'}, {lineShippingAddresses: lineShippingAddresses, filterOption: filterOption });\n } \n \n export function getLineDeliveryOptionsAsync(context: IContext, id: string, lineShippingAddresses?: LineShippingAddress[] | null, filterOption?: number | null):AsyncResult {\n const request = createGetLineDeliveryOptionsInput(context.queryResultSettings, id, lineShippingAddresses, filterOption);\n return executeAction(request, context);\n } \n \n export function createGetDeliveryPreferencesInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetDeliveryPreferences', true, \n 'CartDeliveryPreferencesClass'\n , 'false', {bypassCache: 'none', returnEntity: 'CartDeliveryPreferences'}, { });\n } \n \n export function getDeliveryPreferencesAsync(context: IContext, id: string):AsyncResult {\n const request = createGetDeliveryPreferencesInput(id);\n return executeAction(request, context);\n } \n \n export function createGetDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, id: string, shippingAddress?: Address | null, cartLineIds?: string[] | null, filterOption?: number | null, ignoreLinesWithDeliveryMode?: boolean | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeliveryOptions', true, \n 'DeliveryOptionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'DeliveryOption'}, {shippingAddress: shippingAddress, cartLineIds: cartLineIds, filterOption: filterOption, ignoreLinesWithDeliveryMode: ignoreLinesWithDeliveryMode });\n } \n \n export function getDeliveryOptionsAsync(context: IContext, id: string, shippingAddress?: Address | null, cartLineIds?: string[] | null, filterOption?: number | null, ignoreLinesWithDeliveryMode?: boolean | null):AsyncResult {\n const request = createGetDeliveryOptionsInput(context.queryResultSettings, id, shippingAddress, cartLineIds, filterOption, ignoreLinesWithDeliveryMode);\n return executeAction(request, context);\n } \n \n export function createUpdateLineDeliverySpecificationsInput(id: string, lineDeliverySpecifications?: LineDeliverySpecification[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateLineDeliverySpecifications', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {lineDeliverySpecifications: lineDeliverySpecifications });\n } \n \n export function updateLineDeliverySpecificationsAsync(context: IContext, id: string, lineDeliverySpecifications?: LineDeliverySpecification[] | null):AsyncResult {\n const request = createUpdateLineDeliverySpecificationsInput(id, lineDeliverySpecifications);\n return executeAction(request, context);\n } \n \n export function createUpdateDeliverySpecificationInput(id: string, deliverySpecification?: DeliverySpecification | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateDeliverySpecification', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {deliverySpecification: deliverySpecification });\n } \n \n export function updateDeliverySpecificationAsync(context: IContext, id: string, deliverySpecification?: DeliverySpecification | null):AsyncResult {\n const request = createUpdateDeliverySpecificationInput(id, deliverySpecification);\n return executeAction(request, context);\n } \n \n export function createAddChargeInput(id: string, moduleTypeValue: number, chargeCode: string | null, amount: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCharge', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {moduleTypeValue: moduleTypeValue, chargeCode: chargeCode, amount: amount });\n } \n \n export function addChargeAsync(context: IContext, id: string, moduleTypeValue: number, chargeCode: string | null, amount: number):AsyncResult {\n const request = createAddChargeInput(id, moduleTypeValue, chargeCode, amount);\n return executeAction(request, context);\n } \n \n export function createOverrideChargeInput(id: string, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('OverrideCharge', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {chargeLineId: chargeLineId, amount: amount, reasonCodeLines: reasonCodeLines });\n } \n \n export function overrideChargeAsync(context: IContext, id: string, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult {\n const request = createOverrideChargeInput(id, chargeLineId, amount, reasonCodeLines);\n return executeAction(request, context);\n } \n \n export function createAddCartLineChargeInput(id: string, cartLineId: string | null, moduleTypeValue: number, chargeCode: string | null, amount: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCartLineCharge', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, moduleTypeValue: moduleTypeValue, chargeCode: chargeCode, amount: amount });\n } \n \n export function addCartLineChargeAsync(context: IContext, id: string, cartLineId: string | null, moduleTypeValue: number, chargeCode: string | null, amount: number):AsyncResult {\n const request = createAddCartLineChargeInput(id, cartLineId, moduleTypeValue, chargeCode, amount);\n return executeAction(request, context);\n } \n \n export function createOverrideCartLineChargeInput(id: string, cartLineId: string | null, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('OverrideCartLineCharge', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, chargeLineId: chargeLineId, amount: amount, reasonCodeLines: reasonCodeLines });\n } \n \n export function overrideCartLineChargeAsync(context: IContext, id: string, cartLineId: string | null, chargeLineId: string | null, amount: number, reasonCodeLines?: ReasonCodeLine[] | null):AsyncResult {\n const request = createOverrideCartLineChargeInput(id, cartLineId, chargeLineId, amount, reasonCodeLines);\n return executeAction(request, context);\n } \n \n export function createVoidInput(id: string, reasonCodeLines?: ReasonCodeLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Void', true, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {reasonCodeLines: reasonCodeLines, cartVersion: cartVersion });\n } \n \n export function voidAsync(context: IContext, id: string, reasonCodeLines?: ReasonCodeLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createVoidInput(id, reasonCodeLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddCartLinesInput(id: string, cartLines?: CartLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines, cartVersion: cartVersion });\n } \n \n export function addCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createAddCartLinesInput(id, cartLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddReturnCartLinesInput(id: string, returnCartLines: ReturnCartLine[] | null, returnTransactionSearchLocation: number, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddReturnCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {returnCartLines: returnCartLines, returnTransactionSearchLocation: returnTransactionSearchLocation, cartVersion: cartVersion });\n } \n \n export function addReturnCartLinesAsync(context: IContext, id: string, returnCartLines: ReturnCartLine[] | null, returnTransactionSearchLocation: number, cartVersion?: number | null):AsyncResult {\n const request = createAddReturnCartLinesInput(id, returnCartLines, returnTransactionSearchLocation, cartVersion);\n return executeAction(request, context);\n } \n \n export function createUpdateCartLinesInput(id: string, cartLines?: CartLine[] | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines, cartVersion: cartVersion });\n } \n \n export function updateCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null, cartVersion?: number | null):AsyncResult {\n const request = createUpdateCartLinesInput(id, cartLines, cartVersion);\n return executeAction(request, context);\n } \n \n export function createVoidCartLinesInput(id: string, cartLines?: CartLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('VoidCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLines: cartLines });\n } \n \n export function voidCartLinesAsync(context: IContext, id: string, cartLines?: CartLine[] | null):AsyncResult {\n const request = createVoidCartLinesInput(id, cartLines);\n return executeAction(request, context);\n } \n \n export function createRemoveCartLinesInput(id: string, cartLineIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveCartLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineIds: cartLineIds });\n } \n \n export function removeCartLinesAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult {\n const request = createRemoveCartLinesInput(id, cartLineIds);\n return executeAction(request, context);\n } \n \n export function createAddTenderLineInput(id: string, cartTenderLine?: CartTenderLine | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddTenderLine', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartTenderLine: cartTenderLine, cartVersion: cartVersion });\n } \n \n export function addTenderLineAsync(context: IContext, id: string, cartTenderLine?: CartTenderLine | null, cartVersion?: number | null):AsyncResult {\n const request = createAddTenderLineInput(id, cartTenderLine, cartVersion);\n return executeAction(request, context);\n } \n \n export function createCalculateTenderDiscountInput(id: string, tenderLine?: TenderLine | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('CalculateTenderDiscount', true, \n 'TenderDiscountLineClass'\n , 'false', {bypassCache: 'get', returnEntity: 'TenderDiscountLine'}, {tenderLine: tenderLine, cartVersion: cartVersion });\n } \n \n export function calculateTenderDiscountAsync(context: IContext, id: string, tenderLine?: TenderLine | null, cartVersion?: number | null):AsyncResult {\n const request = createCalculateTenderDiscountInput(id, tenderLine, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddPreprocessedTenderLineInput(id: string, preprocessedTenderLine?: TenderLine | null, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddPreprocessedTenderLine', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {preprocessedTenderLine: preprocessedTenderLine, cartVersion: cartVersion });\n } \n \n export function addPreprocessedTenderLineAsync(context: IContext, id: string, preprocessedTenderLine?: TenderLine | null, cartVersion?: number | null):AsyncResult {\n const request = createAddPreprocessedTenderLineInput(id, preprocessedTenderLine, cartVersion);\n return executeAction(request, context);\n } \n \n export function createValidateTenderLineForAddInput(id: string, tenderLine?: TenderLine | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('ValidateTenderLineForAdd', true, '', '', {bypassCache: 'get', returnEntity: ''}, {tenderLine: tenderLine });\n } \n \n export function validateTenderLineForAddAsync(context: IContext, id: string, tenderLine?: TenderLine | null):AsyncResult {\n const request = createValidateTenderLineForAddInput(id, tenderLine);\n return executeAction(request, context);\n } \n \n export function createUpdateTenderLineSignatureInput(id: string, tenderLineId?: string | null, signatureData?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateTenderLineSignature', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {tenderLineId: tenderLineId, signatureData: signatureData });\n } \n \n export function updateTenderLineSignatureAsync(context: IContext, id: string, tenderLineId?: string | null, signatureData?: string | null):AsyncResult {\n const request = createUpdateTenderLineSignatureInput(id, tenderLineId, signatureData);\n return executeAction(request, context);\n } \n \n export function createGetDeclinedOrVoidedCardReceiptsInput(queryResultSettings: IQueryResultSettings, id: string, preprocessedTenderLine?: TenderLine | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetDeclinedOrVoidedCardReceipts', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {preprocessedTenderLine: preprocessedTenderLine, receiptRetrievalCriteria: receiptRetrievalCriteria });\n } \n \n export function getDeclinedOrVoidedCardReceiptsAsync(context: IContext, id: string, preprocessedTenderLine?: TenderLine | null, receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult {\n const request = createGetDeclinedOrVoidedCardReceiptsInput(context.queryResultSettings, id, preprocessedTenderLine, receiptRetrievalCriteria);\n return executeAction(request, context);\n } \n \n export function createCopyInput(id: string, targetCartType: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Copy', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {targetCartType: targetCartType });\n } \n \n export function copyAsync(context: IContext, id: string, targetCartType: number):AsyncResult {\n const request = createCopyInput(id, targetCartType);\n return executeAction(request, context);\n } \n \n export function createAddInvoicedSalesLinesToCartInput(transactionId: string | null, invoicedSalesLinesIds: number[]): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('AddInvoicedSalesLinesToCart', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, invoicedSalesLinesIds: invoicedSalesLinesIds });\n } \n \n export function addInvoicedSalesLinesToCartAsync(context: IContext, transactionId: string | null, invoicedSalesLinesIds: number[]):AsyncResult {\n const request = createAddInvoicedSalesLinesToCartInput(transactionId, invoicedSalesLinesIds);\n return executeAction(request, context);\n } \n \n export function createRecallInvoicedSalesLinesInput(id: string, recallInvoicedSalesLineLookups?: RecallInvoicedSalesLineLookup[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RecallInvoicedSalesLines', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {recallInvoicedSalesLineLookups: recallInvoicedSalesLineLookups });\n } \n \n export function recallInvoicedSalesLinesAsync(context: IContext, id: string, recallInvoicedSalesLineLookups?: RecallInvoicedSalesLineLookup[] | null):AsyncResult {\n const request = createRecallInvoicedSalesLinesInput(id, recallInvoicedSalesLineLookups);\n return executeAction(request, context);\n } \n \n export function createVoidTenderLineInput(id: string, tenderLineId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null, isPreprocessed?: boolean | null, forceVoid?: boolean | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('VoidTenderLine', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {tenderLineId: tenderLineId, reasonCodeLines: reasonCodeLines, isPreprocessed: isPreprocessed, forceVoid: forceVoid });\n } \n \n export function voidTenderLineAsync(context: IContext, id: string, tenderLineId?: string | null, reasonCodeLines?: ReasonCodeLine[] | null, isPreprocessed?: boolean | null, forceVoid?: boolean | null):AsyncResult {\n const request = createVoidTenderLineInput(id, tenderLineId, reasonCodeLines, isPreprocessed, forceVoid);\n return executeAction(request, context);\n } \n \n export function createIssueGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('IssueGiftCard', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n } \n \n export function issueGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult {\n const request = createIssueGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n return executeAction(request, context);\n } \n \n export function createRefillGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RefillGiftCard', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n } \n \n export function refillGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult {\n const request = createRefillGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n return executeAction(request, context);\n } \n \n export function createCashOutGiftCardInput(id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('CashOutGiftCard', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {giftCardId: giftCardId, amount: amount, currencyCode: currencyCode, lineDescription: lineDescription, tenderTypeId: tenderTypeId });\n } \n \n export function cashOutGiftCardAsync(context: IContext, id: string, giftCardId: string | null, amount: number, currencyCode?: string | null, lineDescription?: string | null, tenderTypeId?: string | null):AsyncResult {\n const request = createCashOutGiftCardInput(id, giftCardId, amount, currencyCode, lineDescription, tenderTypeId);\n return executeAction(request, context);\n } \n \n export function createSuspendInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Suspend', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function suspendAsync(context: IContext, id: string):AsyncResult {\n const request = createSuspendInput(id);\n return executeAction(request, context);\n } \n \n export function createSuspendWithJournalInput(id: string, journalCartId?: string | null, receiptNumberSequence?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('SuspendWithJournal', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {journalCartId: journalCartId, receiptNumberSequence: receiptNumberSequence });\n } \n \n export function suspendWithJournalAsync(context: IContext, id: string, journalCartId?: string | null, receiptNumberSequence?: string | null):AsyncResult {\n const request = createSuspendWithJournalInput(id, journalCartId, receiptNumberSequence);\n return executeAction(request, context);\n } \n \n export function createResumeInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('Resume', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function resumeAsync(context: IContext, id: string):AsyncResult {\n const request = createResumeInput(id);\n return executeAction(request, context);\n } \n \n export function createResumeFromReceiptIdInput(receiptId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('ResumeFromReceiptId', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {receiptId: receiptId });\n } \n \n export function resumeFromReceiptIdAsync(context: IContext, receiptId?: string | null):AsyncResult {\n const request = createResumeFromReceiptIdInput(receiptId);\n return executeAction(request, context);\n } \n \n export function createRemoveDiscountCodesInput(id: string, discountCodes?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveDiscountCodes', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {discountCodes: discountCodes });\n } \n \n export function removeDiscountCodesAsync(context: IContext, id: string, discountCodes?: string[] | null):AsyncResult {\n const request = createRemoveDiscountCodesInput(id, discountCodes);\n return executeAction(request, context);\n } \n \n export function createGetSuspendedInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = cartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSuspended', true, \n 'CartClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Cart'}, { });\n } \n \n export function getSuspendedAsync(context: IContext, ):AsyncResult {\n const request = createGetSuspendedInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createOverrideCartLinePriceInput(id: string, cartLineId: string | null, price: number): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('OverrideCartLinePrice', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, price: price });\n } \n \n export function overrideCartLinePriceAsync(context: IContext, id: string, cartLineId: string | null, price: number):AsyncResult {\n const request = createOverrideCartLinePriceInput(id, cartLineId, price);\n return executeAction(request, context);\n } \n \n export function createGetCardPaymentAcceptPointInput(id: string, cardPaymentAcceptSettings?: CardPaymentAcceptSettings | null, extensionProperties?: CommerceProperty[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetCardPaymentAcceptPoint', true, \n 'CardPaymentAcceptPointClass'\n , 'false', {bypassCache: 'none', returnEntity: 'CardPaymentAcceptPoint'}, {cardPaymentAcceptSettings: cardPaymentAcceptSettings, extensionProperties: extensionProperties });\n } \n \n export function getCardPaymentAcceptPointAsync(context: IContext, id: string, cardPaymentAcceptSettings?: CardPaymentAcceptSettings | null, extensionProperties?: CommerceProperty[] | null):AsyncResult {\n const request = createGetCardPaymentAcceptPointInput(id, cardPaymentAcceptSettings, extensionProperties);\n return executeAction(request, context);\n } \n \n export function createRetrieveCardPaymentAcceptResultInput(resultAccessCode?: string | null, extensionProperties?: CommerceProperty[] | null, cartId?: string | null, settings?: RetrievePaymentResultSettings | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RetrieveCardPaymentAcceptResult', true, \n 'CardPaymentAcceptResultClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CardPaymentAcceptResult'}, {resultAccessCode: resultAccessCode, extensionProperties: extensionProperties, cartId: cartId, settings: settings });\n } \n \n export function retrieveCardPaymentAcceptResultAsync(context: IContext, resultAccessCode?: string | null, extensionProperties?: CommerceProperty[] | null, cartId?: string | null, settings?: RetrievePaymentResultSettings | null):AsyncResult {\n const request = createRetrieveCardPaymentAcceptResultInput(resultAccessCode, extensionProperties, cartId, settings);\n return executeAction(request, context);\n } \n \n export function createRecallOrderInput(transactionId?: string | null, salesId?: string | null, recallOrderSearchCriteria?: RecallOrderSearchCriteria | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RecallOrder', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, salesId: salesId, recallOrderSearchCriteria: recallOrderSearchCriteria });\n } \n \n export function recallOrderAsync(context: IContext, transactionId?: string | null, salesId?: string | null, recallOrderSearchCriteria?: RecallOrderSearchCriteria | null):AsyncResult {\n const request = createRecallOrderInput(transactionId, salesId, recallOrderSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createRecallQuoteInput(transactionId?: string | null, quoteId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RecallQuote', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, quoteId: quoteId });\n } \n \n export function recallQuoteAsync(context: IContext, transactionId?: string | null, quoteId?: string | null):AsyncResult {\n const request = createRecallQuoteInput(transactionId, quoteId);\n return executeAction(request, context);\n } \n \n export function createRecalculateOrderInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RecalculateOrder', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function recalculateOrderAsync(context: IContext, id: string):AsyncResult {\n const request = createRecalculateOrderInput(id);\n return executeAction(request, context);\n } \n \n export function createResetAllChargesInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('ResetAllCharges', false, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, { });\n } \n \n export function resetAllChargesAsync(context: IContext, id: string):AsyncResult {\n const request = createResetAllChargesInput(id);\n return executeAction(request, context);\n } \n \n export function createGetPromotionsInput(id: string, ): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('GetPromotions', true, \n 'CartPromotionsClass'\n , 'false', {bypassCache: 'none', returnEntity: 'CartPromotions'}, { });\n } \n \n export function getPromotionsAsync(context: IContext, id: string):AsyncResult {\n const request = createGetPromotionsInput(id);\n return executeAction(request, context);\n } \n \n export function createGetAvailablePromotionsInput(queryResultSettings: IQueryResultSettings, id: string, cartLineIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailablePromotions', true, \n 'CartPromotionLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CartPromotionLine'}, {cartLineIds: cartLineIds });\n } \n \n export function getAvailablePromotionsAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult {\n const request = createGetAvailablePromotionsInput(context.queryResultSettings, id, cartLineIds);\n return executeAction(request, context);\n } \n \n export function createRecallSalesInvoiceInput(transactionId?: string | null, invoiceId?: string | null): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('RecallSalesInvoice', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, invoiceId: invoiceId });\n } \n \n export function recallSalesInvoiceAsync(context: IContext, transactionId?: string | null, invoiceId?: string | null):AsyncResult {\n const request = createRecallSalesInvoiceInput(transactionId, invoiceId);\n return executeAction(request, context);\n } \n \n export function createAddOrderInvoiceInput(id: string, invoiceId?: string | null, lineDescription?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddOrderInvoice', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {invoiceId: invoiceId, lineDescription: lineDescription });\n } \n \n export function addOrderInvoiceAsync(context: IContext, id: string, invoiceId?: string | null, lineDescription?: string | null):AsyncResult {\n const request = createAddOrderInvoiceInput(id, invoiceId, lineDescription);\n return executeAction(request, context);\n } \n \n export function createAddInvoicesInput(id: string, invoiceIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddInvoices', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {invoiceIds: invoiceIds });\n } \n \n export function addInvoicesAsync(context: IContext, id: string, invoiceIds?: string[] | null):AsyncResult {\n const request = createAddInvoicesInput(id, invoiceIds);\n return executeAction(request, context);\n } \n \n export function createUpdateCommissionSalesGroupInput(transactionId: string | null, cartLineId: string | null, commissionSalesGroup: string | null, isUserInitiated: boolean): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('UpdateCommissionSalesGroup', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {transactionId: transactionId, cartLineId: cartLineId, commissionSalesGroup: commissionSalesGroup, isUserInitiated: isUserInitiated });\n } \n \n export function updateCommissionSalesGroupAsync(context: IContext, transactionId: string | null, cartLineId: string | null, commissionSalesGroup: string | null, isUserInitiated: boolean):AsyncResult {\n const request = createUpdateCommissionSalesGroupInput(transactionId, cartLineId, commissionSalesGroup, isUserInitiated);\n return executeAction(request, context);\n } \n \n export function createAddCouponsInput(id: string, couponCodes?: string[] | null, isLegacyDiscountCode?: boolean | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddCoupons', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {couponCodes: couponCodes, isLegacyDiscountCode: isLegacyDiscountCode });\n } \n \n export function addCouponsAsync(context: IContext, id: string, couponCodes?: string[] | null, isLegacyDiscountCode?: boolean | null):AsyncResult {\n const request = createAddCouponsInput(id, couponCodes, isLegacyDiscountCode);\n return executeAction(request, context);\n } \n \n export function createRemoveCouponsInput(id: string, couponCodes?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveCoupons', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {couponCodes: couponCodes });\n } \n \n export function removeCouponsAsync(context: IContext, id: string, couponCodes?: string[] | null):AsyncResult {\n const request = createRemoveCouponsInput(id, couponCodes);\n return executeAction(request, context);\n } \n \n export function createGetCartLineUserAlertsForAddInput(queryResultSettings: IQueryResultSettings, id: string, cartLines?: CartLine[] | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCartLineUserAlertsForAdd', true, \n 'CartLineUserAlertsClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CartLineUserAlerts'}, {cartLines: cartLines });\n } \n \n export function getCartLineUserAlertsForAddAsync(context: IContext, id: string, cartLines?: CartLine[] | null):AsyncResult {\n const request = createGetCartLineUserAlertsForAddInput(context.queryResultSettings, id, cartLines);\n return executeAction(request, context);\n } \n \n export function createGetCartLineUserAlertsInput(queryResultSettings: IQueryResultSettings, id: string, cartLineIds?: string[] | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCartLineUserAlerts', true, \n 'CartLineUserAlertsClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CartLineUserAlerts'}, {cartLineIds: cartLineIds });\n } \n \n export function getCartLineUserAlertsAsync(context: IContext, id: string, cartLineIds?: string[] | null):AsyncResult {\n const request = createGetCartLineUserAlertsInput(context.queryResultSettings, id, cartLineIds);\n return executeAction(request, context);\n } \n \n export function createGetChargeCodesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = cartsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChargeCodes', false, \n 'ChargeCodeClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ChargeCode'}, { });\n } \n \n export function getChargeCodesAsync(context: IContext, ):AsyncResult {\n const request = createGetChargeCodesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetReceiptTypesInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceiptTypes', false, '', 'true', {bypassCache: 'none', returnEntity: ''}, { });\n } \n \n export function getReceiptTypesAsync(context: IContext, id: string):AsyncResult {\n const request = createGetReceiptTypesInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createSetInvoiceLinePriceInput(id: string, cartLineId: string | null, price: number, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('SetInvoiceLinePrice', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {cartLineId: cartLineId, price: price, cartVersion: cartVersion });\n } \n \n export function setInvoiceLinePriceAsync(context: IContext, id: string, cartLineId: string | null, price: number, cartVersion?: number | null):AsyncResult {\n const request = createSetInvoiceLinePriceInput(id, cartLineId, price, cartVersion);\n return executeAction(request, context);\n } \n \n export function createAddDiscountCodeInput(id: string, discountCode?: string | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('AddDiscountCode', true, \n 'CartClass'\n , 'false', {bypassCache: 'get', returnEntity: 'Cart'}, {discountCode: discountCode });\n } \n \n export function addDiscountCodeAsync(context: IContext, id: string, discountCode?: string | null):AsyncResult {\n const request = createAddDiscountCodeInput(id, discountCode);\n return executeAction(request, context);\n } \n \n export function createGetReturnOptionsInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReturnOptions', false, \n 'TenderTypeAmountClass'\n , 'true', {bypassCache: 'none', returnEntity: 'TenderTypeAmount'}, { });\n } \n \n export function getReturnOptionsAsync(context: IContext, id: string):AsyncResult {\n const request = createGetReturnOptionsInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createGetConfigurationInput(): IDataServiceRequest { \n const query = cartsQuery();\n return query.createDataServiceRequestForOperation('GetConfiguration', false, \n 'CartConfigurationClass'\n , 'false', {bypassCache: 'none', returnEntity: 'CartConfiguration'}, { });\n } \n \n export function getConfigurationAsync(context: IContext, ):AsyncResult {\n const request = createGetConfigurationInput();\n return executeAction(request, context);\n } \n \n export function createValidateForCheckoutInput(id: string, cartVersion?: number | null): IDataServiceRequest { \n const query = cartsQuery(id);\n return query.createDataServiceRequestForOperation('ValidateForCheckout', false, \n 'CartLineValidationResultsClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CartLineValidationResults'}, {cartVersion: cartVersion });\n } \n \n export function validateForCheckoutAsync(context: IContext, id: string, cartVersion?: number | null):AsyncResult {\n const request = createValidateForCheckoutInput(id, cartVersion);\n return executeAction(request, context);\n } \n \n export function createGetTenderSuggestionsInput(queryResultSettings: IQueryResultSettings, id: string, tenderTypeId?: string | null, currencyCode?: string | null): IDataServiceRequest { \n const query = cartsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTenderSuggestions', false, \n 'TenderLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'TenderLine'}, {tenderTypeId: tenderTypeId, currencyCode: currencyCode });\n } \n \n export function getTenderSuggestionsAsync(context: IContext, id: string, tenderTypeId?: string | null, currencyCode?: string | null):AsyncResult {\n const request = createGetTenderSuggestionsInput(context.queryResultSettings, id, tenderTypeId, currencyCode);\n return executeAction(request, context);\n } \n \n ","\n \n /**\n * The matched retail server api version.\n */\n export const ApiVersion: string = \"7.3\";\n \n export const EntityIdentifier = {\n \n 'Category' : {\n 'Key': \n 'RecordId'\n },\n 'Cart' : {\n 'Key': \n 'Id'\n },\n 'Customer' : {\n 'Key': \n 'AccountNumber'\n },\n 'Employee' : {\n 'Key': \n 'StaffId'\n },\n 'Checklist' : {\n 'Key': \n 'RecordId'\n },\n 'SalesOrder' : {\n 'Key': \n 'Id'\n },\n 'Shift' : {\n 'Key': [ \n 'ShiftId',\n 'TerminalId' ] \n },\n 'StockCountJournal' : {\n 'Key': \n 'JournalId'\n },\n 'OrgUnit' : {\n 'Key': \n 'OrgUnitNumber'\n },\n 'Product' : {\n 'Key': \n 'RecordId'\n },\n 'ProductCatalog' : {\n 'Key': \n 'RecordId'\n },\n 'CommerceList' : {\n 'Key': \n 'Id'\n },\n 'ProductList' : {\n 'Key': \n 'Id'\n },\n 'Recommendation' : {\n 'Key': \n 'Id'\n },\n 'TransferOrder' : {\n 'Key': \n 'OrderId'\n },\n 'PurchaseOrder' : {\n 'Key': \n 'OrderId'\n },\n 'PickingList' : {\n 'Key': \n 'OrderId'\n },\n 'Warehouse' : {\n 'Key': \n 'InventLocation'\n },\n 'ScanResult' : {\n 'Key': \n 'ScannedText'\n },\n 'SalesOrderContextualOperationsMap' : {\n 'Key': \n 'Id'\n },\n 'InventoryInboundOutboundDocument' : {\n 'Key': \n 'WorkDocumentId'\n },\n 'BusinessPartner' : {\n 'Key': \n 'BusinessPartnerId'\n },\n 'BusinessPartnerUser' : {\n 'Key': \n 'B2BUserId'\n },\n 'SuspendedCart' : {\n 'Key': \n 'Id'\n } \n };\n \n \n /**\n * AutoExitMethodType enum type.\n */\n export enum AutoExitMethodType {\n \n /**\n * The Logoff member.\n */\n Logoff = 0,\n \n /**\n * The Lock member.\n */\n Lock = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * CardType enum type.\n */\n export enum CardType {\n \n /**\n * The InternationalCreditCard member.\n */\n InternationalCreditCard = 0,\n \n /**\n * The InternationalDebitCard member.\n */\n InternationalDebitCard = 1,\n \n /**\n * The LoyaltyCard member.\n */\n LoyaltyCard = 2,\n \n /**\n * The CorporateCard member.\n */\n CorporateCard = 3,\n \n /**\n * The CustomerCard member.\n */\n CustomerCard = 4,\n \n /**\n * The EmployeeCard member.\n */\n EmployeeCard = 5,\n \n /**\n * The SalespersonCard member.\n */\n SalespersonCard = 6,\n \n /**\n * The GiftCard member.\n */\n GiftCard = 7,\n \n /**\n * The Check member.\n */\n Check = 8,\n \n /**\n * The Wallet member.\n */\n Wallet = 9,\n \n /**\n * The FoodCard member.\n */\n FoodCard = 21,\n \n /**\n * The MealCard member.\n */\n MealCard = 22,\n \n /**\n * The FuelCard member.\n */\n FuelCard = 23,\n \n /**\n * The Unknown member.\n */\n Unknown = -1\n }\n \n /**\n * PublishingAction enum type.\n */\n export enum PublishingAction {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Publish member.\n */\n Publish = 1,\n \n /**\n * The Delete member.\n */\n Delete = 2,\n \n /**\n * The Expire member.\n */\n Expire = 3\n }\n \n /**\n * ListingPublishingActionStatus enum type.\n */\n export enum ListingPublishingActionStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Ready member.\n */\n Ready = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Done member.\n */\n Done = 3,\n \n /**\n * The Failed member.\n */\n Failed = 4\n }\n \n /**\n * OnlineChannelPublishStatusType enum type.\n */\n export enum OnlineChannelPublishStatusType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Draft member.\n */\n Draft = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Published member.\n */\n Published = 3,\n \n /**\n * The Failed member.\n */\n Failed = 4\n }\n \n /**\n * ReceiptTransactionType enum type.\n */\n export enum ReceiptTransactionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Sale member.\n */\n Sale = 1,\n \n /**\n * The Return member.\n */\n Return = 2,\n \n /**\n * The Payment member.\n */\n Payment = 5,\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 6,\n \n /**\n * The Quote member.\n */\n Quote = 7,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 9\n }\n \n /**\n * EmployeePriceOverrideType enum type.\n */\n export enum EmployeePriceOverrideType {\n \n /**\n * The HigherAndLower member.\n */\n HigherAndLower = 0,\n \n /**\n * The HigherOnly member.\n */\n HigherOnly = 1,\n \n /**\n * The LowerOnly member.\n */\n LowerOnly = 2,\n \n /**\n * The NotAllowed member.\n */\n NotAllowed = 3\n }\n \n /**\n * KeyInPriceRestriction enum type.\n */\n export enum KeyInPriceRestriction {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NewPrice member.\n */\n NewPrice = 1,\n \n /**\n * The HigherOrEqualPrice member.\n */\n HigherOrEqualPrice = 2,\n \n /**\n * The LowerOrEqualPrice member.\n */\n LowerOrEqualPrice = 3,\n \n /**\n * The NotAllowed member.\n */\n NotAllowed = 4\n }\n \n /**\n * KeyInQuantityRestriction enum type.\n */\n export enum KeyInQuantityRestriction {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Required member.\n */\n Required = 1,\n \n /**\n * The NotAllowed member.\n */\n NotAllowed = 2\n }\n \n /**\n * ProductDimensionType enum type.\n */\n export enum ProductDimensionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Color member.\n */\n Color = 1,\n \n /**\n * The Configuration member.\n */\n Configuration = 2,\n \n /**\n * The Size member.\n */\n Size = 3,\n \n /**\n * The Style member.\n */\n Style = 4\n }\n \n /**\n * ProductType enum type.\n */\n export enum ProductType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The KitMaster member.\n */\n KitMaster = 1,\n \n /**\n * The KitVariant member.\n */\n KitVariant = 2,\n \n /**\n * The Master member.\n */\n Master = 3,\n \n /**\n * The Standalone member.\n */\n Standalone = 4,\n \n /**\n * The Variant member.\n */\n Variant = 5\n }\n \n /**\n * NumberSequenceSeedType enum type.\n */\n export enum NumberSequenceSeedType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ReceiptDefault member.\n */\n ReceiptDefault = 1,\n \n /**\n * The ReceiptSale member.\n */\n ReceiptSale = 2,\n \n /**\n * The ReceiptReturn member.\n */\n ReceiptReturn = 3,\n \n /**\n * The ReceiptSalesOrder member.\n */\n ReceiptSalesOrder = 4,\n \n /**\n * The ReceiptSalesInvoice member.\n */\n ReceiptSalesInvoice = 5,\n \n /**\n * The ReceiptPayment member.\n */\n ReceiptPayment = 6,\n \n /**\n * The BatchId member.\n */\n BatchId = 7,\n \n /**\n * The TransactionId member.\n */\n TransactionId = 8,\n \n /**\n * The ReceiptCustomerSalesOrder member.\n */\n ReceiptCustomerSalesOrder = 10,\n \n /**\n * The ReceiptCustomerQuote member.\n */\n ReceiptCustomerQuote = 11,\n \n /**\n * The ReceiptSuspendedTransaction member.\n */\n ReceiptSuspendedTransaction = 22\n }\n \n /**\n * ReasonCodeSourceType enum type.\n */\n export enum ReasonCodeSourceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The AddSalesperson member.\n */\n AddSalesperson = 1,\n \n /**\n * The EndOfTransaction member.\n */\n EndOfTransaction = 2,\n \n /**\n * The ItemDiscount member.\n */\n ItemDiscount = 3,\n \n /**\n * The ItemNotOnFile member.\n */\n ItemNotOnFile = 4,\n \n /**\n * The LineItemTaxChange member.\n */\n LineItemTaxChange = 5,\n \n /**\n * The Markup member.\n */\n Markup = 6,\n \n /**\n * The NegativeAdjustment member.\n */\n NegativeAdjustment = 7,\n \n /**\n * The NfcEContingencyModeEnabled member.\n */\n NfcEContingencyModeEnabled = 8,\n \n /**\n * The NfcEVoided member.\n */\n NfcEVoided = 9,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 10,\n \n /**\n * The OverridePrice member.\n */\n OverridePrice = 11,\n \n /**\n * The ReturnItem member.\n */\n ReturnItem = 12,\n \n /**\n * The ReturnTransaction member.\n */\n ReturnTransaction = 13,\n \n /**\n * The SerialNumber member.\n */\n SerialNumber = 14,\n \n /**\n * The StartOfTransaction member.\n */\n StartOfTransaction = 15,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 16,\n \n /**\n * The TotalDiscount member.\n */\n TotalDiscount = 17,\n \n /**\n * The TransactionTaxChange member.\n */\n TransactionTaxChange = 18,\n \n /**\n * The VoidItem member.\n */\n VoidItem = 19,\n \n /**\n * The VoidPayment member.\n */\n VoidPayment = 20,\n \n /**\n * The VoidTransaction member.\n */\n VoidTransaction = 21,\n \n /**\n * The OrderFulfillment member.\n */\n OrderFulfillment = 22,\n \n /**\n * The ManualCharge member.\n */\n ManualCharge = 23\n }\n \n /**\n * TriggerFunctionType enum type.\n */\n export enum TriggerFunctionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Item member.\n */\n Item = 1,\n \n /**\n * The InfoCode member.\n */\n InfoCode = 2\n }\n \n /**\n * QueryType enum type.\n */\n export enum QueryType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NameAndDescription member.\n */\n NameAndDescription = 1,\n \n /**\n * The AotObject member.\n */\n AotObject = 2\n }\n \n /**\n * ChangeAction enum type.\n */\n export enum ChangeAction {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Insert member.\n */\n Insert = 1,\n \n /**\n * The Update member.\n */\n Update = 2,\n \n /**\n * The Delete member.\n */\n Delete = 3\n }\n \n /**\n * PeriodicDiscountOfferType enum type.\n */\n export enum PeriodicDiscountOfferType {\n \n /**\n * The MultipleBuy member.\n */\n MultipleBuy = 0,\n \n /**\n * The MixAndMatch member.\n */\n MixAndMatch = 1,\n \n /**\n * The Offer member.\n */\n Offer = 2,\n \n /**\n * The Promotion member.\n */\n Promotion = 3,\n \n /**\n * The Threshold member.\n */\n Threshold = 4,\n \n /**\n * The LeastExpensiveFavorRetailer member.\n */\n LeastExpensiveFavorRetailer = 5,\n \n /**\n * The OfferLineQuantityLimit member.\n */\n OfferLineQuantityLimit = 6,\n \n /**\n * The ShippingThreshold member.\n */\n ShippingThreshold = 7\n }\n \n /**\n * SearchFilterType enum type.\n */\n export enum SearchFilterType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Text member.\n */\n Text = 1\n }\n \n /**\n * InfoCodeActivity enum type.\n */\n export enum InfoCodeActivity {\n \n /**\n * The Transaction member.\n */\n Transaction = 0,\n \n /**\n * The OrderFulfillment member.\n */\n OrderFulfillment = 1\n }\n \n /**\n * SrsReportFileFormat enum type.\n */\n export enum SrsReportFileFormat {\n \n /**\n * The CSV member.\n */\n CSV = 0,\n \n /**\n * The Excel member.\n */\n Excel = 1,\n \n /**\n * The HTML4_0 member.\n */\n HTML4_0 = 2,\n \n /**\n * The Image member.\n */\n Image = 3,\n \n /**\n * The MHTML member.\n */\n MHTML = 4,\n \n /**\n * The PDF member.\n */\n PDF = 5,\n \n /**\n * The XML member.\n */\n XML = 6\n }\n \n /**\n * ShiftReconciliationLineStatus enum type.\n */\n export enum ShiftReconciliationLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Pending member.\n */\n Pending = 1,\n \n /**\n * The Reconciled member.\n */\n Reconciled = 2,\n \n /**\n * The Closed member.\n */\n Closed = 3\n }\n \n /**\n * ProductSearchServiceType enum type.\n */\n export enum ProductSearchServiceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ChannelDatabase member.\n */\n ChannelDatabase = 1,\n \n /**\n * The CommerceAzureSearchService member.\n */\n CommerceAzureSearchService = 2,\n \n /**\n * The CommerceBingSearchService member.\n */\n CommerceBingSearchService = 3\n }\n \n /**\n * SearchSuggestionType enum type.\n */\n export enum SearchSuggestionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Keyword member.\n */\n Keyword = 1,\n \n /**\n * The Product member.\n */\n Product = 2,\n \n /**\n * The ScopedCategory member.\n */\n ScopedCategory = 4,\n \n /**\n * The Category member.\n */\n Category = 8,\n \n /**\n * The Customer member.\n */\n Customer = 16\n }\n \n /**\n * SalesStatus enum type.\n */\n export enum SalesStatus {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The Created member.\n */\n Created = 1,\n \n /**\n * The Processing member.\n */\n Processing = 2,\n \n /**\n * The Delivered member.\n */\n Delivered = 3,\n \n /**\n * The Invoiced member.\n */\n Invoiced = 4,\n \n /**\n * The Confirmed member.\n */\n Confirmed = 5,\n \n /**\n * The Sent member.\n */\n Sent = 6,\n \n /**\n * The Canceled member.\n */\n Canceled = 7,\n \n /**\n * The Lost member.\n */\n Lost = 8\n }\n \n /**\n * EFTType enum type.\n */\n export enum EFTType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The External member.\n */\n External = 1,\n \n /**\n * The PaymentSDK member.\n */\n PaymentSDK = 2,\n \n /**\n * The DynamicsOnline member.\n */\n DynamicsOnline = 3\n }\n \n /**\n * FilterDeliveryModeOption enum type.\n */\n export enum FilterDeliveryModeOption {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The FilterOutNonCarrierDeliveryMode member.\n */\n FilterOutNonCarrierDeliveryMode = 1,\n \n /**\n * The DoNotFilterByChannel member.\n */\n DoNotFilterByChannel = 2,\n \n /**\n * The FilterOutNonPickupDeliveryMode member.\n */\n FilterOutNonPickupDeliveryMode = 4\n }\n \n /**\n * InventoryDocumentLineOperationResultMode enum type.\n */\n export enum InventoryDocumentLineOperationResultMode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NoLines member.\n */\n NoLines = 1,\n \n /**\n * The AllLines member.\n */\n AllLines = 2\n }\n \n /**\n * InventoryDocumentStatus enum type.\n */\n export enum InventoryDocumentStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Paused member.\n */\n Paused = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Committed member.\n */\n Committed = 3,\n \n /**\n * The ProcessSucceeded member.\n */\n ProcessSucceeded = 4,\n \n /**\n * The ProcessFailed member.\n */\n ProcessFailed = 5\n }\n \n /**\n * InventoryDocumentUpdateLinesActionType enum type.\n */\n export enum InventoryDocumentUpdateLinesActionType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ApplyQuantity member.\n */\n ApplyQuantity = 1,\n \n /**\n * The ApplyMaximumQuantity member.\n */\n ApplyMaximumQuantity = 2\n }\n \n /**\n * InventoryInboundOutboundDocumentOperationType enum type.\n */\n export enum InventoryInboundOutboundDocumentOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ReceivePurchaseOrder member.\n */\n ReceivePurchaseOrder = 1,\n \n /**\n * The ReceiveTransferOrder member.\n */\n ReceiveTransferOrder = 2,\n \n /**\n * The ShipTransferOrder member.\n */\n ShipTransferOrder = 3,\n \n /**\n * The CreateTransferOrder member.\n */\n CreateTransferOrder = 4,\n \n /**\n * The SaveInventoryAdjustment member.\n */\n SaveInventoryAdjustment = 5,\n \n /**\n * The PostInventoryAdjustment member.\n */\n PostInventoryAdjustment = 6,\n \n /**\n * The PostInventoryTransfer member.\n */\n PostInventoryTransfer = 7,\n \n /**\n * The SaveStockCounting member.\n */\n SaveStockCounting = 8,\n \n /**\n * The PostStockCounting member.\n */\n PostStockCounting = 9,\n \n /**\n * The CreateStockCounting member.\n */\n CreateStockCounting = 10,\n \n /**\n * The CreatePurchaseOrder member.\n */\n CreatePurchaseOrder = 11,\n \n /**\n * The SavePurchaseOrder member.\n */\n SavePurchaseOrder = 12\n }\n \n /**\n * InventoryInboundOutboundSourceDocumentStatus enum type.\n */\n export enum InventoryInboundOutboundSourceDocumentStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Requested member.\n */\n Requested = 1,\n \n /**\n * The Shipped member.\n */\n Shipped = 2,\n \n /**\n * The PartiallyShipped member.\n */\n PartiallyShipped = 3,\n \n /**\n * The Received member.\n */\n Received = 4,\n \n /**\n * The PartiallyReceived member.\n */\n PartiallyReceived = 5,\n \n /**\n * The Cancelled member.\n */\n Cancelled = 6,\n \n /**\n * The Posted member.\n */\n Posted = 8,\n \n /**\n * The Committed member.\n */\n Committed = 9,\n \n /**\n * The Created member.\n */\n Created = 10\n }\n \n /**\n * InventorySourceDocumentType enum type.\n */\n export enum InventorySourceDocumentType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The PurchaseOrder member.\n */\n PurchaseOrder = 1,\n \n /**\n * The TransferOrder member.\n */\n TransferOrder = 2,\n \n /**\n * The InventoryAdjustment member.\n */\n InventoryAdjustment = 3,\n \n /**\n * The InventoryTransfer member.\n */\n InventoryTransfer = 4,\n \n /**\n * The StockCounting member.\n */\n StockCounting = 5\n }\n \n /**\n * InventoryInboundOutboundDocumentState enum type.\n */\n export enum InventoryInboundOutboundDocumentState {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Active member.\n */\n Active = 1,\n \n /**\n * The Complete member.\n */\n Complete = 2,\n \n /**\n * The Draft member.\n */\n Draft = 3\n }\n \n /**\n * ReceiptNumberResetType enum type.\n */\n export enum ReceiptNumberResetType {\n \n /**\n * The SingleTime member.\n */\n SingleTime = 0,\n \n /**\n * The YearlyRecurrence member.\n */\n YearlyRecurrence = 1\n }\n \n /**\n * PeriodUnit enum type.\n */\n export enum PeriodUnit {\n \n /**\n * The Day member.\n */\n Day = 0,\n \n /**\n * The Week member.\n */\n Week = 1,\n \n /**\n * The Month member.\n */\n Month = 2,\n \n /**\n * The Year member.\n */\n Year = 3,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * WarrantyPriceRangeBaseType enum type.\n */\n export enum WarrantyPriceRangeBaseType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The BasePrice member.\n */\n BasePrice = 1,\n \n /**\n * The SellingPrice member.\n */\n SellingPrice = 2\n }\n \n /**\n * LogOnKeyboardType enum type.\n */\n export enum LogOnKeyboardType {\n \n /**\n * The OSKeyboard member.\n */\n OSKeyboard = 0,\n \n /**\n * The Numpad member.\n */\n Numpad = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * LogOnLayoutType enum type.\n */\n export enum LogOnLayoutType {\n \n /**\n * The Centered member.\n */\n Centered = 0,\n \n /**\n * The Right member.\n */\n Right = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeliveryModeTypeFilter enum type.\n */\n export enum DeliveryModeTypeFilter {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Shipping member.\n */\n Shipping = 1,\n \n /**\n * The Pickup member.\n */\n Pickup = 2\n }\n \n /**\n * InventoryDocumentValidationResultSeverity enum type.\n */\n export enum InventoryDocumentValidationResultSeverity {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Informational member.\n */\n Informational = 1,\n \n /**\n * The Warning member.\n */\n Warning = 2,\n \n /**\n * The Error member.\n */\n Error = 3\n }\n \n /**\n * InventoryDocumentOverreceivingErrors enum type.\n */\n export enum InventoryDocumentOverreceivingErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The QuantityExceededAllowed member.\n */\n QuantityExceededAllowed,\n \n /**\n * The QuantityExceededAllowedWithinOverreceivingTolerance member.\n */\n QuantityExceededAllowedWithinOverreceivingTolerance,\n \n /**\n * The QuantityExceededOverreceivingTolerance member.\n */\n QuantityExceededOverreceivingTolerance\n }\n \n /**\n * InventoryDocumentSerialNumberErrors enum type.\n */\n export enum InventoryDocumentSerialNumberErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The RequiredSerialNumberNotProvided member.\n */\n RequiredSerialNumberNotProvided,\n \n /**\n * The DuplicateSerialNumberIsNotAllowed member.\n */\n DuplicateSerialNumberIsNotAllowed,\n \n /**\n * The RequiredSerialNumberValidationNotProvided member.\n */\n RequiredSerialNumberValidationNotProvided,\n \n /**\n * The SerialNumberNotAvailable member.\n */\n SerialNumberNotAvailable\n }\n \n /**\n * EmployeeIdentityType enum type.\n */\n export enum EmployeeIdentityType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CommerceIdentity member.\n */\n CommerceIdentity = 1,\n \n /**\n * The AadIdentity member.\n */\n AadIdentity = 2\n }\n \n /**\n * FulfillmentOperationType enum type.\n */\n export enum FulfillmentOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Pick member.\n */\n Pick = 1,\n \n /**\n * The Pack member.\n */\n Pack = 2,\n \n /**\n * The Ship member.\n */\n Ship = 3,\n \n /**\n * The Pickup member.\n */\n Pickup = 4,\n \n /**\n * The Reject member.\n */\n Reject = 5\n }\n \n /**\n * PaymentStatus enum type.\n */\n export enum PaymentStatus {\n \n /**\n * The NotSubmitted member.\n */\n NotSubmitted = 0,\n \n /**\n * The Authorized member.\n */\n Authorized = 1,\n \n /**\n * The Declined member.\n */\n Declined = 2,\n \n /**\n * The Posted member.\n */\n Posted = 3,\n \n /**\n * The Paid member.\n */\n Paid = 4\n }\n \n /**\n * UserAlertSourceType enum type.\n */\n export enum UserAlertSourceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Inventory_SerialNumberMissing member.\n */\n Inventory_SerialNumberMissing = 1,\n \n /**\n * The Inventory_SerialNumberInsufficientStock member.\n */\n Inventory_SerialNumberInsufficientStock = 2\n }\n \n /**\n * CustomerOrderMode enum type.\n */\n export enum CustomerOrderMode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CustomerOrderCreateOrEdit member.\n */\n CustomerOrderCreateOrEdit = 1,\n \n /**\n * The OrderRecalled member.\n */\n OrderRecalled = 2,\n \n /**\n * The Pickup member.\n */\n Pickup = 3,\n \n /**\n * The Return member.\n */\n Return = 4,\n \n /**\n * The Cancellation member.\n */\n Cancellation = 5,\n \n /**\n * The QuoteCreateOrEdit member.\n */\n QuoteCreateOrEdit = 6\n }\n \n /**\n * InventoryValidationErrors enum type.\n */\n export enum InventoryValidationErrors {\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryAvailableQuantitiesRecordsExceedLimit member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryAvailableQuantitiesRecordsExceedLimit,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllNotAllowedForAdvancedWarehouse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllNotAllowedForAdvancedWarehouse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_PurchaseOrderUnderDeliveryNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_PurchaseOrderUnderDeliveryNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseLineNotAllowedWhenReceiveNowQuantityIsZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseLineNotAllowedWhenReceiveNowQuantityIsZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseOrderLineNotAllowWhenReceiveQuantityUnderTolerance member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ClosePurchaseOrderLineNotAllowWhenReceiveQuantityUnderTolerance,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CloseTransferLineNotAllowedWhenShipNowQuantityIsZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CloseTransferLineNotAllowedWhenShipNowQuantityIsZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllForAdvancedWarehouseWithoutIssueLocation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ShipAllForAdvancedWarehouseWithoutIssueLocation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ProductBehaviorMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_ProductBehaviorMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StockCountJournal_JournalNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StockCountJournal_JournalNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_NoLineToCommit member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_NoLineToCommit,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_Journal_Name_Search_Criteria_Not_Valid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_Journal_Name_Search_Criteria_Not_Valid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_Movement_Journal_Location_Dimension_Missing_For_Product member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_Movement_Journal_Location_Dimension_Missing_For_Product,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateEmptyLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateEmptyLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SearchCriteriaContainsWarehouseLocationId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_SearchCriteriaContainsWarehouseLocationId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultIssueLocationNotFoundForWarehouse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultIssueLocationNotFoundForWarehouse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultReceiptLocationNotFoundForWarehouse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_DefaultReceiptLocationNotFoundForWarehouse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CommitDocumentFailToDeserialize member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_CommitDocumentFailToDeserialize,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineCannotBeDeleted member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocument_LineCannotBeDeleted,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_ReceiverNotAllowedForInboundSearchCriteria member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_ReceiverNotAllowedForInboundSearchCriteria,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SenderNotAllowedForOutboundSearchCriteria member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_SenderNotAllowedForOutboundSearchCriteria,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_FilterCannotContainTransferFromAndShipFromAtTheSameTime member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_FilterCannotContainTransferFromAndShipFromAtTheSameTime,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchPurchaseOrderByFilterTransferFrom member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchPurchaseOrderByFilterTransferFrom,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchTransferOrderByFilterShipFrom member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotSearchTransferOrderByFilterShipFrom,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidStockCountJournal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidStockCountJournal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLinesFailedToDownload member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLinesFailedToDownload,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeliveryModeTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeliveryModeTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotReturnMultipleVendors member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_CannotReturnMultipleVendors,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ActionNotSupportedWhenChangeManagementIsEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ActionNotSupportedWhenChangeManagementIsEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidTransferOrderJournalXmlStr member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_NotValidTransferOrderJournalXmlStr,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_NotSupportedDocumentStateInSearchCriteria member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_NotSupportedDocumentStateInSearchCriteria,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_NotSupportedSearchCriteriaWhenSearchInventoryDocumentLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_NotSupportedSearchCriteriaWhenSearchInventoryDocumentLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLineQuantityExceedsLimit member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_SerialNumberLineQuantityExceedsLimit,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_WarehouseNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_WarehouseNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_BulkInventoryUpdateCountExceedsLimit member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_BulkInventoryUpdateCountExceedsLimit,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityForNonDefaultWarehouseNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityForNonDefaultWarehouseNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityForMasterProductNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityForMasterProductNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityDuplicatedQueryItemNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityDuplicatedQueryItemNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityForLocationControlledProductNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityForLocationControlledProductNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RealtimeAccuracyNotSuppoted member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RealtimeAccuracyNotSuppoted,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductWarehouseQuantitiesIsEmpty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductWarehouseQuantitiesIsEmpty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityExceedValidRange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_UpdateProductWarehouseQuantityExceedValidRange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Inventory_SalesParametersNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Inventory_SalesParametersNotFound\n }\n \n /**\n * InventoryJournalPosAdjustmentType enum type.\n */\n export enum InventoryJournalPosAdjustmentType {\n \n /**\n * The In member.\n */\n In = 0,\n \n /**\n * The Out member.\n */\n Out = 1\n }\n \n /**\n * ProductDataValidationErrors enum type.\n */\n export enum ProductDataValidationErrors {\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HavingMultipleCategoriesNotSupportedInRemoteSearch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HavingMultipleCategoriesNotSupportedInRemoteSearch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HavingMultipleSearchTypesIsNotSupportedInRemoteSearch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HavingMultipleSearchTypesIsNotSupportedInRemoteSearch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductSerialNumberIsTooLong member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductSerialNumberIsTooLong,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NullItemIdNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NullItemIdNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MoreThanOneProductsForSearchVariantPriceRange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MoreThanOneProductsForSearchVariantPriceRange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductIsNotMasterForSearchVariantPriceRange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductIsNotMasterForSearchVariantPriceRange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidNumberOfProductBehaviorsFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidNumberOfProductBehaviorsFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductBehaviorNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductBehaviorNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_KitComponentNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_KitComponentNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidProductSearchCriteria member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidProductSearchCriteria,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CategoryAttributeTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CategoryAttributeTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidProductDataXml member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidProductDataXml,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemsNotFoundOnTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemsNotFoundOnTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicatePriceLookupContextForSameProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicatePriceLookupContextForSameProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchFailedForClientError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchFailedForClientError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchIndexIsNotReady member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchIndexIsNotReady,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchIndexIsNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchIndexIsNotFound\n }\n \n /**\n * MediaType enum type.\n */\n export enum MediaType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Image member.\n */\n Image = 1,\n \n /**\n * The Video member.\n */\n Video = 2,\n \n /**\n * The File member.\n */\n File = 3\n }\n \n /**\n * CheckoutLocation enum type.\n */\n export enum CheckoutLocation {\n \n /**\n * The Default member.\n */\n Default = 0,\n \n /**\n * The Local member.\n */\n Local = 1\n }\n \n /**\n * CountryRegionISOCode enum type.\n */\n export enum CountryRegionISOCode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The AU member.\n */\n AU = 1,\n \n /**\n * The AT member.\n */\n AT = 2,\n \n /**\n * The BE member.\n */\n BE = 3,\n \n /**\n * The BR member.\n */\n BR = 4,\n \n /**\n * The CA member.\n */\n CA = 5,\n \n /**\n * The CN member.\n */\n CN = 6,\n \n /**\n * The CZ member.\n */\n CZ = 7,\n \n /**\n * The DK member.\n */\n DK = 8,\n \n /**\n * The EE member.\n */\n EE = 9,\n \n /**\n * The FI member.\n */\n FI = 10,\n \n /**\n * The FR member.\n */\n FR = 11,\n \n /**\n * The DE member.\n */\n DE = 12,\n \n /**\n * The HU member.\n */\n HU = 13,\n \n /**\n * The IS member.\n */\n IS = 14,\n \n /**\n * The IN member.\n */\n IN = 15,\n \n /**\n * The IE member.\n */\n IE = 16,\n \n /**\n * The IL member.\n */\n IL = 17,\n \n /**\n * The IT member.\n */\n IT = 18,\n \n /**\n * The JP member.\n */\n JP = 19,\n \n /**\n * The LV member.\n */\n LV = 20,\n \n /**\n * The LT member.\n */\n LT = 21,\n \n /**\n * The MY member.\n */\n MY = 22,\n \n /**\n * The MX member.\n */\n MX = 23,\n \n /**\n * The NL member.\n */\n NL = 24,\n \n /**\n * The NZ member.\n */\n NZ = 25,\n \n /**\n * The NO member.\n */\n NO = 26,\n \n /**\n * The PL member.\n */\n PL = 27,\n \n /**\n * The RU member.\n */\n RU = 28,\n \n /**\n * The SA member.\n */\n SA = 29,\n \n /**\n * The SG member.\n */\n SG = 30,\n \n /**\n * The ZA member.\n */\n ZA = 31,\n \n /**\n * The ES member.\n */\n ES = 32,\n \n /**\n * The SE member.\n */\n SE = 33,\n \n /**\n * The CH member.\n */\n CH = 34,\n \n /**\n * The TH member.\n */\n TH = 35,\n \n /**\n * The TR member.\n */\n TR = 36,\n \n /**\n * The GB member.\n */\n GB = 37,\n \n /**\n * The US member.\n */\n US = 38,\n \n /**\n * The PH member.\n */\n PH = 39,\n \n /**\n * The AE member.\n */\n AE = 40,\n \n /**\n * The QA member.\n */\n QA = 41,\n \n /**\n * The OM member.\n */\n OM = 42,\n \n /**\n * The HR member.\n */\n HR = 43\n }\n \n /**\n * AddressOperationType enum type.\n */\n export enum AddressOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Create member.\n */\n Create = 1,\n \n /**\n * The Update member.\n */\n Update = 2,\n \n /**\n * The Deactivate member.\n */\n Deactivate = 3\n }\n \n /**\n * AddressType enum type.\n */\n export enum AddressType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Invoice member.\n */\n Invoice = 1,\n \n /**\n * The Delivery member.\n */\n Delivery = 2,\n \n /**\n * The AltDlv member.\n */\n AltDlv = 3,\n \n /**\n * The SWIFT member.\n */\n SWIFT = 4,\n \n /**\n * The Payment member.\n */\n Payment = 5,\n \n /**\n * The Service member.\n */\n Service = 6,\n \n /**\n * The Home member.\n */\n Home = 7,\n \n /**\n * The Other member.\n */\n Other = 8,\n \n /**\n * The Business member.\n */\n Business = 9,\n \n /**\n * The RemitTo member.\n */\n RemitTo = 10,\n \n /**\n * The ShipCarrierThirdPartyShipping member.\n */\n ShipCarrierThirdPartyShipping = 11,\n \n /**\n * The Statement member.\n */\n Statement = 12,\n \n /**\n * The FixedAsset member.\n */\n FixedAsset = 15,\n \n /**\n * The Onetime member.\n */\n Onetime = 16,\n \n /**\n * The Recruit member.\n */\n Recruit = 17,\n \n /**\n * The SMS member.\n */\n SMS = 18,\n \n /**\n * The Lading_W member.\n */\n Lading_W = 101,\n \n /**\n * The Unlading_W member.\n */\n Unlading_W = 102,\n \n /**\n * The Consignment_IN member.\n */\n Consignment_IN = 103\n }\n \n /**\n * AttributeDataType enum type.\n */\n export enum AttributeDataType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Currency member.\n */\n Currency = 1,\n \n /**\n * The DateTime member.\n */\n DateTime = 2,\n \n /**\n * The Decimal member.\n */\n Decimal = 3,\n \n /**\n * The Integer member.\n */\n Integer = 4,\n \n /**\n * The Text member.\n */\n Text = 5,\n \n /**\n * The TrueFalse member.\n */\n TrueFalse = 6,\n \n /**\n * The Video member.\n */\n Video = 40,\n \n /**\n * The Image member.\n */\n Image = 41\n }\n \n /**\n * BarcodeEntryMethodType enum type.\n */\n export enum BarcodeEntryMethodType {\n \n /**\n * The SingleScanned member.\n */\n SingleScanned = 0,\n \n /**\n * The MultipleScanned member.\n */\n MultipleScanned = 1,\n \n /**\n * The ManuallyEntered member.\n */\n ManuallyEntered = 2,\n \n /**\n * The Selected member.\n */\n Selected = 3\n }\n \n /**\n * BarcodeMaskType enum type.\n */\n export enum BarcodeMaskType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Item member.\n */\n Item = 1,\n \n /**\n * The Customer member.\n */\n Customer = 2,\n \n /**\n * The Employee member.\n */\n Employee = 3,\n \n /**\n * The Coupon member.\n */\n Coupon = 4,\n \n /**\n * The DataEntry member.\n */\n DataEntry = 5,\n \n /**\n * The Salesperson member.\n */\n Salesperson = 6,\n \n /**\n * The Pharmacy member.\n */\n Pharmacy = 7,\n \n /**\n * The DiscountCode member.\n */\n DiscountCode = 8,\n \n /**\n * The GiftCard member.\n */\n GiftCard = 9,\n \n /**\n * The LoyaltyCard member.\n */\n LoyaltyCard = 10\n }\n \n /**\n * TransactionStatus enum type.\n */\n export enum TransactionStatus {\n \n /**\n * The Normal member.\n */\n Normal = 0,\n \n /**\n * The Voided member.\n */\n Voided = 1,\n \n /**\n * The Posted member.\n */\n Posted = 2,\n \n /**\n * The Concluded member.\n */\n Concluded = 3,\n \n /**\n * The Canceled member.\n */\n Canceled = 4,\n \n /**\n * The OnHold member.\n */\n OnHold = 5,\n \n /**\n * The Training member.\n */\n Training = 6,\n \n /**\n * The Aborted member.\n */\n Aborted = 7\n }\n \n /**\n * GiftCardOperationType enum type.\n */\n export enum GiftCardOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Issue member.\n */\n Issue = 1,\n \n /**\n * The AddTo member.\n */\n AddTo = 2,\n \n /**\n * The CashOut member.\n */\n CashOut = 3\n }\n \n /**\n * RetailGiftCardType enum type.\n */\n export enum RetailGiftCardType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The InternalGiftCard member.\n */\n InternalGiftCard = 1,\n \n /**\n * The ExternalGiftCard member.\n */\n ExternalGiftCard = 2\n }\n \n /**\n * PriceMethod enum type.\n */\n export enum PriceMethod {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Fixed member.\n */\n Fixed = 1,\n \n /**\n * The AmountOff member.\n */\n AmountOff = 2,\n \n /**\n * The PercentOff member.\n */\n PercentOff = 3\n }\n \n /**\n * ManualPriceEntryType enum type.\n */\n export enum ManualPriceEntryType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The PriceOverridden member.\n */\n PriceOverridden = 1,\n \n /**\n * The PriceKeyedIn member.\n */\n PriceKeyedIn = 2\n }\n \n /**\n * ConcurrencyMode enum type.\n */\n export enum ConcurrencyMode {\n \n /**\n * The Exclusive member.\n */\n Exclusive = 0,\n \n /**\n * The BestPrice member.\n */\n BestPrice = 1,\n \n /**\n * The Compounded member.\n */\n Compounded = 2,\n \n /**\n * The AlwaysApply member.\n */\n AlwaysApply = 3,\n \n /**\n * The HighestCombinedPricingPriority member.\n */\n HighestCombinedPricingPriority = 4\n }\n \n /**\n * SalesAgreementLineType enum type.\n */\n export enum SalesAgreementLineType {\n \n /**\n * The ProductQuantity member.\n */\n ProductQuantity = 0,\n \n /**\n * The ProductVolume member.\n */\n ProductVolume = 1,\n \n /**\n * The ProductCategory member.\n */\n ProductCategory = 2,\n \n /**\n * The ProductRootCategory member.\n */\n ProductRootCategory = 3\n }\n \n /**\n * DiscountLineType enum type.\n */\n export enum DiscountLineType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CustomerDiscount member.\n */\n CustomerDiscount = 1,\n \n /**\n * The PeriodicDiscount member.\n */\n PeriodicDiscount = 2,\n \n /**\n * The ManualDiscount member.\n */\n ManualDiscount = 3,\n \n /**\n * The LoyaltyDiscount member.\n */\n LoyaltyDiscount = 4,\n \n /**\n * The TenderTypeDiscount member.\n */\n TenderTypeDiscount = 5\n }\n \n /**\n * ManualDiscountType enum type.\n */\n export enum ManualDiscountType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The LineDiscountAmount member.\n */\n LineDiscountAmount = 1,\n \n /**\n * The LineDiscountPercent member.\n */\n LineDiscountPercent = 2,\n \n /**\n * The TotalDiscountAmount member.\n */\n TotalDiscountAmount = 3,\n \n /**\n * The TotalDiscountPercent member.\n */\n TotalDiscountPercent = 4\n }\n \n /**\n * CustomerDiscountType enum type.\n */\n export enum CustomerDiscountType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The LineDiscount member.\n */\n LineDiscount = 1,\n \n /**\n * The MultilineDiscount member.\n */\n MultilineDiscount = 2,\n \n /**\n * The TotalDiscount member.\n */\n TotalDiscount = 3\n }\n \n /**\n * ReasonCodeInputType enum type.\n */\n export enum ReasonCodeInputType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SubCode member.\n */\n SubCode = 1,\n \n /**\n * The Date member.\n */\n Date = 2,\n \n /**\n * The Numeric member.\n */\n Numeric = 3,\n \n /**\n * The Item member.\n */\n Item = 4,\n \n /**\n * The Customer member.\n */\n Customer = 5,\n \n /**\n * The Staff member.\n */\n Staff = 6,\n \n /**\n * The Text member.\n */\n Text = 9,\n \n /**\n * The SubCodeButtons member.\n */\n SubCodeButtons = 10,\n \n /**\n * The AgeLimit member.\n */\n AgeLimit = 11,\n \n /**\n * The CompositeSubCodes member.\n */\n CompositeSubCodes = 12\n }\n \n /**\n * ReasonCodeLineType enum type.\n */\n export enum ReasonCodeLineType {\n \n /**\n * The Header member.\n */\n Header = 0,\n \n /**\n * The Sales member.\n */\n Sales = 1,\n \n /**\n * The Payment member.\n */\n Payment = 2,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 3,\n \n /**\n * The NoSale member.\n */\n NoSale = 4,\n \n /**\n * The Affiliation member.\n */\n Affiliation = 5,\n \n /**\n * The Fiscal member.\n */\n Fiscal = 6\n }\n \n /**\n * ChargeModule enum type.\n */\n export enum ChargeModule {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Sales member.\n */\n Sales = 1,\n \n /**\n * The Retail member.\n */\n Retail = 3\n }\n \n /**\n * ChargeType enum type.\n */\n export enum ChargeType {\n \n /**\n * The ManualCharge member.\n */\n ManualCharge = 0,\n \n /**\n * The PriceCharge member.\n */\n PriceCharge = 1,\n \n /**\n * The AutoCharge member.\n */\n AutoCharge = 2\n }\n \n /**\n * ChargeMethod enum type.\n */\n export enum ChargeMethod {\n \n /**\n * The Fixed member.\n */\n Fixed = 0,\n \n /**\n * The Pieces member.\n */\n Pieces = 1,\n \n /**\n * The Percent member.\n */\n Percent = 2,\n \n /**\n * The InterCompanyPercent member.\n */\n InterCompanyPercent = 3,\n \n /**\n * The External member.\n */\n External = 4,\n \n /**\n * The Proportional member.\n */\n Proportional = 5,\n \n /**\n * The UnitSpecified member.\n */\n UnitSpecified = 6,\n \n /**\n * The UnitSpecifiedMatch member.\n */\n UnitSpecifiedMatch = 7\n }\n \n /**\n * CustType enum type.\n */\n export enum CustType {\n \n /**\n * The Item member.\n */\n Item = 0,\n \n /**\n * The LedgerAccount member.\n */\n LedgerAccount = 1,\n \n /**\n * The CustVend member.\n */\n CustVend = 2\n }\n \n /**\n * CashType enum type.\n */\n export enum CashType {\n \n /**\n * The Coin member.\n */\n Coin = 0,\n \n /**\n * The Note member.\n */\n Note = 1\n }\n \n /**\n * IncomeExpenseAccountType enum type.\n */\n export enum IncomeExpenseAccountType {\n \n /**\n * The Income member.\n */\n Income = 0,\n \n /**\n * The Expense member.\n */\n Expense = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * TenderLineStatus enum type.\n */\n export enum TenderLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotProcessed member.\n */\n NotProcessed = 1,\n \n /**\n * The PendingCommit member.\n */\n PendingCommit = 2,\n \n /**\n * The Voided member.\n */\n Voided = 3,\n \n /**\n * The Committed member.\n */\n Committed = 4,\n \n /**\n * The Historical member.\n */\n Historical = 5\n }\n \n /**\n * TenderLineVoidStatus enum type.\n */\n export enum TenderLineVoidStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NormalVoid member.\n */\n NormalVoid = 1,\n \n /**\n * The ForceVoided member.\n */\n ForceVoided = 2,\n \n /**\n * The ForceVoidReconciled member.\n */\n ForceVoidReconciled = 3\n }\n \n /**\n * PaymentProcessingType enum type.\n */\n export enum PaymentProcessingType {\n \n /**\n * The Immediate member.\n */\n Immediate = 0,\n \n /**\n * The Deferred member.\n */\n Deferred = 1,\n \n /**\n * The LinkedRefund member.\n */\n LinkedRefund = 2,\n \n /**\n * The Recalled member.\n */\n Recalled = 3\n }\n \n /**\n * CreditCardProcessorStatus enum type.\n */\n export enum CreditCardProcessorStatus {\n \n /**\n * The NA member.\n */\n NA = 0,\n \n /**\n * The Approved member.\n */\n Approved = 1,\n \n /**\n * The Declined member.\n */\n Declined = 2,\n \n /**\n * The Error member.\n */\n Error = 3\n }\n \n /**\n * ContactInformationType enum type.\n */\n export enum ContactInformationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Phone member.\n */\n Phone = 1,\n \n /**\n * The Email member.\n */\n Email = 2,\n \n /**\n * The Url member.\n */\n Url = 3,\n \n /**\n * The Telex member.\n */\n Telex = 4,\n \n /**\n * The Fax member.\n */\n Fax = 5,\n \n /**\n * The CellularPhone member.\n */\n CellularPhone = 6\n }\n \n /**\n * CommerceEntityDataLevel enum type.\n */\n export enum CommerceEntityDataLevel {\n \n /**\n * The Identity member.\n */\n Identity = 0,\n \n /**\n * The Minimal member.\n */\n Minimal = 1,\n \n /**\n * The Standard member.\n */\n Standard = 2,\n \n /**\n * The Extended member.\n */\n Extended = 3,\n \n /**\n * The Complete member.\n */\n Complete = 4\n }\n \n /**\n * ProductPropertyType enum type.\n */\n export enum ProductPropertyType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Currency member.\n */\n Currency = 1,\n \n /**\n * The DateTime member.\n */\n DateTime = 2,\n \n /**\n * The Decimal member.\n */\n Decimal = 3,\n \n /**\n * The Integer member.\n */\n Integer = 4,\n \n /**\n * The Text member.\n */\n Text = 5,\n \n /**\n * The Boolean member.\n */\n Boolean = 6,\n \n /**\n * The Video member.\n */\n Video = 40,\n \n /**\n * The Image member.\n */\n Image = 41\n }\n \n /**\n * AttributeGroupType enum type.\n */\n export enum AttributeGroupType {\n \n /**\n * The Default member.\n */\n Default = 0,\n \n /**\n * The Specification member.\n */\n Specification = 1\n }\n \n /**\n * ProductSource enum type.\n */\n export enum ProductSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Local member.\n */\n Local = 1,\n \n /**\n * The Remote member.\n */\n Remote = 2\n }\n \n /**\n * RoundingMethod enum type.\n */\n export enum RoundingMethod {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Nearest member.\n */\n Nearest = 1,\n \n /**\n * The Up member.\n */\n Up = 2,\n \n /**\n * The Down member.\n */\n Down = 3\n }\n \n /**\n * LineMultilineDiscountOnItem enum type.\n */\n export enum LineMultilineDiscountOnItem {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Line member.\n */\n Line = 1,\n \n /**\n * The Multiline member.\n */\n Multiline = 2,\n \n /**\n * The Both member.\n */\n Both = 3\n }\n \n /**\n * LoyaltyRewardPointEntryType enum type.\n */\n export enum LoyaltyRewardPointEntryType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Earn member.\n */\n Earn = 1,\n \n /**\n * The Redeem member.\n */\n Redeem = 2,\n \n /**\n * The ReturnEarned member.\n */\n ReturnEarned = 3,\n \n /**\n * The Adjust member.\n */\n Adjust = 4,\n \n /**\n * The Refund member.\n */\n Refund = 5\n }\n \n /**\n * LoyaltyRewardPointType enum type.\n */\n export enum LoyaltyRewardPointType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Quantity member.\n */\n Quantity = 1,\n \n /**\n * The Amount member.\n */\n Amount = 2\n }\n \n /**\n * TransactionType enum type.\n */\n export enum TransactionType {\n \n /**\n * The LogOff member.\n */\n LogOff = 0,\n \n /**\n * The LogOn member.\n */\n LogOn = 1,\n \n /**\n * The Sales member.\n */\n Sales = 2,\n \n /**\n * The Payment member.\n */\n Payment = 3,\n \n /**\n * The RemoveTender member.\n */\n RemoveTender = 4,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 5,\n \n /**\n * The ChangeTender member.\n */\n ChangeTender = 6,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 7,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 9,\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 14,\n \n /**\n * The SalesInvoice member.\n */\n SalesInvoice = 15,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 16,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 17,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 18,\n \n /**\n * The CustomerOrder member.\n */\n CustomerOrder = 19,\n \n /**\n * The StartingAmount member.\n */\n StartingAmount = 20,\n \n /**\n * The SuspendShift member.\n */\n SuspendShift = 21,\n \n /**\n * The BlindCloseShift member.\n */\n BlindCloseShift = 22,\n \n /**\n * The CloseShift member.\n */\n CloseShift = 23,\n \n /**\n * The PrintX member.\n */\n PrintX = 24,\n \n /**\n * The PrintZ member.\n */\n PrintZ = 25,\n \n /**\n * The PendingSalesOrder member.\n */\n PendingSalesOrder = 27,\n \n /**\n * The KitDisassembly member.\n */\n KitDisassembly = 28,\n \n /**\n * The AsyncCustomerQuote member.\n */\n AsyncCustomerQuote = 31,\n \n /**\n * The AsyncCustomerOrder member.\n */\n AsyncCustomerOrder = 33,\n \n /**\n * The ForceDeleteShift member.\n */\n ForceDeleteShift = 34,\n \n /**\n * The GiftCardInquiry member.\n */\n GiftCardInquiry = 35,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 36,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * CashManagementTransactionContext enum type.\n */\n export enum CashManagementTransactionContext {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The Shift member.\n */\n Shift = 1,\n \n /**\n * The Safe member.\n */\n Safe = 2,\n \n /**\n * The Bank member.\n */\n Bank = 3\n }\n \n /**\n * CustomerTimelineItemEntityType enum type.\n */\n export enum CustomerTimelineItemEntityType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Activity member.\n */\n Activity = 1,\n \n /**\n * The Note member.\n */\n Note = 2,\n \n /**\n * The UnifiedActivity member.\n */\n UnifiedActivity = 3\n }\n \n /**\n * EmployeePermissionsAllowPrintingReceiptCopy enum type.\n */\n export enum EmployeePermissionsAllowPrintingReceiptCopy {\n \n /**\n * The Always member.\n */\n Always = 0,\n \n /**\n * The OnlyOnce member.\n */\n OnlyOnce = 1,\n \n /**\n * The OnlyOnceHqAvailable member.\n */\n OnlyOnceHqAvailable = 2,\n \n /**\n * The Never member.\n */\n Never = 3\n }\n \n /**\n * AddressFormatLineType enum type.\n */\n export enum AddressFormatLineType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ZipCode member.\n */\n ZipCode = 1,\n \n /**\n * The City member.\n */\n City = 2,\n \n /**\n * The County member.\n */\n County = 3,\n \n /**\n * The State member.\n */\n State = 4,\n \n /**\n * The CountryRegion member.\n */\n CountryRegion = 5,\n \n /**\n * The StreetName member.\n */\n StreetName = 6,\n \n /**\n * The District member.\n */\n District = 7,\n \n /**\n * The StreetNumber member.\n */\n StreetNumber = 8,\n \n /**\n * The BuildingCompliment member.\n */\n BuildingCompliment = 9,\n \n /**\n * The Postbox member.\n */\n Postbox = 10,\n \n /**\n * The House_RU member.\n */\n House_RU = 21,\n \n /**\n * The Flat_RU member.\n */\n Flat_RU = 22,\n \n /**\n * The CountryOKSMCode_RU member.\n */\n CountryOKSMCode_RU = 23\n }\n \n /**\n * CustomerOrderSynchronizationMode enum type.\n */\n export enum CustomerOrderSynchronizationMode {\n \n /**\n * The Synchronous member.\n */\n Synchronous = 0,\n \n /**\n * The Asynchronous member.\n */\n Asynchronous = 1,\n \n /**\n * The RealTimeWithAsyncFallback member.\n */\n RealTimeWithAsyncFallback = 2\n }\n \n /**\n * StatementMethod enum type.\n */\n export enum StatementMethod {\n \n /**\n * The Staff member.\n */\n Staff = 0,\n \n /**\n * The PosTerminal member.\n */\n PosTerminal = 1,\n \n /**\n * The Total member.\n */\n Total = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * SalesRepPromptType enum type.\n */\n export enum SalesRepPromptType {\n \n /**\n * The NoPrompt member.\n */\n NoPrompt = 0,\n \n /**\n * The PromptOnCartCreation member.\n */\n PromptOnCartCreation = 1,\n \n /**\n * The PromptOnCartLineCreation member.\n */\n PromptOnCartLineCreation = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * RetailProductSearchType enum type.\n */\n export enum RetailProductSearchType {\n \n /**\n * The MatchAnySearchTerms member.\n */\n MatchAnySearchTerms = 0,\n \n /**\n * The MatchAllSearchTerms member.\n */\n MatchAllSearchTerms = 1\n }\n \n /**\n * RetailDenominationsToDisplay enum type.\n */\n export enum RetailDenominationsToDisplay {\n \n /**\n * The GreaterOrEqualToAmountDue member.\n */\n GreaterOrEqualToAmountDue = 0,\n \n /**\n * The AllDenominations member.\n */\n AllDenominations = 1\n }\n \n /**\n * EmployeeLogonType enum type.\n */\n export enum EmployeeLogonType {\n \n /**\n * The RetailIdentityProvider member.\n */\n RetailIdentityProvider = 0,\n \n /**\n * The AzureActiveDirectory member.\n */\n AzureActiveDirectory = 1,\n \n /**\n * The AzureActiveDirectorySingleSignOn member.\n */\n AzureActiveDirectorySingleSignOn = 2\n }\n \n /**\n * RetailCustomerSearchMode enum type.\n */\n export enum RetailCustomerSearchMode {\n \n /**\n * The Local member.\n */\n Local = 0,\n \n /**\n * The Remote member.\n */\n Remote = 1\n }\n \n /**\n * RequirePaymentForFulfillment enum type.\n */\n export enum RequirePaymentForFulfillment {\n \n /**\n * The AllowPayLater member.\n */\n AllowPayLater = 0,\n \n /**\n * The CardRequired member.\n */\n CardRequired = 1\n }\n \n /**\n * CardNotPresentProcessingConfiguration enum type.\n */\n export enum CardNotPresentProcessingConfiguration {\n \n /**\n * The UseHardwareStation member.\n */\n UseHardwareStation = 0,\n \n /**\n * The UseCommerceEngine member.\n */\n UseCommerceEngine = 1\n }\n \n /**\n * ChangeDueBehavior enum type.\n */\n export enum ChangeDueBehavior {\n \n /**\n * The ShowAlways member.\n */\n ShowAlways = 0,\n \n /**\n * The SkipWhenZero member.\n */\n SkipWhenZero = 1\n }\n \n /**\n * FontSchemeType enum type.\n */\n export enum FontSchemeType {\n \n /**\n * The Standard member.\n */\n Standard = 0,\n \n /**\n * The Large member.\n */\n Large = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DefaultSearchResultDisplayViewType enum type.\n */\n export enum DefaultSearchResultDisplayViewType {\n \n /**\n * The ListView member.\n */\n ListView = 0,\n \n /**\n * The CardView member.\n */\n CardView = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeviceActivationStatus enum type.\n */\n export enum DeviceActivationStatus {\n \n /**\n * The Pending member.\n */\n Pending = 0,\n \n /**\n * The Activated member.\n */\n Activated = 1,\n \n /**\n * The Deactivated member.\n */\n Deactivated = 2,\n \n /**\n * The Disabled member.\n */\n Disabled = 3,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeviceType enum type.\n */\n export enum DeviceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The OPOS member.\n */\n OPOS = 1,\n \n /**\n * The WindowsPrinter member.\n */\n WindowsPrinter = 2,\n \n /**\n * The Network member.\n */\n Network = 3\n }\n \n /**\n * DualDisplayType enum type.\n */\n export enum DualDisplayType {\n \n /**\n * The Logo member.\n */\n Logo = 0,\n \n /**\n * The ImageRotator member.\n */\n ImageRotator = 1,\n \n /**\n * The WebBrowser member.\n */\n WebBrowser = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * FiscalRegisterType enum type.\n */\n export enum FiscalRegisterType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Manufacturer member.\n */\n Manufacturer = 1\n }\n \n /**\n * PrinterLogotype enum type.\n */\n export enum PrinterLogotype {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Download member.\n */\n Download = 1,\n \n /**\n * The EpsonFlash member.\n */\n EpsonFlash = 2\n }\n \n /**\n * PrinterLogoAlignmentType enum type.\n */\n export enum PrinterLogoAlignmentType {\n \n /**\n * The Left member.\n */\n Left = 0,\n \n /**\n * The Center member.\n */\n Center = 1,\n \n /**\n * The Right member.\n */\n Right = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * FiscalIntegrationConnectorType enum type.\n */\n export enum FiscalIntegrationConnectorType {\n \n /**\n * The Local member.\n */\n Local = 0,\n \n /**\n * The External member.\n */\n External = 1,\n \n /**\n * The Internal member.\n */\n Internal = 2\n }\n \n /**\n * FiscalIntegrationConnectorLocation enum type.\n */\n export enum FiscalIntegrationConnectorLocation {\n \n /**\n * The HardwareStation member.\n */\n HardwareStation = 0,\n \n /**\n * The Pos member.\n */\n Pos = 1\n }\n \n /**\n * ReceiptType enum type.\n */\n export enum ReceiptType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The SalesReceipt member.\n */\n SalesReceipt = 1,\n \n /**\n * The CardReceiptForShop member.\n */\n CardReceiptForShop = 2,\n \n /**\n * The CardReceiptForCustomer member.\n */\n CardReceiptForCustomer = 3,\n \n /**\n * The CardReceiptForShopReturn member.\n */\n CardReceiptForShopReturn = 4,\n \n /**\n * The CardReceiptForCustomerReturn member.\n */\n CardReceiptForCustomerReturn = 5,\n \n /**\n * The CustomerAccountReceiptForShop member.\n */\n CustomerAccountReceiptForShop = 7,\n \n /**\n * The CustomerAccountReceiptForCustomer member.\n */\n CustomerAccountReceiptForCustomer = 8,\n \n /**\n * The CustomerAccountReceiptForShopReturn member.\n */\n CustomerAccountReceiptForShopReturn = 9,\n \n /**\n * The CustomerAccountReceiptForCustomerReturn member.\n */\n CustomerAccountReceiptForCustomerReturn = 10,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 14,\n \n /**\n * The CreditMemo member.\n */\n CreditMemo = 15,\n \n /**\n * The SalesOrderReceipt member.\n */\n SalesOrderReceipt = 18,\n \n /**\n * The GiftCertificate member.\n */\n GiftCertificate = 20,\n \n /**\n * The QuotationReceipt member.\n */\n QuotationReceipt = 21,\n \n /**\n * The PackingSlip member.\n */\n PackingSlip = 22,\n \n /**\n * The PickupReceipt member.\n */\n PickupReceipt = 23,\n \n /**\n * The XReport member.\n */\n XReport = 24,\n \n /**\n * The ZReport member.\n */\n ZReport = 25,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 26,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 27,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 28,\n \n /**\n * The RemoveTender member.\n */\n RemoveTender = 29,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 30,\n \n /**\n * The StartingAmount member.\n */\n StartingAmount = 31,\n \n /**\n * The OrderSummaryReceipt member.\n */\n OrderSummaryReceipt = 32,\n \n /**\n * The GiftReceipt member.\n */\n GiftReceipt = 33,\n \n /**\n * The ReturnLabel member.\n */\n ReturnLabel = 34,\n \n /**\n * The EFDocDANFESimplified member.\n */\n EFDocDANFESimplified = 35,\n \n /**\n * The EFDocDANFEDetailed member.\n */\n EFDocDANFEDetailed = 36,\n \n /**\n * The PickingList member.\n */\n PickingList = 37,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 38,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 39,\n \n /**\n * The GiftCardInquiry member.\n */\n GiftCardInquiry = 40,\n \n /**\n * The CardTerminationReceiptForShop member.\n */\n CardTerminationReceiptForShop = 41,\n \n /**\n * The CardTerminationReceiptForCustomer member.\n */\n CardTerminationReceiptForCustomer = 42,\n \n /**\n * The TransferPackingSlip member.\n */\n TransferPackingSlip = 43,\n \n /**\n * The EFDocDanfeModel55 member.\n */\n EFDocDanfeModel55 = 44,\n \n /**\n * The InventoryAdjustment member.\n */\n InventoryAdjustment = 45,\n \n /**\n * The InventoryTransfer member.\n */\n InventoryTransfer = 46,\n \n /**\n * The CfeDetailed member.\n */\n CfeDetailed = 47,\n \n /**\n * The CfeSimplified member.\n */\n CfeSimplified = 48,\n \n /**\n * The CfeCancelled member.\n */\n CfeCancelled = 49,\n \n /**\n * The CustomReceipt1 member.\n */\n CustomReceipt1 = 101,\n \n /**\n * The CustomReceipt2 member.\n */\n CustomReceipt2 = 102,\n \n /**\n * The CustomReceipt3 member.\n */\n CustomReceipt3 = 103,\n \n /**\n * The CustomReceipt4 member.\n */\n CustomReceipt4 = 104,\n \n /**\n * The CustomReceipt5 member.\n */\n CustomReceipt5 = 105,\n \n /**\n * The CustomReceipt6 member.\n */\n CustomReceipt6 = 106,\n \n /**\n * The CustomReceipt7 member.\n */\n CustomReceipt7 = 107,\n \n /**\n * The CustomReceipt8 member.\n */\n CustomReceipt8 = 108,\n \n /**\n * The CustomReceipt9 member.\n */\n CustomReceipt9 = 109,\n \n /**\n * The CustomReceipt10 member.\n */\n CustomReceipt10 = 110,\n \n /**\n * The CustomReceipt11 member.\n */\n CustomReceipt11 = 111,\n \n /**\n * The CustomReceipt12 member.\n */\n CustomReceipt12 = 112,\n \n /**\n * The CustomReceipt13 member.\n */\n CustomReceipt13 = 113,\n \n /**\n * The CustomReceipt14 member.\n */\n CustomReceipt14 = 114,\n \n /**\n * The CustomReceipt15 member.\n */\n CustomReceipt15 = 115,\n \n /**\n * The CustomReceipt16 member.\n */\n CustomReceipt16 = 116,\n \n /**\n * The CustomReceipt17 member.\n */\n CustomReceipt17 = 117,\n \n /**\n * The CustomReceipt18 member.\n */\n CustomReceipt18 = 118,\n \n /**\n * The CustomReceipt19 member.\n */\n CustomReceipt19 = 119,\n \n /**\n * The CustomReceipt20 member.\n */\n CustomReceipt20 = 120\n }\n \n /**\n * PrintBehavior enum type.\n */\n export enum PrintBehavior {\n \n /**\n * The Always member.\n */\n Always = 0,\n \n /**\n * The Never member.\n */\n Never = 1,\n \n /**\n * The Prompt member.\n */\n Prompt = 2,\n \n /**\n * The AsRequired member.\n */\n AsRequired = 3\n }\n \n /**\n * DistanceUnit enum type.\n */\n export enum DistanceUnit {\n \n /**\n * The Miles member.\n */\n Miles = 0,\n \n /**\n * The Kilometers member.\n */\n Kilometers = 1\n }\n \n /**\n * StockCountStatus enum type.\n */\n export enum StockCountStatus {\n \n /**\n * The Unchanged member.\n */\n Unchanged = 0,\n \n /**\n * The PendingUpdate member.\n */\n PendingUpdate = 1\n }\n \n /**\n * UnitOfMeasureSource enum type.\n */\n export enum UnitOfMeasureSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Default member.\n */\n Default = 1,\n \n /**\n * The StandardConversion member.\n */\n StandardConversion = 2,\n \n /**\n * The IntraOrInterClassConversion member.\n */\n IntraOrInterClassConversion = 3,\n \n /**\n * The VariantConversion member.\n */\n VariantConversion = 4\n }\n \n /**\n * RecommendedElementType enum type.\n */\n export enum RecommendedElementType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Product member.\n */\n Product = 1,\n \n /**\n * The Content member.\n */\n Content = 2\n }\n \n /**\n * CommerceListInvitationStatus enum type.\n */\n export enum CommerceListInvitationStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Pending member.\n */\n Pending = 1,\n \n /**\n * The Accepted member.\n */\n Accepted = 2\n }\n \n /**\n * CommerceListInvitationType enum type.\n */\n export enum CommerceListInvitationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Public member.\n */\n Public = 1,\n \n /**\n * The Email member.\n */\n Email = 2\n }\n \n /**\n * SearchLocation enum type.\n */\n export enum SearchLocation {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Local member.\n */\n Local = 1,\n \n /**\n * The Remote member.\n */\n Remote = 2,\n \n /**\n * The All member.\n */\n All = 3\n }\n \n /**\n * OrderSearchType enum type.\n */\n export enum OrderSearchType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 1,\n \n /**\n * The SalesTransaction member.\n */\n SalesTransaction = 2,\n \n /**\n * The ConsolidateOrder member.\n */\n ConsolidateOrder = 3\n }\n \n /**\n * SalesTransactionType enum type.\n */\n export enum SalesTransactionType {\n \n /**\n * The Sales member.\n */\n Sales = 2,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 3,\n \n /**\n * The SalesInvoice member.\n */\n SalesInvoice = 15,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 18,\n \n /**\n * The CustomerOrder member.\n */\n CustomerOrder = 19,\n \n /**\n * The PendingSalesOrder member.\n */\n PendingSalesOrder = 27,\n \n /**\n * The AsyncCustomerQuote member.\n */\n AsyncCustomerQuote = 31,\n \n /**\n * The AsyncCustomerOrder member.\n */\n AsyncCustomerOrder = 33,\n \n /**\n * The SuspendedTransaction member.\n */\n SuspendedTransaction = 36,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * CustomerRefinerSource enum type.\n */\n export enum CustomerRefinerSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Attribute member.\n */\n Attribute = 1,\n \n /**\n * The CustomerSearchField member.\n */\n CustomerSearchField = 2\n }\n \n /**\n * PriceSourceType enum type.\n */\n export enum PriceSourceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The BasePrice member.\n */\n BasePrice = 1,\n \n /**\n * The TradeAgreement member.\n */\n TradeAgreement = 2,\n \n /**\n * The PriceAdjustment member.\n */\n PriceAdjustment = 3,\n \n /**\n * The SalesAgreement member.\n */\n SalesAgreement = 4,\n \n /**\n * The Manual member.\n */\n Manual = 5\n }\n \n /**\n * RetailAffiliationType enum type.\n */\n export enum RetailAffiliationType {\n \n /**\n * The General member.\n */\n General = 0,\n \n /**\n * The Loyalty member.\n */\n Loyalty = 1,\n \n /**\n * The Unknown member.\n */\n Unknown = -1\n }\n \n /**\n * InventoryDocumentLineOriginType enum type.\n */\n export enum InventoryDocumentLineOriginType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Headquarters member.\n */\n Headquarters = 1,\n \n /**\n * The Channel member.\n */\n Channel = 2\n }\n \n /**\n * InventorySerialNumberLineStatus enum type.\n */\n export enum InventorySerialNumberLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotRegistered member.\n */\n NotRegistered = 1,\n \n /**\n * The Registering member.\n */\n Registering = 2,\n \n /**\n * The Registered member.\n */\n Registered = 3\n }\n \n /**\n * InventoryTrackingDimensionLineStatus enum type.\n */\n export enum InventoryTrackingDimensionLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotRegistered member.\n */\n NotRegistered = 1,\n \n /**\n * The Registering member.\n */\n Registering = 2,\n \n /**\n * The Registered member.\n */\n Registered = 3\n }\n \n /**\n * InventorySourceDocumentLineStatus enum type.\n */\n export enum InventorySourceDocumentLineStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Deleted member.\n */\n Deleted = 1,\n \n /**\n * The ReadOnly member.\n */\n ReadOnly = 2\n }\n \n /**\n * RetailOperation enum type.\n */\n export enum RetailOperation {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ItemSale member.\n */\n ItemSale = 100,\n \n /**\n * The PriceCheck member.\n */\n PriceCheck = 101,\n \n /**\n * The VoidItem member.\n */\n VoidItem = 102,\n \n /**\n * The ItemComment member.\n */\n ItemComment = 103,\n \n /**\n * The PriceOverride member.\n */\n PriceOverride = 104,\n \n /**\n * The SetQuantity member.\n */\n SetQuantity = 105,\n \n /**\n * The ClearQuantity member.\n */\n ClearQuantity = 106,\n \n /**\n * The ItemSearch member.\n */\n ItemSearch = 108,\n \n /**\n * The ReturnItem member.\n */\n ReturnItem = 109,\n \n /**\n * The WeighItem member.\n */\n WeighItem = 110,\n \n /**\n * The LinkedItemsAdd member.\n */\n LinkedItemsAdd = 112,\n \n /**\n * The SetDimensions member.\n */\n SetDimensions = 113,\n \n /**\n * The ReturnTransaction member.\n */\n ReturnTransaction = 114,\n \n /**\n * The ShowJournal member.\n */\n ShowJournal = 115,\n \n /**\n * The SetCostPrice member.\n */\n SetCostPrice = 116,\n \n /**\n * The LoyaltyRequest member.\n */\n LoyaltyRequest = 117,\n \n /**\n * The ProcessInput member.\n */\n ProcessInput = 118,\n \n /**\n * The SalespersonBarcode member.\n */\n SalespersonBarcode = 119,\n \n /**\n * The SalespersonCard member.\n */\n SalespersonCard = 120,\n \n /**\n * The SalespersonClear member.\n */\n SalespersonClear = 121,\n \n /**\n * The InvoiceComment member.\n */\n InvoiceComment = 122,\n \n /**\n * The ChangeUnitOfMeasure member.\n */\n ChangeUnitOfMeasure = 123,\n \n /**\n * The ItemSaleMultiple member.\n */\n ItemSaleMultiple = 124,\n \n /**\n * The RFIDSale member.\n */\n RFIDSale = 125,\n \n /**\n * The SalesHistory member.\n */\n SalesHistory = 126,\n \n /**\n * The OverrideTaxTransaction member.\n */\n OverrideTaxTransaction = 127,\n \n /**\n * The OverrideTaxTransactionList member.\n */\n OverrideTaxTransactionList = 128,\n \n /**\n * The OverrideTaxLine member.\n */\n OverrideTaxLine = 129,\n \n /**\n * The OverrideTaxLineList member.\n */\n OverrideTaxLineList = 130,\n \n /**\n * The PackSlip member.\n */\n PackSlip = 131,\n \n /**\n * The DepositOverride member.\n */\n DepositOverride = 132,\n \n /**\n * The BuyWarranty member.\n */\n BuyWarranty = 133,\n \n /**\n * The AddAffiliation member.\n */\n AddAffiliation = 134,\n \n /**\n * The AddAffiliationFromList member.\n */\n AddAffiliationFromList = 135,\n \n /**\n * The AddSerialNumber member.\n */\n AddSerialNumber = 136,\n \n /**\n * The AddAffiliationToCustomer member.\n */\n AddAffiliationToCustomer = 137,\n \n /**\n * The RemoveAffiliationFromCustomer member.\n */\n RemoveAffiliationFromCustomer = 138,\n \n /**\n * The ConcludeTransaction member.\n */\n ConcludeTransaction = 139,\n \n /**\n * The AddLineCharge member.\n */\n AddLineCharge = 140,\n \n /**\n * The AddHeaderCharge member.\n */\n AddHeaderCharge = 141,\n \n /**\n * The ManageCharges member.\n */\n ManageCharges = 142,\n \n /**\n * The RecalculateCharges member.\n */\n RecalculateCharges = 143,\n \n /**\n * The AddWarrantyToAnExistingTransaction member.\n */\n AddWarrantyToAnExistingTransaction = 144,\n \n /**\n * The PayCash member.\n */\n PayCash = 200,\n \n /**\n * The PayCard member.\n */\n PayCard = 201,\n \n /**\n * The PayCustomerAccount member.\n */\n PayCustomerAccount = 202,\n \n /**\n * The PayCurrency member.\n */\n PayCurrency = 203,\n \n /**\n * The PayCheck member.\n */\n PayCheck = 204,\n \n /**\n * The PayCashQuick member.\n */\n PayCashQuick = 206,\n \n /**\n * The PayLoyalty member.\n */\n PayLoyalty = 207,\n \n /**\n * The PayCorporateCard member.\n */\n PayCorporateCard = 208,\n \n /**\n * The ChangeBack member.\n */\n ChangeBack = 210,\n \n /**\n * The VoidPayment member.\n */\n VoidPayment = 211,\n \n /**\n * The FleetCardInfo member.\n */\n FleetCardInfo = 212,\n \n /**\n * The PayCreditMemo member.\n */\n PayCreditMemo = 213,\n \n /**\n * The PayGiftCertificate member.\n */\n PayGiftCertificate = 214,\n \n /**\n * The CashOutGiftCard member.\n */\n CashOutGiftCard = 215,\n \n /**\n * The PayCardExact member.\n */\n PayCardExact = 216,\n \n /**\n * The PayCheckExact member.\n */\n PayCheckExact = 217,\n \n /**\n * The PayCustomerAccountExact member.\n */\n PayCustomerAccountExact = 218,\n \n /**\n * The PayGiftCardExact member.\n */\n PayGiftCardExact = 219,\n \n /**\n * The PayLoyaltyCardExact member.\n */\n PayLoyaltyCardExact = 220,\n \n /**\n * The LineDiscountAmount member.\n */\n LineDiscountAmount = 300,\n \n /**\n * The LineDiscountPercent member.\n */\n LineDiscountPercent = 301,\n \n /**\n * The TotalDiscountAmount member.\n */\n TotalDiscountAmount = 302,\n \n /**\n * The TotalDiscountPercent member.\n */\n TotalDiscountPercent = 303,\n \n /**\n * The DiscountCodeBarcode member.\n */\n DiscountCodeBarcode = 304,\n \n /**\n * The CalculateFullDiscounts member.\n */\n CalculateFullDiscounts = 310,\n \n /**\n * The RemovePeriodicDiscountsFromTransaction member.\n */\n RemovePeriodicDiscountsFromTransaction = 311,\n \n /**\n * The RecalculatePeriodicDiscounts member.\n */\n RecalculatePeriodicDiscounts = 312,\n \n /**\n * The PopupMenu member.\n */\n PopupMenu = 400,\n \n /**\n * The Submenu member.\n */\n Submenu = 401,\n \n /**\n * The VoidTransaction member.\n */\n VoidTransaction = 500,\n \n /**\n * The TransactionComment member.\n */\n TransactionComment = 501,\n \n /**\n * The SalesPerson member.\n */\n SalesPerson = 502,\n \n /**\n * The SuspendTransaction member.\n */\n SuspendTransaction = 503,\n \n /**\n * The RecallTransaction member.\n */\n RecallTransaction = 504,\n \n /**\n * The RecallUnconcludedTransaction member.\n */\n RecallUnconcludedTransaction = 505,\n \n /**\n * The CardSwipe member.\n */\n CardSwipe = 506,\n \n /**\n * The PharmacyPrescriptionAdd member.\n */\n PharmacyPrescriptionAdd = 507,\n \n /**\n * The PharmacyPrescriptionCancel member.\n */\n PharmacyPrescriptionCancel = 508,\n \n /**\n * The PharmacyPrescriptionPaid member.\n */\n PharmacyPrescriptionPaid = 509,\n \n /**\n * The PharmacyPrescriptions member.\n */\n PharmacyPrescriptions = 510,\n \n /**\n * The IssueCreditMemo member.\n */\n IssueCreditMemo = 511,\n \n /**\n * The IssueGiftCertificate member.\n */\n IssueGiftCertificate = 512,\n \n /**\n * The DisplayTotal member.\n */\n DisplayTotal = 513,\n \n /**\n * The RecallSalesOrder member.\n */\n RecallSalesOrder = 515,\n \n /**\n * The SalesInvoice member.\n */\n SalesInvoice = 516,\n \n /**\n * The IncomeAccounts member.\n */\n IncomeAccounts = 517,\n \n /**\n * The ExpenseAccounts member.\n */\n ExpenseAccounts = 518,\n \n /**\n * The AddToGiftCard member.\n */\n AddToGiftCard = 519,\n \n /**\n * The GiftCardBalance member.\n */\n GiftCardBalance = 520,\n \n /**\n * The LoyaltyCardPointsBalance member.\n */\n LoyaltyCardPointsBalance = 521,\n \n /**\n * The ForceCompleteTransaction member.\n */\n ForceCompleteTransaction = 522,\n \n /**\n * The CashChangerRegisterAmount member.\n */\n CashChangerRegisterAmount = 550,\n \n /**\n * The CashChangerReset member.\n */\n CashChangerReset = 551,\n \n /**\n * The CashChangerRegret member.\n */\n CashChangerRegret = 552,\n \n /**\n * The CashChangerExit member.\n */\n CashChangerExit = 553,\n \n /**\n * The CashChangerChange member.\n */\n CashChangerChange = 554,\n \n /**\n * The CashChangerLogOn member.\n */\n CashChangerLogOn = 555,\n \n /**\n * The CashChangerInit member.\n */\n CashChangerInit = 556,\n \n /**\n * The SetCustomer member.\n */\n SetCustomer = 600,\n \n /**\n * The CustomerSearch member.\n */\n CustomerSearch = 602,\n \n /**\n * The CustomerClear member.\n */\n CustomerClear = 603,\n \n /**\n * The CustomerCard member.\n */\n CustomerCard = 604,\n \n /**\n * The CustomerTransactions member.\n */\n CustomerTransactions = 609,\n \n /**\n * The CustomerTransactionsReport member.\n */\n CustomerTransactionsReport = 610,\n \n /**\n * The CustomerBalanceReport member.\n */\n CustomerBalanceReport = 611,\n \n /**\n * The CustomerAdd member.\n */\n CustomerAdd = 612,\n \n /**\n * The CustomerBarcode member.\n */\n CustomerBarcode = 613,\n \n /**\n * The EditCustomerOrder member.\n */\n EditCustomerOrder = 614,\n \n /**\n * The EditQuotation member.\n */\n EditQuotation = 615,\n \n /**\n * The CreateCustomerOrder member.\n */\n CreateCustomerOrder = 620,\n \n /**\n * The CreateQuotation member.\n */\n CreateQuotation = 621,\n \n /**\n * The Search member.\n */\n Search = 622,\n \n /**\n * The CustomerEdit member.\n */\n CustomerEdit = 623,\n \n /**\n * The LoyaltyIssueCard member.\n */\n LoyaltyIssueCard = 625,\n \n /**\n * The RecalculateCustomerOrder member.\n */\n RecalculateCustomerOrder = 627,\n \n /**\n * The ShipSelectedProducts member.\n */\n ShipSelectedProducts = 629,\n \n /**\n * The ShipAllProducts member.\n */\n ShipAllProducts = 630,\n \n /**\n * The PickupSelectedProducts member.\n */\n PickupSelectedProducts = 631,\n \n /**\n * The PickupAllProducts member.\n */\n PickupAllProducts = 632,\n \n /**\n * The SetQuotationExpirationDate member.\n */\n SetQuotationExpirationDate = 633,\n \n /**\n * The PaymentsHistory member.\n */\n PaymentsHistory = 634,\n \n /**\n * The ReturnChargesOverride member.\n */\n ReturnChargesOverride = 635,\n \n /**\n * The CreateRetailTransaction member.\n */\n CreateRetailTransaction = 636,\n \n /**\n * The SetCommissionSalesGroupOnTransaction member.\n */\n SetCommissionSalesGroupOnTransaction = 637,\n \n /**\n * The SetCommissionSalesGroupOnLine member.\n */\n SetCommissionSalesGroupOnLine = 638,\n \n /**\n * The ClearCommissionSalesGroupOnTransaction member.\n */\n ClearCommissionSalesGroupOnTransaction = 639,\n \n /**\n * The ClearCommissionSalesGroupOnLine member.\n */\n ClearCommissionSalesGroupOnLine = 640,\n \n /**\n * The CarryoutSelectedProducts member.\n */\n CarryoutSelectedProducts = 641,\n \n /**\n * The CarryoutAllProducts member.\n */\n CarryoutAllProducts = 642,\n \n /**\n * The AddCoupons member.\n */\n AddCoupons = 643,\n \n /**\n * The RemoveCoupons member.\n */\n RemoveCoupons = 644,\n \n /**\n * The ViewAllDiscounts member.\n */\n ViewAllDiscounts = 645,\n \n /**\n * The ViewAvailableDiscounts member.\n */\n ViewAvailableDiscounts = 646,\n \n /**\n * The ChangeDeliveryMode member.\n */\n ChangeDeliveryMode = 647,\n \n /**\n * The CancelOrder member.\n */\n CancelOrder = 648,\n \n /**\n * The CreatePickingList member.\n */\n CreatePickingList = 649,\n \n /**\n * The PrintPackingSlip member.\n */\n PrintPackingSlip = 650,\n \n /**\n * The EditFulfillmentLine member.\n */\n EditFulfillmentLine = 651,\n \n /**\n * The AcceptFulfillmentLine member.\n */\n AcceptFulfillmentLine = 652,\n \n /**\n * The RejectFulfillmentLine member.\n */\n RejectFulfillmentLine = 653,\n \n /**\n * The PickFulfillmentLine member.\n */\n PickFulfillmentLine = 654,\n \n /**\n * The PackFulfillmentLine member.\n */\n PackFulfillmentLine = 655,\n \n /**\n * The ShipFulfillmentLine member.\n */\n ShipFulfillmentLine = 656,\n \n /**\n * The PickupFulfillmentLine member.\n */\n PickupFulfillmentLine = 657,\n \n /**\n * The ChangePickupLines member.\n */\n ChangePickupLines = 658,\n \n /**\n * The LogOn member.\n */\n LogOn = 700,\n \n /**\n * The LogOff member.\n */\n LogOff = 701,\n \n /**\n * The ChangeUser member.\n */\n ChangeUser = 702,\n \n /**\n * The LockTerminal member.\n */\n LockTerminal = 703,\n \n /**\n * The LogOffForce member.\n */\n LogOffForce = 704,\n \n /**\n * The EmployeeCard member.\n */\n EmployeeCard = 705,\n \n /**\n * The EmployeeBarcode member.\n */\n EmployeeBarcode = 706,\n \n /**\n * The ActivateDevice member.\n */\n ActivateDevice = 707,\n \n /**\n * The DeactivateDevice member.\n */\n DeactivateDevice = 708,\n \n /**\n * The ChangeHardwareStation member.\n */\n ChangeHardwareStation = 709,\n \n /**\n * The PairHardwareStation member.\n */\n PairHardwareStation = 710,\n \n /**\n * The MassActivateDevice member.\n */\n MassActivateDevice = 711,\n \n /**\n * The ViewMyClientBook member.\n */\n ViewMyClientBook = 712,\n \n /**\n * The ViewStoreClientBooks member.\n */\n ViewStoreClientBooks = 713,\n \n /**\n * The AddCustomerToClientBook member.\n */\n AddCustomerToClientBook = 714,\n \n /**\n * The RemoveCustomersFromClientBook member.\n */\n RemoveCustomersFromClientBook = 715,\n \n /**\n * The ReassignClientBookCustomers member.\n */\n ReassignClientBookCustomers = 716,\n \n /**\n * The HealthCheck member.\n */\n HealthCheck = 717,\n \n /**\n * The RequestForAssistance member.\n */\n RequestForAssistance = 718,\n \n /**\n * The NegativeAdjustment member.\n */\n NegativeAdjustment = 800,\n \n /**\n * The InventoryLookup member.\n */\n InventoryLookup = 801,\n \n /**\n * The StockCount member.\n */\n StockCount = 802,\n \n /**\n * The PickingAndReceiving member.\n */\n PickingAndReceiving = 803,\n \n /**\n * The InboundInventory member.\n */\n InboundInventory = 804,\n \n /**\n * The OutboundInventory member.\n */\n OutboundInventory = 805,\n \n /**\n * The InventoryAdjustment member.\n */\n InventoryAdjustment = 806,\n \n /**\n * The InventoryMovement member.\n */\n InventoryMovement = 807,\n \n /**\n * The PostStockCounting member.\n */\n PostStockCounting = 808,\n \n /**\n * The CreatePurchaseOrder member.\n */\n CreatePurchaseOrder = 809,\n \n /**\n * The ConfirmPurchaseOrder member.\n */\n ConfirmPurchaseOrder = 810,\n \n /**\n * The CreateTransferOrder member.\n */\n CreateTransferOrder = 811,\n \n /**\n * The ApplicationExit member.\n */\n ApplicationExit = 900,\n \n /**\n * The PrintTaxFree member.\n */\n PrintTaxFree = 906,\n \n /**\n * The PrintPreviousSlip member.\n */\n PrintPreviousSlip = 907,\n \n /**\n * The PrintPreviousInvoice member.\n */\n PrintPreviousInvoice = 908,\n \n /**\n * The UploadPrinterLogo member.\n */\n UploadPrinterLogo = 909,\n \n /**\n * The RestartComputer member.\n */\n RestartComputer = 910,\n \n /**\n * The ShutdownComputer member.\n */\n ShutdownComputer = 911,\n \n /**\n * The DesignModeEnable member.\n */\n DesignModeEnable = 912,\n \n /**\n * The DesignModeDisable member.\n */\n DesignModeDisable = 913,\n \n /**\n * The MinimizePOSWindow member.\n */\n MinimizePOSWindow = 914,\n \n /**\n * The BlankOperation member.\n */\n BlankOperation = 915,\n \n /**\n * The WindowsWorkflowOperation member.\n */\n WindowsWorkflowOperation = 916,\n \n /**\n * The DatabaseConnectionStatus member.\n */\n DatabaseConnectionStatus = 917,\n \n /**\n * The ShowBlindClosedShifts member.\n */\n ShowBlindClosedShifts = 918,\n \n /**\n * The ExtendedLogOn member.\n */\n ExtendedLogOn = 919,\n \n /**\n * The TimeRegistration member.\n */\n TimeRegistration = 920,\n \n /**\n * The ViewTimeClockEntries member.\n */\n ViewTimeClockEntries = 921,\n \n /**\n * The ViewProductDetails member.\n */\n ViewProductDetails = 922,\n \n /**\n * The ViewOrderFulfillmentLines member.\n */\n ViewOrderFulfillmentLines = 928,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 1000,\n \n /**\n * The ViewReport member.\n */\n ViewReport = 1003,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 1052,\n \n /**\n * The BlindCloseShift member.\n */\n BlindCloseShift = 1053,\n \n /**\n * The SuspendShift member.\n */\n SuspendShift = 1054,\n \n /**\n * The CloseShift member.\n */\n CloseShift = 1055,\n \n /**\n * The PrintX member.\n */\n PrintX = 1056,\n \n /**\n * The PrintZ member.\n */\n PrintZ = 1057,\n \n /**\n * The PrintFiscalX member.\n */\n PrintFiscalX = 1058,\n \n /**\n * The PrintFiscalZ member.\n */\n PrintFiscalZ = 1059,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 1100,\n \n /**\n * The DeclareStartAmount member.\n */\n DeclareStartAmount = 1200,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 1201,\n \n /**\n * The TenderRemoval member.\n */\n TenderRemoval = 1210,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 1211,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 1212,\n \n /**\n * The ShippingAddressSearch member.\n */\n ShippingAddressSearch = 1213,\n \n /**\n * The ShippingAddressAdd member.\n */\n ShippingAddressAdd = 1214,\n \n /**\n * The ChangePassword member.\n */\n ChangePassword = 1215,\n \n /**\n * The ResetPassword member.\n */\n ResetPassword = 1216,\n \n /**\n * The KitDisassembly member.\n */\n KitDisassembly = 1217,\n \n /**\n * The ForceUnlockPeripheral member.\n */\n ForceUnlockPeripheral = 1218,\n \n /**\n * The OpenURL member.\n */\n OpenURL = 1219,\n \n /**\n * The ManageSafe member.\n */\n ManageSafe = 1220,\n \n /**\n * The VoidSuspendedTransactions member.\n */\n VoidSuspendedTransactions = 1221,\n \n /**\n * The SkipFiscalRegistration member.\n */\n SkipFiscalRegistration = 1300,\n \n /**\n * The MarkFiscalEventRegistered member.\n */\n MarkFiscalEventRegistered = 1301,\n \n /**\n * The CompleteFiscalRegistrationProcess member.\n */\n CompleteFiscalRegistrationProcess = 1302,\n \n /**\n * The SkipHealthCheckError member.\n */\n SkipHealthCheckError = 1303,\n \n /**\n * The PostponeFiscalRegistration member.\n */\n PostponeFiscalRegistration = 1304,\n \n /**\n * The ManageChecklistsAndTasks member.\n */\n ManageChecklistsAndTasks = 1400,\n \n /**\n * The Invalid member.\n */\n Invalid = 65535\n }\n \n /**\n * RefinerType enum type.\n */\n export enum RefinerType {\n \n /**\n * The SingleSelect member.\n */\n SingleSelect = 0,\n \n /**\n * The MultiSelect member.\n */\n MultiSelect = 1,\n \n /**\n * The FreeText member.\n */\n FreeText = 2\n }\n \n /**\n * DisplayTemplate enum type.\n */\n export enum DisplayTemplate {\n \n /**\n * The List member.\n */\n List = 0,\n \n /**\n * The Slider member.\n */\n Slider = 1,\n \n /**\n * The SliderWithBars member.\n */\n SliderWithBars = 2,\n \n /**\n * The Range member.\n */\n Range = 3,\n \n /**\n * The TextBox member.\n */\n TextBox = 4\n }\n \n /**\n * ClientBookRefinerSource enum type.\n */\n export enum ClientBookRefinerSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Attribute member.\n */\n Attribute = 1,\n \n /**\n * The CustomerSearchKeyword member.\n */\n CustomerSearchKeyword = 2,\n \n /**\n * The StaffId member.\n */\n StaffId = 3\n }\n \n /**\n * ProductRefinerSource enum type.\n */\n export enum ProductRefinerSource {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Attribute member.\n */\n Attribute = 1,\n \n /**\n * The Category member.\n */\n Category = 2,\n \n /**\n * The Price member.\n */\n Price = 3,\n \n /**\n * The Rating member.\n */\n Rating = 4\n }\n \n /**\n * LoyaltyCardTenderType enum type.\n */\n export enum LoyaltyCardTenderType {\n \n /**\n * The AsCardTender member.\n */\n AsCardTender = 0,\n \n /**\n * The AsContactTender member.\n */\n AsContactTender = 1,\n \n /**\n * The NoTender member.\n */\n NoTender = 2,\n \n /**\n * The Blocked member.\n */\n Blocked = 3\n }\n \n /**\n * ReleasedProductType enum type.\n */\n export enum ReleasedProductType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Item member.\n */\n Item = 1,\n \n /**\n * The Service member.\n */\n Service = 2\n }\n \n /**\n * RetailChannelType enum type.\n */\n export enum RetailChannelType {\n \n /**\n * The RetailStore member.\n */\n RetailStore = 0,\n \n /**\n * The OnlineStore member.\n */\n OnlineStore = 1,\n \n /**\n * The OnlineMarketplace member.\n */\n OnlineMarketplace = 2,\n \n /**\n * The SharePointOnlineStore member.\n */\n SharePointOnlineStore = 3,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * LogOnConfiguration enum type.\n */\n export enum LogOnConfiguration {\n \n /**\n * The LocalDatabase member.\n */\n LocalDatabase = 0,\n \n /**\n * The RealTimeService member.\n */\n RealTimeService = 1\n }\n \n /**\n * TransactionServiceAuthenticationType enum type.\n */\n export enum TransactionServiceAuthenticationType {\n \n /**\n * The CertificateAuthentication member.\n */\n CertificateAuthentication = 0,\n \n /**\n * The ServiceToServiceAuthentication member.\n */\n ServiceToServiceAuthentication = 1,\n \n /**\n * The AdfsServiceToServiceClientSecretAuthentication member.\n */\n AdfsServiceToServiceClientSecretAuthentication = 2,\n \n /**\n * The ServiceToServiceClientCertificateAuthentication member.\n */\n ServiceToServiceClientCertificateAuthentication = 3,\n \n /**\n * The AdfsServiceToServiceClientCertificateAuthentication member.\n */\n AdfsServiceToServiceClientCertificateAuthentication = 4\n }\n \n /**\n * IncludePersonalDataInGuestOrderLookupPolicy enum type.\n */\n export enum IncludePersonalDataInGuestOrderLookupPolicy {\n \n /**\n * The Never member.\n */\n Never = 0,\n \n /**\n * The GuestOrdersOnly member.\n */\n GuestOrdersOnly = 1,\n \n /**\n * The AllOrders member.\n */\n AllOrders = 2\n }\n \n /**\n * RetailAddressBookType enum type.\n */\n export enum RetailAddressBookType {\n \n /**\n * The Customer member.\n */\n Customer = 0,\n \n /**\n * The Employee member.\n */\n Employee = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * InventAvailabilityCalculationMode enum type.\n */\n export enum InventAvailabilityCalculationMode {\n \n /**\n * The RealTimeService member.\n */\n RealTimeService = 0,\n \n /**\n * The Channel member.\n */\n Channel = 1\n }\n \n /**\n * InventoryAvailabilityClientDisplayMode enum type.\n */\n export enum InventoryAvailabilityClientDisplayMode {\n \n /**\n * The Raw member.\n */\n Raw = 0,\n \n /**\n * The Buffered member.\n */\n Buffered = 1,\n \n /**\n * The None member.\n */\n None = 2,\n \n /**\n * The Unknown member.\n */\n Unknown = -1\n }\n \n /**\n * EmployeeActivityType enum type.\n */\n export enum EmployeeActivityType {\n \n /**\n * The ClockIn member.\n */\n ClockIn = 0,\n \n /**\n * The JobStop member.\n */\n JobStop = 1,\n \n /**\n * The JobStart member.\n */\n JobStart = 2,\n \n /**\n * The TeamStop member.\n */\n TeamStop = 3,\n \n /**\n * The TeamStart member.\n */\n TeamStart = 4,\n \n /**\n * The BreakFlowStart member.\n */\n BreakFlowStart = 5,\n \n /**\n * The BreakCancelOne member.\n */\n BreakCancelOne = 6,\n \n /**\n * The BreakCancelAll member.\n */\n BreakCancelAll = 7,\n \n /**\n * The BreakFlowStop member.\n */\n BreakFlowStop = 8,\n \n /**\n * The FinishQuantity member.\n */\n FinishQuantity = 9,\n \n /**\n * The ClockOut member.\n */\n ClockOut = 10,\n \n /**\n * The EventCode member.\n */\n EventCode = 11,\n \n /**\n * The BreakFromWork member.\n */\n BreakFromWork = 12,\n \n /**\n * The BreakForLunch member.\n */\n BreakForLunch = 13,\n \n /**\n * The Logbook member.\n */\n Logbook = 14,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DeliveryPreferenceType enum type.\n */\n export enum DeliveryPreferenceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ShipToAddress member.\n */\n ShipToAddress = 1,\n \n /**\n * The PickupFromStore member.\n */\n PickupFromStore = 2,\n \n /**\n * The ElectronicDelivery member.\n */\n ElectronicDelivery = 3,\n \n /**\n * The DeliverItemsIndividually member.\n */\n DeliverItemsIndividually = 4\n }\n \n /**\n * LayoutType enum type.\n */\n export enum LayoutType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The ModernPosCompact member.\n */\n ModernPosCompact = 1,\n \n /**\n * The ModernPosFull member.\n */\n ModernPosFull = 2,\n \n /**\n * The Epos member.\n */\n Epos = 3\n }\n \n /**\n * SalesInvoiceType enum type.\n */\n export enum SalesInvoiceType {\n \n /**\n * The Journal member.\n */\n Journal = 0,\n \n /**\n * The DEL_Quotation member.\n */\n DEL_Quotation = 1,\n \n /**\n * The Subscription member.\n */\n Subscription = 2,\n \n /**\n * The Sales member.\n */\n Sales = 3,\n \n /**\n * The ReturnItem member.\n */\n ReturnItem = 4,\n \n /**\n * The DEL_Blanket member.\n */\n DEL_Blanket = 5,\n \n /**\n * The ItemReq member.\n */\n ItemReq = 6\n }\n \n /**\n * InvoiceType enum type.\n */\n export enum InvoiceType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SalesOrderInvoice member.\n */\n SalesOrderInvoice = 1,\n \n /**\n * The FreeTextInvoice member.\n */\n FreeTextInvoice = 2,\n \n /**\n * The ProjectInvoice member.\n */\n ProjectInvoice = 3,\n \n /**\n * The CreditNoteInvoice member.\n */\n CreditNoteInvoice = 4,\n \n /**\n * The FreeTextCreditNoteInvoice member.\n */\n FreeTextCreditNoteInvoice = 5,\n \n /**\n * The ProjectCreditNoteInvoice member.\n */\n ProjectCreditNoteInvoice = 6\n }\n \n /**\n * InvoicePaidStatus enum type.\n */\n export enum InvoicePaidStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Unpaid member.\n */\n Unpaid = 1,\n \n /**\n * The PartiallyPaid member.\n */\n PartiallyPaid = 2,\n \n /**\n * The Paid member.\n */\n Paid = 3\n }\n \n /**\n * TaxOverrideType enum type.\n */\n export enum TaxOverrideType {\n \n /**\n * The ItemSalesTaxGroup member.\n */\n ItemSalesTaxGroup = 0,\n \n /**\n * The SalesTaxGroup member.\n */\n SalesTaxGroup = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * TaxOverrideBy enum type.\n */\n export enum TaxOverrideBy {\n \n /**\n * The Line member.\n */\n Line = 0,\n \n /**\n * The Cart member.\n */\n Cart = 1,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * ReasonCodeInputRequiredType enum type.\n */\n export enum ReasonCodeInputRequiredType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Always member.\n */\n Always = 1,\n \n /**\n * The Positive member.\n */\n Positive = 2,\n \n /**\n * The Negative member.\n */\n Negative = 3\n }\n \n /**\n * RecordingValueType enum type.\n */\n export enum RecordingValueType {\n \n /**\n * The Preferred member.\n */\n Preferred = 0,\n \n /**\n * The Example member.\n */\n Example = 1\n }\n \n /**\n * UserActionType enum type.\n */\n export enum UserActionType {\n \n /**\n * The Input member.\n */\n Input = 1,\n \n /**\n * The Output member.\n */\n Output = 16,\n \n /**\n * The Validation member.\n */\n Validation = 256\n }\n \n /**\n * ArtifactType enum type.\n */\n export enum ArtifactType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Ax7Bpm member.\n */\n Ax7Bpm = 1,\n \n /**\n * The Visio member.\n */\n Visio = 2,\n \n /**\n * The TaskGuide member.\n */\n TaskGuide = 3,\n \n /**\n * The Ax6Bpm member.\n */\n Ax6Bpm = 4,\n \n /**\n * The TaskGuideResources member.\n */\n TaskGuideResources = 5,\n \n /**\n * The TaskXml member.\n */\n TaskXml = 6,\n \n /**\n * The VideoWma member.\n */\n VideoWma = 7,\n \n /**\n * The ProcessXml member.\n */\n ProcessXml = 8,\n \n /**\n * The Trace member.\n */\n Trace = 9,\n \n /**\n * The RapidStartXml member.\n */\n RapidStartXml = 10,\n \n /**\n * The UserDrawing member.\n */\n UserDrawing = 100\n }\n \n /**\n * FrameworkAccess enum type.\n */\n export enum FrameworkAccess {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Global member.\n */\n Global = 1,\n \n /**\n * The Corporate member.\n */\n Corporate = 2,\n \n /**\n * The Private member.\n */\n Private = 3,\n \n /**\n * The BoxPackage member.\n */\n BoxPackage = 4\n }\n \n /**\n * MetadataControl enum type.\n */\n export enum MetadataControl {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The SingleValue member.\n */\n SingleValue = 1,\n \n /**\n * The MultiValue member.\n */\n MultiValue = 2,\n \n /**\n * The Tags member.\n */\n Tags = 3,\n \n /**\n * The Links member.\n */\n Links = 4,\n \n /**\n * The ComboBox member.\n */\n ComboBox = 5,\n \n /**\n * The MultiSelect member.\n */\n MultiSelect = 6\n }\n \n /**\n * FiscalIntegrationRegistrationStatus enum type.\n */\n export enum FiscalIntegrationRegistrationStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Completed member.\n */\n Completed = 1,\n \n /**\n * The Skipped member.\n */\n Skipped = 2,\n \n /**\n * The MarkedAsRegistered member.\n */\n MarkedAsRegistered = 3,\n \n /**\n * The AutoSkipped member.\n */\n AutoSkipped = 4,\n \n /**\n * The Postponed member.\n */\n Postponed = 5\n }\n \n /**\n * CustomerOrderOperation enum type.\n */\n export enum CustomerOrderOperation {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Edit member.\n */\n Edit = 1,\n \n /**\n * The Cancel member.\n */\n Cancel = 2,\n \n /**\n * The PickUpFromStore member.\n */\n PickUpFromStore = 3,\n \n /**\n * The CreatePickingList member.\n */\n CreatePickingList = 4,\n \n /**\n * The CreatePackingSlip member.\n */\n CreatePackingSlip = 5,\n \n /**\n * The PrintPackingSlip member.\n */\n PrintPackingSlip = 6,\n \n /**\n * The Return member.\n */\n Return = 7,\n \n /**\n * The RejectFulfillmentLine member.\n */\n RejectFulfillmentLine = 8,\n \n /**\n * The AcceptFulfillmentLine member.\n */\n AcceptFulfillmentLine = 9,\n \n /**\n * The PackFulfillmentLine member.\n */\n PackFulfillmentLine = 10,\n \n /**\n * The ShipFulfillmentLine member.\n */\n ShipFulfillmentLine = 11,\n \n /**\n * The PickFulfillmentLine member.\n */\n PickFulfillmentLine = 12\n }\n \n /**\n * BusinessPartnerOperationType enum type.\n */\n export enum BusinessPartnerOperationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The CreateProspect member.\n */\n CreateProspect = 1,\n \n /**\n * The AddUser member.\n */\n AddUser = 2,\n \n /**\n * The DeleteUser member.\n */\n DeleteUser = 3,\n \n /**\n * The EditUser member.\n */\n EditUser = 4,\n \n /**\n * The AccountStatement member.\n */\n AccountStatement = 5,\n \n /**\n * The InvoiceRequest member.\n */\n InvoiceRequest = 6,\n \n /**\n * The PromoteBusinessPartner member.\n */\n PromoteBusinessPartner = 7\n }\n \n /**\n * BusinessPartnerOperationStatus enum type.\n */\n export enum BusinessPartnerOperationStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Processed member.\n */\n Processed = 1,\n \n /**\n * The Error member.\n */\n Error = 2\n }\n \n /**\n * NatureOfAssessee enum type.\n */\n export enum NatureOfAssessee {\n \n /**\n * The Company member.\n */\n Company = 0,\n \n /**\n * The Huf member.\n */\n Huf = 1,\n \n /**\n * The Firm member.\n */\n Firm = 2,\n \n /**\n * The Individual member.\n */\n Individual = 3,\n \n /**\n * The Aop member.\n */\n Aop = 4,\n \n /**\n * The Boi member.\n */\n Boi = 5,\n \n /**\n * The LocalAuthority member.\n */\n LocalAuthority = 6,\n \n /**\n * The Others member.\n */\n Others = 7\n }\n \n /**\n * CartType enum type.\n */\n export enum CartType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Shopping member.\n */\n Shopping = 1,\n \n /**\n * The Checkout member.\n */\n Checkout = 2,\n \n /**\n * The CustomerOrder member.\n */\n CustomerOrder = 3,\n \n /**\n * The IncomeExpense member.\n */\n IncomeExpense = 4,\n \n /**\n * The AccountDeposit member.\n */\n AccountDeposit = 5\n }\n \n /**\n * CartStatus enum type.\n */\n export enum CartStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Created member.\n */\n Created = 1,\n \n /**\n * The Suspended member.\n */\n Suspended = 2,\n \n /**\n * The Voided member.\n */\n Voided = 3\n }\n \n /**\n * PeriodicDiscountsCalculateScope enum type.\n */\n export enum PeriodicDiscountsCalculateScope {\n \n /**\n * The All member.\n */\n All = 0,\n \n /**\n * The None member.\n */\n None = 1,\n \n /**\n * The CouponDiscountsOnly member.\n */\n CouponDiscountsOnly = 2\n }\n \n /**\n * TaxCalculationType enum type.\n */\n export enum TaxCalculationType {\n \n /**\n * The Regular member.\n */\n Regular = 0,\n \n /**\n * The GTE member.\n */\n GTE = 1\n }\n \n /**\n * NoteRestriction enum type.\n */\n export enum NoteRestriction {\n \n /**\n * The Internal member.\n */\n Internal = 0,\n \n /**\n * The External member.\n */\n External = 1\n }\n \n /**\n * CustomerType enum type.\n */\n export enum CustomerType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Person member.\n */\n Person = 1,\n \n /**\n * The Organization member.\n */\n Organization = 2\n }\n \n /**\n * ContactInfoType enum type.\n */\n export enum ContactInfoType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Phone member.\n */\n Phone = 1,\n \n /**\n * The Email member.\n */\n Email = 2,\n \n /**\n * The Url member.\n */\n Url = 3,\n \n /**\n * The Telex member.\n */\n Telex = 4,\n \n /**\n * The Fax member.\n */\n Fax = 5\n }\n \n /**\n * ChecklistStatus enum type.\n */\n export enum ChecklistStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotStarted member.\n */\n NotStarted = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Completed member.\n */\n Completed = 3\n }\n \n /**\n * ChecklistTaskDeepLinkType enum type.\n */\n export enum ChecklistTaskDeepLinkType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Display member.\n */\n Display = 1,\n \n /**\n * The Output member.\n */\n Output = 2,\n \n /**\n * The Action member.\n */\n Action = 3,\n \n /**\n * The Url member.\n */\n Url = 4,\n \n /**\n * The PosOperation member.\n */\n PosOperation = 5,\n \n /**\n * The CustomerAccount member.\n */\n CustomerAccount = 6,\n \n /**\n * The PosOperationWithParameters member.\n */\n PosOperationWithParameters = 7\n }\n \n /**\n * ChecklistTaskStatus enum type.\n */\n export enum ChecklistTaskStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The NotStarted member.\n */\n NotStarted = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Completed member.\n */\n Completed = 3\n }\n \n /**\n * DocumentStatus enum type.\n */\n export enum DocumentStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Quotation member.\n */\n Quotation = 1,\n \n /**\n * The PurchaseOrder member.\n */\n PurchaseOrder = 2,\n \n /**\n * The Confirmation member.\n */\n Confirmation = 3,\n \n /**\n * The PickingList member.\n */\n PickingList = 4,\n \n /**\n * The PackingSlip member.\n */\n PackingSlip = 5,\n \n /**\n * The ReceiptsList member.\n */\n ReceiptsList = 6,\n \n /**\n * The Invoice member.\n */\n Invoice = 7,\n \n /**\n * The ApproveJournal member.\n */\n ApproveJournal = 8,\n \n /**\n * The ProjectInvoice member.\n */\n ProjectInvoice = 9,\n \n /**\n * The ProjectPackingSlip member.\n */\n ProjectPackingSlip = 10,\n \n /**\n * The CRMQuotation member.\n */\n CRMQuotation = 11,\n \n /**\n * The Lost member.\n */\n Lost = 12,\n \n /**\n * The Canceled member.\n */\n Canceled = 13,\n \n /**\n * The FreeTextInvoice member.\n */\n FreeTextInvoice = 14,\n \n /**\n * The RFQ member.\n */\n RFQ = 15,\n \n /**\n * The RFQAccept member.\n */\n RFQAccept = 16,\n \n /**\n * The RFQReject member.\n */\n RFQReject = 17,\n \n /**\n * The PurchaseRequest member.\n */\n PurchaseRequest = 18,\n \n /**\n * The RFQResend member.\n */\n RFQResend = 19\n }\n \n /**\n * CustomerOrderType enum type.\n */\n export enum CustomerOrderType {\n \n /**\n * The SalesOrder member.\n */\n SalesOrder = 0,\n \n /**\n * The Quote member.\n */\n Quote = 1\n }\n \n /**\n * LineDiscountCalculationType enum type.\n */\n export enum LineDiscountCalculationType {\n \n /**\n * The Line member.\n */\n Line = 0,\n \n /**\n * The Multiline member.\n */\n Multiline = 1,\n \n /**\n * The MaxLineMultiline member.\n */\n MaxLineMultiline = 2,\n \n /**\n * The MinLineMultiline member.\n */\n MinLineMultiline = 3,\n \n /**\n * The LinePlusMultiline member.\n */\n LinePlusMultiline = 4,\n \n /**\n * The LineMultiplyMultiline member.\n */\n LineMultiplyMultiline = 5\n }\n \n /**\n * ShiftStatus enum type.\n */\n export enum ShiftStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Open member.\n */\n Open = 1,\n \n /**\n * The Closed member.\n */\n Closed = 2,\n \n /**\n * The BlindClosed member.\n */\n BlindClosed = 3,\n \n /**\n * The Suspended member.\n */\n Suspended = 4,\n \n /**\n * The Invalid member.\n */\n Invalid = 5\n }\n \n /**\n * TaxRegistrationType enum type.\n */\n export enum TaxRegistrationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The INN member.\n */\n INN = 1,\n \n /**\n * The KPP member.\n */\n KPP = 2,\n \n /**\n * The OKPO member.\n */\n OKPO = 3,\n \n /**\n * The OKDP member.\n */\n OKDP = 4,\n \n /**\n * The OKATO member.\n */\n OKATO = 5,\n \n /**\n * The OGRN member.\n */\n OGRN = 6,\n \n /**\n * The SNILS member.\n */\n SNILS = 7,\n \n /**\n * The CIFTS member.\n */\n CIFTS = 8,\n \n /**\n * The UID member.\n */\n UID = 9,\n \n /**\n * The TaxId member.\n */\n TaxId = 10,\n \n /**\n * The BranchId member.\n */\n BranchId = 11,\n \n /**\n * The CommercialRegisterCZ member.\n */\n CommercialRegisterCZ = 12,\n \n /**\n * The CustomsCustomerId member.\n */\n CustomsCustomerId = 14,\n \n /**\n * The Passport member.\n */\n Passport = 15,\n \n /**\n * The OfficialIdDoc member.\n */\n OfficialIdDoc = 16,\n \n /**\n * The ResidenceCertificate member.\n */\n ResidenceCertificate = 17,\n \n /**\n * The OtherIdDoc member.\n */\n OtherIdDoc = 18,\n \n /**\n * The NotCensused member.\n */\n NotCensused = 19,\n \n /**\n * The BusinessPremiseId member.\n */\n BusinessPremiseId = 20,\n \n /**\n * The LotteryCode member.\n */\n LotteryCode = 21\n }\n \n /**\n * CommerceListType enum type.\n */\n export enum CommerceListType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The WishList member.\n */\n WishList = 1\n }\n \n /**\n * ProductListType enum type.\n */\n export enum ProductListType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The OrderTemplate member.\n */\n OrderTemplate = 1,\n \n /**\n * The QuickOrder member.\n */\n QuickOrder = 2,\n \n /**\n * The WishList member.\n */\n WishList = 3\n }\n \n /**\n * RecommendationType enum type.\n */\n export enum RecommendationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Editorial member.\n */\n Editorial = 1,\n \n /**\n * The New member.\n */\n New = 2,\n \n /**\n * The Trending member.\n */\n Trending = 3,\n \n /**\n * The Bestselling member.\n */\n Bestselling = 4,\n \n /**\n * The Cart member.\n */\n Cart = 5,\n \n /**\n * The PeopleAlsoBuy member.\n */\n PeopleAlsoBuy = 6,\n \n /**\n * The Picks member.\n */\n Picks = 7,\n \n /**\n * The ShopSimilarLooks member.\n */\n ShopSimilarLooks = 8,\n \n /**\n * The ShopSimilarDescriptions member.\n */\n ShopSimilarDescriptions = 9\n }\n \n /**\n * PurchaseTransferOrderType enum type.\n */\n export enum PurchaseTransferOrderType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The PurchaseOrder member.\n */\n PurchaseOrder = 1,\n \n /**\n * The TransferIn member.\n */\n TransferIn = 2,\n \n /**\n * The TransferOut member.\n */\n TransferOut = 3,\n \n /**\n * The TransferOrder member.\n */\n TransferOrder = 4,\n \n /**\n * The PickingList member.\n */\n PickingList = 5\n }\n \n /**\n * BusinessPartnerUserStatus enum type.\n */\n export enum BusinessPartnerUserStatus {\n \n /**\n * The Pending member.\n */\n Pending = 0,\n \n /**\n * The Active member.\n */\n Active = 1,\n \n /**\n * The Removed member.\n */\n Removed = 2\n }\n \n /**\n * InventoryAccuracy enum type.\n */\n export enum InventoryAccuracy {\n \n /**\n * The Default member.\n */\n Default = 0,\n \n /**\n * The Low member.\n */\n Low = 1,\n \n /**\n * The Realtime member.\n */\n Realtime = 2\n }\n \n /**\n * ElectronicAddressType enum type.\n */\n export enum ElectronicAddressType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Email member.\n */\n Email = 1\n }\n \n /**\n * MediaUsageType enum type.\n */\n export enum MediaUsageType {\n \n /**\n * The Primary member.\n */\n Primary = 0,\n \n /**\n * The Additional member.\n */\n Additional = 1,\n \n /**\n * The All member.\n */\n All = 2,\n \n /**\n * The None member.\n */\n None = -1\n }\n \n /**\n * DateValidationType enum type.\n */\n export enum DateValidationType {\n \n /**\n * The Advanced member.\n */\n Advanced = 0,\n \n /**\n * The Standard member.\n */\n Standard = 1\n }\n \n /**\n * AffiliationFilterType enum type.\n */\n export enum AffiliationFilterType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Hidden member.\n */\n Hidden = 1,\n \n /**\n * The NoneHidden member.\n */\n NoneHidden = 2,\n \n /**\n * The All member.\n */\n All = 3\n }\n \n /**\n * DownloadSessionStatus enum type.\n */\n export enum DownloadSessionStatus {\n \n /**\n * The Started member.\n */\n Started = 0,\n \n /**\n * The Available member.\n */\n Available = 1,\n \n /**\n * The Requested member.\n */\n Requested = 2,\n \n /**\n * The Downloaded member.\n */\n Downloaded = 3,\n \n /**\n * The Applied member.\n */\n Applied = 4,\n \n /**\n * The Canceled member.\n */\n Canceled = 5,\n \n /**\n * The CreateFailed member.\n */\n CreateFailed = 6,\n \n /**\n * The DownloadFailed member.\n */\n DownloadFailed = 7,\n \n /**\n * The ApplyFailed member.\n */\n ApplyFailed = 8\n }\n \n /**\n * HardwareStationType enum type.\n */\n export enum HardwareStationType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Shared member.\n */\n Shared = 1,\n \n /**\n * The Dedicated member.\n */\n Dedicated = 2\n }\n \n /**\n * AuditEventUploadType enum type.\n */\n export enum AuditEventUploadType {\n \n /**\n * The Async member.\n */\n Async = 0,\n \n /**\n * The RealTime member.\n */\n RealTime = 1\n }\n \n /**\n * AuditEventType enum type.\n */\n export enum AuditEventType {\n \n /**\n * The Unknown member.\n */\n Unknown = 0,\n \n /**\n * The UserLogOn member.\n */\n UserLogOn = 1,\n \n /**\n * The UserLogOff member.\n */\n UserLogOff = 2,\n \n /**\n * The ManagerOverride member.\n */\n ManagerOverride = 3,\n \n /**\n * The ItemVoid member.\n */\n ItemVoid = 4,\n \n /**\n * The TransactionVoid member.\n */\n TransactionVoid = 5,\n \n /**\n * The PrintReceiptCopy member.\n */\n PrintReceiptCopy = 6,\n \n /**\n * The PriceCheck member.\n */\n PriceCheck = 7,\n \n /**\n * The TaxOverride member.\n */\n TaxOverride = 8,\n \n /**\n * The QuantityCorrection member.\n */\n QuantityCorrection = 9,\n \n /**\n * The PurgeTransactionsData member.\n */\n PurgeTransactionsData = 10\n }\n \n /**\n * AuditLogTraceLevel enum type.\n */\n export enum AuditLogTraceLevel {\n \n /**\n * The Trace member.\n */\n Trace = 0,\n \n /**\n * The Debug member.\n */\n Debug = 1,\n \n /**\n * The Error member.\n */\n Error = 2\n }\n \n /**\n * FiscalIntegrationEventType enum type.\n */\n export enum FiscalIntegrationEventType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Sale member.\n */\n Sale = 1,\n \n /**\n * The PrintReceiptCopy member.\n */\n PrintReceiptCopy = 2,\n \n /**\n * The ZReport member.\n */\n ZReport = 3,\n \n /**\n * The XReport member.\n */\n XReport = 4,\n \n /**\n * The CloseShift member.\n */\n CloseShift = 5,\n \n /**\n * The BankDrop member.\n */\n BankDrop = 6,\n \n /**\n * The TenderDeclaration member.\n */\n TenderDeclaration = 7,\n \n /**\n * The RemoveTender member.\n */\n RemoveTender = 8,\n \n /**\n * The FloatEntry member.\n */\n FloatEntry = 9,\n \n /**\n * The SafeDrop member.\n */\n SafeDrop = 10,\n \n /**\n * The StartingAmount member.\n */\n StartingAmount = 11,\n \n /**\n * The PackingSlip member.\n */\n PackingSlip = 12,\n \n /**\n * The GiftReceipt member.\n */\n GiftReceipt = 13,\n \n /**\n * The CustomerAccountDeposit member.\n */\n CustomerAccountDeposit = 14,\n \n /**\n * The CreditMemo member.\n */\n CreditMemo = 15,\n \n /**\n * The EditCustomerOrder member.\n */\n EditCustomerOrder = 16,\n \n /**\n * The CreateCustomerOrder member.\n */\n CreateCustomerOrder = 17,\n \n /**\n * The DepositOverride member.\n */\n DepositOverride = 18,\n \n /**\n * The FiscalXReport member.\n */\n FiscalXReport = 19,\n \n /**\n * The FiscalZReport member.\n */\n FiscalZReport = 20,\n \n /**\n * The AuditEvent member.\n */\n AuditEvent = 21,\n \n /**\n * The OpenDrawer member.\n */\n OpenDrawer = 22,\n \n /**\n * The CancelCustomerOrder member.\n */\n CancelCustomerOrder = 23,\n \n /**\n * The BeginSale member.\n */\n BeginSale = 24,\n \n /**\n * The PreSale member.\n */\n PreSale = 25,\n \n /**\n * The IncomeAccounts member.\n */\n IncomeAccounts = 26,\n \n /**\n * The ExpenseAccounts member.\n */\n ExpenseAccounts = 27,\n \n /**\n * The VoidTransaction member.\n */\n VoidTransaction = 28,\n \n /**\n * The SuspendTransaction member.\n */\n SuspendTransaction = 29,\n \n /**\n * The RecallTransaction member.\n */\n RecallTransaction = 30\n }\n \n /**\n * FiscalIntegrationDocumentGenerationResultType enum type.\n */\n export enum FiscalIntegrationDocumentGenerationResultType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Succeeded member.\n */\n Succeeded = 1,\n \n /**\n * The NotSupported member.\n */\n NotSupported = 2,\n \n /**\n * The NotRequired member.\n */\n NotRequired = 3,\n \n /**\n * The Failed member.\n */\n Failed = 4\n }\n \n /**\n * FiscalIntegrationRegistrationProcessMode enum type.\n */\n export enum FiscalIntegrationRegistrationProcessMode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Disabled member.\n */\n Disabled = 1,\n \n /**\n * The Excepted member.\n */\n Excepted = 2,\n \n /**\n * The Full member.\n */\n Full = 3\n }\n \n /**\n * FiscalIntegrationServiceCommunicationResultType enum type.\n */\n export enum FiscalIntegrationServiceCommunicationResultType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Succeeded member.\n */\n Succeeded = 1,\n \n /**\n * The Failed member.\n */\n Failed = 2\n }\n \n /**\n * FiscalIntegrationServiceFailureType enum type.\n */\n export enum FiscalIntegrationServiceFailureType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Busy member.\n */\n Busy = 1,\n \n /**\n * The NotAvailable member.\n */\n NotAvailable = 2,\n \n /**\n * The SubmissionFailed member.\n */\n SubmissionFailed = 3,\n \n /**\n * The Other member.\n */\n Other = 4,\n \n /**\n * The BadResponse member.\n */\n BadResponse = 5,\n \n /**\n * The Timeout member.\n */\n Timeout = 6\n }\n \n /**\n * PickupTimeslotAvailabilitySearchOption enum type.\n */\n export enum PickupTimeslotAvailabilitySearchOption {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The DailyGroupingTimeslotOnly member.\n */\n DailyGroupingTimeslotOnly = 1,\n \n /**\n * The All member.\n */\n All = 2\n }\n \n /**\n * VendorValidationResultLevel enum type.\n */\n export enum VendorValidationResultLevel {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Approved member.\n */\n Approved = 1,\n \n /**\n * The ApprovedWithWarning member.\n */\n ApprovedWithWarning = 2,\n \n /**\n * The NotApproved member.\n */\n NotApproved = 3\n }\n \n /**\n * AttachedServiceStatus enum type.\n */\n export enum AttachedServiceStatus {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Disabled member.\n */\n Disabled = 1,\n \n /**\n * The InProgress member.\n */\n InProgress = 2,\n \n /**\n * The Enabled member.\n */\n Enabled = 3,\n \n /**\n * The Submitted member.\n */\n Submitted = 4\n }\n \n /**\n * ReceiptEmailBehavior enum type.\n */\n export enum ReceiptEmailBehavior {\n \n /**\n * The DoNotEmail member.\n */\n DoNotEmail = 0,\n \n /**\n * The PromptUser member.\n */\n PromptUser = 1,\n \n /**\n * The AlwaysEmail member.\n */\n AlwaysEmail = 2\n }\n \n /**\n * CartLineQuantityLimitsErrors enum type.\n */\n export enum CartLineQuantityLimitsErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AddingItem_ExceedsMaximumQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AddingItem_ExceedsMaximumQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_ExceedsMaximumQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_ExceedsMaximumQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximum member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximum,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimum member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimum,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityViolatesMultiplicityOfConfiguredNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimumAndViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityLessThanMinimumAndViolatesMultiplicityOfConfiguredNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AddingItem_QuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AddingItem_QuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_QuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdatingItem_QuantityExceedsMaximumAndViolatesMultiplicityOfConfiguredNumber\n }\n \n /**\n * CommunicationErrors enum type.\n */\n export enum CommunicationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterResponseParsingError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterResponseParsingError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExternalProviderError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExternalProviderError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceTimeOut member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceTimeOut,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceException member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceException,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceAuthenticationFailedFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceAuthenticationFailedFault,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceForbiddenFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceForbiddenFault,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceSenderFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceSenderFault,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SClientId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2SClientId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SSecret member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2SSecret,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2STenant member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2STenant,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidS2SApplicationName member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidS2SApplicationName,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionServiceLoyaltySenderFault member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionServiceLoyaltySenderFault\n }\n \n /**\n * ConfigurationErrors enum type.\n */\n export enum ConfigurationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationKeyFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationKeyFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ApplicationCompositionFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ApplicationCompositionFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidChannelConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidChannelConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPipelineConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPipelineConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidProviderConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidProviderConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryPreferences member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryPreferences,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindConfigForTenderType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindConfigForTenderType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConnectionIsNotOverridden member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConnectionIsNotOverridden,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConnectionStringNotProvided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConnectionStringNotProvided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceConfigurationNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceConfigurationNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HardwareProfileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HardwareProfileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LayoutNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LayoutNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_VersionedEdmResourceFileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_VersionedEdmResourceFileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RetailServerConfigurationNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RetailServerConfigurationNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RetailServerCertificateNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RetailServerCertificateNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceCertificateNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceCertificateNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceInvalidConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceInvalidConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ActivatedDeviceMissingTokenIssueDatetime member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ActivatedDeviceMissingTokenIssueDatetime,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LCSLibrariesNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LCSLibrariesNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnknownRequestResponsePair member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnknownRequestResponsePair,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductRecommendationsDisabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductRecommendationsDisabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveRecommendationServiceCredentials member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveRecommendationServiceCredentials,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CommerceIssuerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CommerceIssuerNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SecretProviderNotAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SecretProviderNotAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SecretNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SecretNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SecretProviderRetrievalFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SecretProviderRetrievalFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExtensionSettingsMustStartWithExtPrefix member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExtensionSettingsMustStartWithExtPrefix,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingValueIncorrectFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConfigurationSettingValueIncorrectFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestWasNotHandled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestWasNotHandled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationExtensionsSection member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidConfigurationExtensionsSection,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CompositionComponentExportingError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CompositionComponentExportingError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_VisualProfileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_VisualProfileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicatedExtensionConfigurationKey member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicatedExtensionConfigurationKey,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NextRequestHandlerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NextRequestHandlerNotFound\n }\n \n /**\n * DataValidationErrors enum type.\n */\n export enum DataValidationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The RegexAttribute_ValidationError member.\n */\n RegexAttribute_ValidationError,\n \n /**\n * The RequiredAttribute_ValidationError member.\n */\n RequiredAttribute_ValidationError,\n \n /**\n * The StringLengthAttribute_ValidationError member.\n */\n StringLengthAttribute_ValidationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationGrantTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthenticationGrantTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductMasterPageRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductMasterPageRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequiredValueNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequiredValueNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RemoteProductsNotSupportedWithCurrentTransactionType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RemoteProductsNotSupportedWithCurrentTransactionType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountIsBlocked member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountIsBlocked,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerInvoiceAccountIsBlocked member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerInvoiceAccountIsBlocked,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductIsNotActive member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductIsNotActive,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductIsBlocked member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductIsBlocked,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ValueOutOfRange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ValueOutOfRange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ObjectNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ObjectNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicateObject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicateObject,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingStockCountTransactions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingStockCountTransactions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingParameter member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingParameter,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidProductDimensionCombinations member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidProductDimensionCombinations,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeeDiscountExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeeDiscountExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeeDetailsNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeeDetailsNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BarcodeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BarcodeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExistingCustomerAlreadyMappedToExternalIdentity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExistingCustomerAlreadyMappedToExternalIdentity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnsupportedLanguage member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnsupportedLanguage,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnknownRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnknownRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnSupportedType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnSupportedType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IdMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IdMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeLineDiscountsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeLineDiscountsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeTotalDiscountsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleEmployeeTotalDiscountsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TotalDiscountsNotAllowedForMixSalesAndReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TotalDiscountsNotAllowedForMixSalesAndReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseAccountsInSameCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseAccountsInSameCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowDiscounts member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowDiscounts,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowSalesLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowSalesLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowCustomer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowCustomer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowGiftCardLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowGiftCardLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseLineDoesNotAllowSettingTransactionStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseLineDoesNotAllowSettingTransactionStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowAffiliation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncomeExpenseCartDoesNotAllowAffiliation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InsufficientQuantityAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InsufficientQuantityAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidUnitOfMeasure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidUnitOfMeasure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryMode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryMode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeliveryModeMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeliveryModeMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindDeliveryOptions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidEmailAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidEmailAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryPreferenceType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryPreferenceType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidShippingAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidShippingAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCountryRegion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCountryRegion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidStateProvince member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidStateProvince,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCounty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCounty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDistrict member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDistrict,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidZipPostalCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidZipPostalCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidShippingDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidShippingDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscountAmountInvalidated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscountAmountInvalidated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPriceEncountered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPriceEncountered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemDiscontinuedFromChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemDiscontinuedFromChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscontinuedProductsRemovedFromCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscontinuedProductsRemovedFromCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GrossWeightForItemNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GrossWeightForItemNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ListingIdNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ListingIdNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequiredReasonCodesMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequiredReasonCodesMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReasonCodeLinesReasonCodeIdDuplicated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReasonCodeLinesReasonCodeIdDuplicated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartNotActive member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartNotActive,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_VoidTransactionContainsTenderedLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_VoidTransactionContainsTenderedLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForVoidProducts member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForVoidProducts,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptTemplate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptTemplate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptItem member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidReceiptItem,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemIdBarcodeMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemIdBarcodeMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleItemsForItemId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleItemsForItemId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeChange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeChange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForReturnTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForReturnTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForAddCartLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCustomerOrderModeForAddCartLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotAddProductHavingRefundChargeAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotAddProductHavingRefundChargeAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotChangeCustomerIdWhenEditingCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotChangeCustomerIdWhenEditingCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveAnyPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveAnyPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustHaveValidQuotationExpiryDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_QuoteMustHaveValidQuotationExpiryDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveDepositOverride member.\n */\n Microsoft_Dynamics_Commerce_Runtime_QuoteMustNotHaveDepositOverride,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositMustBeGreaterThanZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositMustBeGreaterThanZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanTotalAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanTotalAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanMaximumOverrideAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMustNotBeGreaterThanMaximumOverrideAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPickupDepositOverrideAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPickupDepositOverrideAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OrderWasNotCreatedWithDepositOverride member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OrderWasNotCreatedWithDepositOverride,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeChanged member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeChanged,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeCleared member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DepositOverrideMayNotBeCleared,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AmountDueMustBePaidBeforeCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AmountDueMustBePaidBeforeCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscountMustBeCalculatedBeforeCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscountMustBeCalculatedBeforeCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TotalsMustBeCalculatedBeforeCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TotalsMustBeCalculatedBeforeCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncorrectPaymentAmountSign member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncorrectPaymentAmountSign,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMaximumAmountPerTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentExceedsMinimumAmountPerTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChangebackIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChangebackIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OvertenderAmountExceedsMaximumAllowedValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OvertenderAmountExceedsMaximumAllowedValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BalanceAmountExceedsMaximumAllowedValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BalanceAmountExceedsMaximumAllowedValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentMustBeUsedToFinalizeTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentMustBeUsedToFinalizeTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindListing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindListing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindEmployeeActivityBreakCategory member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindEmployeeActivityBreakCategory,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToFindVariant member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToFindVariant,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidStoreNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidStoreNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesLineMustHavePickupDeliveryMode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesLineMustHavePickupDeliveryMode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToPickupMoreThanQtyRemaining member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToPickupMoreThanQtyRemaining,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryCharge member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDeliveryCharge,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrencyConversionFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrencyConversionFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrencyChannelOrderMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrencyChannelOrderMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrencyNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrencyNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCancellationCharge member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCancellationCharge,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChargeNotConfiguredOnHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChargeNotConfiguredOnHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundCannotBePositive member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundCannotBePositive,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingChargeRefundIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesGroupItemGroupIntersectionInvalid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesGroupItemGroupIntersectionInvalid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotApplyHeaderChargesWhenShippingRefundAppliedOnCartLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotApplyHeaderChargesWhenShippingRefundAppliedOnCartLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotApplyRefundChargeOnProductForSale member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotApplyRefundChargeOnProductForSale,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PickupModeOfDeliveryNotConfiguredOnHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PickupModeOfDeliveryNotConfiguredOnHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberCannotBeChanged member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerialNumberCannotBeChanged,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissingInCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerialNumberMissingInCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SerializedQuantityGreaterThanOne member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SerializedQuantityGreaterThanOne,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleCreditCardPaymentNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleCreditCardPaymentNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCardExpirationDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCardExpirationDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotAllLinesSaved member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotAllLinesSaved,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PurchaseTransferOrderRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesMustHaveQuantityGreaterThanZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesMustHaveQuantityGreaterThanZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnsMustHaveQuantityLesserThanZero member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnsMustHaveQuantityLesserThanZero,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanPurchased member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanPurchased,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanInvoicedMinusReturned member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotReturnMoreThanInvoicedMinusReturned,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotReturnMultipleTransactions member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotReturnMultipleTransactions,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PropertyUpdateNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PropertyUpdateNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardDiscountNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardDiscountNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LoadingActiveCartFromAnotherTerminalNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LoadingActiveCartFromAnotherTerminalNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftAlreadyOpenOnDifferentTerminal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftAlreadyOpenOnDifferentTerminal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TerminalHasAnOpenShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TerminalHasAnOpenShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CashDrawerHasAnOpenShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CashDrawerHasAnOpenShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftStartingAmountNotEntered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftStartingAmountNotEntered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftTenderDeclarationAmountNotEntered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftTenderDeclarationAmountNotEntered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftHasUnreconciledLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftHasUnreconciledLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReconciliationLineStatusMustBePending member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReconciliationLineStatusMustBePending,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MoreThanOneTenderTypeForTenderTypeId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MoreThanOneTenderTypeForTenderTypeId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TimeClockNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TimeClockNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ViewTimeClockNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ViewTimeClockNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneOperationWithAGiftCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneOperationWithAGiftCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardUnlockFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardUnlockFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardLineVoidReversalNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardLineVoidReversalNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesInvoiceLineVoidReversalNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesInvoiceLineVoidReversalNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveTenderLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveTenderLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveGiftCardSalesLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotSuspendCartWithActiveGiftCardSalesLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotUpdateUnitOfMeasureOnPriceOverriddenLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotUpdateUnitOfMeasureOnPriceOverriddenLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SettleInvoiceFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SettleInvoiceFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TerminalNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TerminalNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemQuantityExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForReturns member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForReturns,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForGiftCards member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForGiftCards,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForInvoiceLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPriceOverrideForInvoiceLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotAddNonProductItemToCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotAddNonProductItemToCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShiftValidationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShiftValidationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CredentialIdentifierAlreadyInUse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CredentialIdentifierAlreadyInUse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreditVoucherNull member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreditVoucherNull,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositMultipleCartLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositMultipleCartLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountNumberIsNotSet member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountNumberIsNotSet,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotPayForCustomerAccountDepositWithCustomerAccountPaymentMethod member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotPayForCustomerAccountDepositWithCustomerAccountPaymentMethod,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeNegative member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeNegative,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositCannotBeVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OfflineDatabaseChunkFileNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OfflineDatabaseChunkFileNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChannelIsNotPublished member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChannelIsNotPublished,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidOperation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidOperation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MaxCountingDifferenceExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MaxCountingDifferenceExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeeNotAllowedManageSharedShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeeNotAllowedManageSharedShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidBagNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidBagNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoPrintersReturned member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoPrintersReturned,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EnteringPriceNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EnteringPriceNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualHigherPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualHigherPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInNewPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInNewPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConflictingClaimsPresentOnUserContext member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConflictingClaimsPresentOnUserContext,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineAdd member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineAdd,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineUpdate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartSalesLineUpdate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartState member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartState,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConflictingCartLineOperation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConflictingCartLineOperation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartInventoryLocationId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartInventoryLocationId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCartVersion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerOrDirectoryPartyNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerOrDirectoryPartyNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotUpdateCustomerAndLoyaltyCardAtTheSameTime member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotUpdateCustomerAndLoyaltyCardAtTheSameTime,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ConflictLoyaltyCardCustomerAndTransactionCustomer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ConflictLoyaltyCardCustomerAndTransactionCustomer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PreValidationForAsyncAddressFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PreValidationForAsyncAddressFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ZeroPriceIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ZeroPriceIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OperationNotAllowedOnLinkedProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OperationNotAllowedOnLinkedProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenTransactionAndDepositLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenTransactionAndDepositLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLineDoesNotAllowSettingTransactionStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLineDoesNotAllowSettingTransactionStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountDepositLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnLineNumberNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnLineNumberNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerNameExceedsMaximumLength member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerNameExceedsMaximumLength,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerPhoneNumberExceedsMaximumLength member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerPhoneNumberExceedsMaximumLength,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerEmailExceedsMaximumLength member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerEmailExceedsMaximumLength,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidShiftStatusChange member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidShiftStatusChange,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AmountExceedsMaximumAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AmountExceedsMaximumAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PrintXZReportNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PrintXZReportNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ColumnsNameBadFormat member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ColumnsNameBadFormat,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SelectedValuesDidNotMatchExactlyOneProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SelectedValuesDidNotMatchExactlyOneProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DiscountNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DiscountNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FailedToRecallTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FailedToRecallTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryAddresses member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryAddresses,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SortingColumnsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SortingColumnsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WorkerDoesNotHaveAllowSaleOutsideAssortmentPermission member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WorkerDoesNotHaveAllowSaleOutsideAssortmentPermission,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidOrderInvoiceData member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidOrderInvoiceData,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoSalesInvoiceReturned member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoSalesInvoiceReturned,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardLineNotAllowedWithInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardLineNotAllowedWithInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCustomerOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCustomerOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerOrderNotAllowedToContainInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerOrderNotAllowedToContainInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowedDuringInvoicePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesLineNotAllowedDuringInvoicePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedWithItemLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ItemLinesNotAllowedWithInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ItemLinesNotAllowedWithInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleInvoiceLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleInvoiceLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountRemovalNotAllowedForInvoiceSales member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountRemovalNotAllowedForInvoiceSales,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithoutCustomerAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithoutCustomerAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithDifferentCustomerAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithDifferentCustomerAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceDiscountNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceDiscountNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAttributeValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAttributeValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeValueOutOfBounds member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeValueOutOfBounds,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeValueCannotBeNull member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeValueCannotBeNull,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeTypeMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeTypeMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeDefinitionNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeDefinitionNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeValidationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeValidationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixingSalesAndReturnsProhibited member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixingSalesAndReturnsProhibited,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CouponRequiresCustomerOnCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CouponRequiresCustomerOnCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExclusiveCouponCannotBeAppliedWithOtherCoupons member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExclusiveCouponCannotBeAppliedWithOtherCoupons,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CouponExceedsDefinedUsageLimits member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CouponExceedsDefinedUsageLimits,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserCannotAcceptFulfillmentLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserCannotAcceptFulfillmentLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserCannotRejectFulfillmentLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserCannotRejectFulfillmentLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_AlreadyRegistered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_AlreadyRegistered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_HQisNotAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy_HQisNotAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RestrictPrintingReceiptCopy,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RemoveAddPaymentMethodConfigurationNotDefined member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RemoveAddPaymentMethodConfigurationNotDefined,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OverrideDepostAmountShouldBeLargerThanCarriedOutAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OverrideDepostAmountShouldBeLargerThanCarriedOutAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixingItemIdsAndProductIdsProhibited member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixingItemIdsAndProductIdsProhibited,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PackingLinesFromDifferentOrdersNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PackingLinesFromDifferentOrdersNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidFulfillmentLineKey member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidFulfillmentLineKey,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Missing_LocationId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Missing_LocationId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Missing_ShipDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Missing_ShipDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_Missing_ReceiveDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_Missing_ReceiveDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidOrderType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidOrderType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingSerializedProductsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingSerializedProductsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ShippingMultipleOrdersNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ShippingMultipleOrdersNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToOpenShift member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToOpenShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartAlreadyCheckedOut member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartAlreadyCheckedOut,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CashDrawerLimitExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CashDrawerLimitExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_InvalidShift member.\n */\n Microsoft_Dynamics_Commerce_InvalidShift,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SuspendedTransactionNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SuspendedTransactionNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturnOnly member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartContainsProductsForReturnOnly,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerBlockedForLoyaltyEnrollment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerBlockedForLoyaltyEnrollment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InactiveCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InactiveCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExpiredCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExpiredCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotStartedCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotStartedCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExceededUsageLimitCouponCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExceededUsageLimitCouponCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidResumeCartRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidResumeCartRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChargeCodeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChargeCodeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentException_ReturnWithoutReceiptPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentException_ReturnWithoutReceiptPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AddressLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AddressLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CountyLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CountyLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StreetLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StreetLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidLinkedPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidLinkedPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttributeMustBeUnique member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttributeMustBeUnique,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotesLengthExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotesLengthExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToLocateTenderTypeWithGivenId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToLocateTenderTypeWithGivenId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenderTypeDoesNotSupportGiftCardOperations member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenderTypeDoesNotSupportGiftCardOperations,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ExtensibleTransactionTypeNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ExtensibleTransactionTypeNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidLastModifiedDateTimeFromValue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidLastModifiedDateTimeFromValue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingRequiredCartTenderLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidRefinerRecordIdForCustomerSearchKeywordRefiner member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidRefinerRecordIdForCustomerSearchKeywordRefiner,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidCustomerOrderModeForCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidCustomerOrderModeForCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidCartTypeForCheckout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidCartTypeForCheckout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingSequentialSignature member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingSequentialSignature,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MissingRecordIdForStorePickUpAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MissingRecordIdForStorePickUpAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidChecklistTasksUpdateRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidChecklistTasksUpdateRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChecklistTasksCreateNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChecklistTasksCreateNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrderLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidTransferOrderLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DefaultLocationNotFoundForWarehouse member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DefaultLocationNotFoundForWarehouse,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ApplyMaxQuantitiesNotSupportedForOperationType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ApplyMaxQuantitiesNotSupportedForOperationType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransactionServiceDeserializationError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransactionServiceDeserializationError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidStatus member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidStatus,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentUpdateLinesCriteriaNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentUpdateLinesCriteriaNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentLineMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventorySourceDocumentLineMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateInventoryDocumentStatusUnsupportedTransition member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateInventoryDocumentStatusUnsupportedTransition,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AddingLinesToOrderIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AddingLinesToOrderIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingToTransferOrderIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingToTransferOrderIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverdeliveringToTransferOrderIsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverdeliveringToTransferOrderIsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverreceivingNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOvershippingNotEnabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOvershippingNotEnabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverReceivedExceedsThreshold member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverReceivedExceedsThreshold,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverShippedExceedsThreshold member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOverShippedExceedsThreshold,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOperationCommitFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentOperationCommitFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotSupportedForGivenDocumentType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentReceiptIdNotSupportedForGivenDocumentType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLockedByOtherTerminal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLockedByOtherTerminal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentVersionNull member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentVersionNull,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidVersion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotValidVersion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotEnoughApplicableLinesForUpdateLinesByProduct member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotEnoughApplicableLinesForUpdateLinesByProduct,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentExceedMaximumQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentExceedMaximumQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineProductIdMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineProductIdMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StoreOrgUnitNameMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StoreOrgUnitNameMissing,\n \n /**\n * The Microsoft_Dynamics_RetailServer_BadRequest member.\n */\n Microsoft_Dynamics_RetailServer_BadRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidItemTaxGroup member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidItemTaxGroup,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixingGiftCardsAndDepositLinesNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixingGiftCardsAndDepositLinesNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentRowVersionMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentRowVersionMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AssociatedWarrantableIsVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AssociatedWarrantableIsVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidWarrantyLineQuantity member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidWarrantyLineQuantity,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicatedWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicatedWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesOrderVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesOrderVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyAdded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyAdded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyBought member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyAlreadyBought,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyNotApplicableByPrice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyNotApplicableByPrice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyOperationalLineNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyOperationalLineNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyForReturnedItemNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyForReturnedItemNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IsNotWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IsNotWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotChangeWarrantableProductWhenItAssociatesWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotChangeWarrantableProductWhenItAssociatesWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyNotEmptyForReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyNotEmptyForReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotSpecifyBothWarrantableLineNumberAndWarrantiedId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotSpecifyBothWarrantableLineNumberAndWarrantiedId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotHaveMultipleWarrantablesOrWarrantiesWithSameWarrantiedId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotHaveMultipleWarrantablesOrWarrantiesWithSameWarrantiedId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OnlySerializedProductCanHaveWarranty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OnlySerializedProductCanHaveWarranty,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyReturnNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossCustomerWarrantyReturnNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyReturn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerChangeNotAllowedWithWarrantyReturn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CartTypeChangeNotAllowedWhenWarrantableInDifferentOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CartTypeChangeNotAllowedWhenWarrantableInDifferentOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyInconsistentCartType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyInconsistentCartType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyRelationCombiningCashAndCarryAndCustomerOrderNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyRelationCombiningCashAndCarryAndCustomerOrderNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentViolatesReturnPolicy member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentViolatesReturnPolicy,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CardTypeNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CardTypeNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationFormatNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationFormatNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationInvalidCategorySetup member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationInvalidCategorySetup,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationIsPrimaryAddressRestricted member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationIsPrimaryAddressRestricted,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationNumberMustBeUnique member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaxRegistrationNumberMustBeUnique,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ElectronicAddressTypeNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ElectronicAddressTypeNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RecipientAddressCountExceededMaximumAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RecipientAddressCountExceededMaximumAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsInMultipleWarehousesNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsInMultipleWarehousesNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsWithoutWarehouseNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchingWarehouseLocationsWithoutWarehouseNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryNoAvailableReceiveQtyTransferOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryNoAvailableReceiveQtyTransferOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberNotMatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberNotMatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLinesFulfilled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLinesFulfilled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberDuplicated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberDuplicated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotBlankSerialNumberRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotBlankSerialNumberRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLineNonIntegerQuantityEntered member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentSerialNumberLineNonIntegerQuantityEntered,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotAllowToUpdatePostedSerialNumbers member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotAllowToUpdatePostedSerialNumbers,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryCustomerContactsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultiplePrimaryCustomerContactsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotSupportedHeadquarterVersion member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentNotSupportedHeadquarterVersion,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderLineNotAllowToClose member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderLineNotAllowToClose,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryBelowTolerance member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentTransferOrderUnderDeliveryBelowTolerance,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryMustBeSpecified member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryMustBeSpecified,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryCanOnlyBeSpecifiedOnce member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentValidationResultCategoryCanOnlyBeSpecifiedOnce,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentDoesNotExist member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentDoesNotExist,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequirementUnknown member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentPurchaseOrderChangeRequestRequirementUnknown,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryDocumentLineMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventorySerialNumberNotAvailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventorySerialNumberNotAvailable,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidEntityProperty member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidEntityProperty\n }\n \n /**\n * InvoiceDataValidationErrors enum type.\n */\n export enum InvoiceDataValidationErrors {\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineAlreadyExistsInCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineAlreadyExistsInCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceNotExists member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceNotExists\n }\n \n /**\n * FeatureNotSupportedErrors enum type.\n */\n export enum FeatureNotSupportedErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestParametersNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestParametersNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestParameterValueNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestParameterValueNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChangeTenderTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChangeTenderTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DemoModeOperationNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DemoModeOperationNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RealtimeServiceNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReceiptTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OnlineChannelRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OnlineChannelRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CouponsNotSupportedOnSalesQuotations member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CouponsNotSupportedOnSalesQuotations,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FeatureNotSupportedInHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FeatureNotSupportedInHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdatingCouponsNotSupportedOnPickup member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdatingCouponsNotSupportedOnPickup,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateAsyncCustomerNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateAsyncCustomerNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardPaymentNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardPaymentNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardOperationNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardOperationNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CurrentVersionSupportsOnlyOneInvoicePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CurrentVersionSupportsOnlyOneInvoicePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleCategoryIdsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleCategoryIdsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossStoreProductSearchNotSupportedInOnlineChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossStoreProductSearchNotSupportedInOnlineChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateClientBookNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateClientBookNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemTypesNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RequestCustomerTimelineItemTypesNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreateCustomerTimelineItemNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreateCustomerTimelineItemNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateCustomerTimelineItemNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateCustomerTimelineItemNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SearchByIdsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SearchByIdsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DocumentOperationNotSupportedInHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DocumentOperationNotSupportedInHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaskManagementNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaskManagementNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsWithoutASourceDocumentNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsWithoutASourceDocumentNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_WarrantyForCustomerOrderNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_WarrantyForCustomerOrderNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OptimizedProductAvailabilityJobNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OptimizedProductAvailabilityJobNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsValidationNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryInboundOutboundDocumentsValidationNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InventoryAddingItemToPurchaseOrderNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InventoryAddingItemToPurchaseOrderNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DataSignatureRequestHandlerExecutionDeprecated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DataSignatureRequestHandlerExecutionDeprecated\n }\n \n /**\n * SecurityErrors enum type.\n */\n export enum SecurityErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthenticationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthorizationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthorizationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AuthenticationMethodDisabled member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AuthenticationMethodDisabled,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CommerceIdentityNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CommerceIdentityNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeePermissionContextNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeePermissionContextNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserNotActivated member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserNotActivated,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PrincipalMissing member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PrincipalMissing,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PasswordRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PasswordRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChangePasswordFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChangePasswordFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPassword member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPassword,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IdentityProviderNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IdentityProviderNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAuthenticationCredentials member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAuthenticationCredentials,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidExtendedAuthenticationCredentials member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidExtendedAuthenticationCredentials,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdatePasswordFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdatePasswordFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ResetPasswordFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ResetPasswordFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NonDrawerOperationsOnly member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NonDrawerOperationsOnly,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UseExistingShiftPermissionDenied member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UseExistingShiftPermissionDenied,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreateTransferOrderNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreateTransferOrderNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserCannotMassActivation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserCannotMassActivation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OpenMultipleShiftsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OpenMultipleShiftsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserSessionNotOpened member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserSessionNotOpened,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterTransactionServiceMethodCallFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HeadquarterCommunicationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenExpired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceTokenExpired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenNotPresent member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceTokenNotPresent,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ElevatedUserSameAsLoggedOnUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ElevatedUserSameAsLoggedOnUser,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GrantTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GrantTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceDeactivationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceDeactivationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_HardwareStationTokenCreationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_HardwareStationTokenCreationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidHardwareStationToken member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidHardwareStationToken,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserLogonAnotherTerminal member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserLogonAnotherTerminal,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnlockRegisterFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnlockRegisterFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChannelDatabaseConnectionFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChannelDatabaseConnectionFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidUserToken member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidUserToken,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountAuthorizationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountAuthorizationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LocalLogonFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LocalLogonFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LocalDeviceAuthenticationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LocalDeviceAuthenticationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceTokenValidationFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceTokenValidationFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoDeviceManagementPermission member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoDeviceManagementPermission,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IncorrectLogonTypeUserAccountOrPassword member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IncorrectLogonTypeUserAccountOrPassword,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAudience member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAudience,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidIssuer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidIssuer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenantIdNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenantIdNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AADTokenIssuedForDifferentEnvironment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AADTokenIssuedForDifferentEnvironment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAADTenantId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAADTenantId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_EmployeeIsConfiguredAsBlockLogin member.\n */\n Microsoft_Dynamics_Commerce_Runtime_EmployeeIsConfiguredAsBlockLogin,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserBlockedDueToTooManyFailedLogonAttempts member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserBlockedDueToTooManyFailedLogonAttempts,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UserPasswordExpired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UserPasswordExpired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CheckOutNotOverHTTPS member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CheckOutNotOverHTTPS,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AttemptToActivateFromDifferentPhysicalDevice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AttemptToActivateFromDifferentPhysicalDevice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InternalServerError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InternalServerError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeviceActivationNotAllowedWithUserTokenIssuer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeviceActivationNotAllowedWithUserTokenIssuer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PasswordComplexityRequirementsNotMet member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PasswordComplexityRequirementsNotMet,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PasswordHistoryRequirementsNotMet member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PasswordHistoryRequirementsNotMet,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnItemPriceExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnTransactionTotalExceeded,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CredentialsNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CredentialsNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PolicyBypassNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PolicyBypassNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OnBehalfOfNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OnBehalfOfNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_IdentityProviderTypeNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_IdentityProviderTypeNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChannelNotAccessibleInB2BOrganization member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChannelNotAccessibleInB2BOrganization,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_B2CCustomerAccessB2BChannelNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_B2CCustomerAccessB2BChannelNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CommerceCustomerIdentityNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CommerceCustomerIdentityNotFound\n }\n \n /**\n * StorageErrors enum type.\n */\n export enum StorageErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CriticalStorageError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CriticalStorageError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnexpectedNumberOfRowsError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnexpectedNumberOfRowsError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ObjectVersionMismatchError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ObjectVersionMismatchError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StorageRequestTimeout member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StorageRequestTimeout,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyRowError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateOfReadOnlyRowError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransientStorageError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransientStorageError,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ValueTooLong member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ValueTooLong\n }\n \n /**\n * VersionNotSupportedErrors enum type.\n */\n export enum VersionNotSupportedErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RetailServerApiVersionNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RetailServerApiVersionNotSupported\n }\n \n /**\n * PaymentErrors enum type.\n */\n export enum PaymentErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToCapturePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToCapturePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRefundPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRefundPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToCancelPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToGetCardPaymentAcceptPoint member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToGetCardPaymentAcceptPoint,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToRetrieveCardPaymentAcceptResult,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidCashBackAmount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ManualCardNumberNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ManualCardNumberNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenderLineCannotBeVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenderLineCannotBeVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentAlreadyVoided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidLoyaltyCardNumber,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardCurrencyMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GiftCardBalanceInquiryFailed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoResponseFromGatewayForGiftCardBalanceInquiry,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentAmountExceedsGiftBalance,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_BlockedLoyaltyCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoTenderLoyaltyCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotEnoughRewardPoints,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RefundAmountMoreThanAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NoMoreThanOneLoyaltyTender,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentUsingUnauthorizedAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentIsNotAllowedForCustomerOrderDepositAndCancellation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentIsNotAllowedForCustomerOrderDepositAndCancellation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentRequiresMerchantProperties,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutItems member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutItems,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsTotalAmountForCarryOutAndReturnItems,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromAmountDue,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromTotalCustomerAccountPayment member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountLimitSignDifferentFromTotalCustomerAccountPayment,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsCustomerAccountFloorLimit,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardTypeMissingOrNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FraudRisk member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FraudRisk,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TokenizedPaymentCardNotExpected member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TokenizedPaymentCardNotExpected,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleCustomerAccountPaymentsNotAllowed,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentForCustomerWithoutAllowOnAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentNotAllowedForOpenInvoices,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToAuthorizePaymentCardAdditionalContextRequired,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OrderManager_CreditMemo_MissingId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OrderManager_CreditMemo_MissingId,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableToReadCardTokenInfo,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TenderLineIsNotAvailableInSalesTransaction member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TenderLineIsNotAvailableInSalesTransaction,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsAvailableCreditLimit member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountPaymentExceedsAvailableCreditLimit\n }\n \n /**\n * FiscalIntegrationServiceErrors enum type.\n */\n export enum FiscalIntegrationServiceErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidProfilesConfiguration,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_FiscalService_NotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableResolveRegistrationProcess member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableResolveRegistrationProcess,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnableResolveTechnicalProfileForRegistrationProcessLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnableResolveTechnicalProfileForRegistrationProcessLine\n }\n \n /**\n * CommerceDataExchangeErrors enum type.\n */\n export enum CommerceDataExchangeErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CdxDataPackageApplicationFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CdxDataPackageApplicationFailure,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CdxSyncLibraryHealthCheckFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CdxSyncLibraryHealthCheckFailure\n }\n \n /**\n * TaskManagementErrorCode enum type.\n */\n export enum TaskManagementErrorCode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CreateTaskFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CreateTaskFailure = 1,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GetTaskFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GetTaskFailure = 2,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UpdateTaskFailure member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UpdateTaskFailure = 3,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphCallTimeOut member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphCallTimeOut = 4,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnauthorized member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnauthorized = 5,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotFound = 6,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceConflict member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceConflict = 7,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceVersionMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceVersionMismatch = 8,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceGeneralError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceGeneralError = 9,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumActiveTasksInProject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumActiveTasksInProject = 10,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumAssigneesInTasks member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumAssigneesInTasks = 11,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksAssignedToUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksAssignedToUser = 12,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksCreatedByUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksCreatedByUser = 13,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksInProject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumTasksInProject = 14,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumBucketsInProject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumBucketsInProject = 15,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumChecklistItemsOnTask member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumChecklistItemsOnTask = 16,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumPlannerPlans member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumPlannerPlans = 17,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsOwnedByUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsOwnedByUser = 18,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsSharedWithUser member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumProjectsSharedWithUser = 19,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumReferencesOnTask member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumReferencesOnTask = 20,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumUsersSharedWithProject member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_MaximumUsersSharedWithProject = 21,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_General member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphService_Forbidden_General = 22,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotValidData member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceNotValidData = 23,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceInternalServerError member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceInternalServerError = 24,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnavailable member.\n */\n Microsoft_Dynamics_Commerce_Runtime_GraphServiceUnavailable = 25,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToGetPlanId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToGetPlanId = 26,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToFindExternalSubId member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaskService_FailedToFindExternalSubId = 27,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TaskService_EmptyGraphToken member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TaskService_EmptyGraphToken = 28\n }\n \n /**\n * PricingDataValidationErrors enum type.\n */\n export enum PricingDataValidationErrors {\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithInvalidLineGroups member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithInvalidLineGroups,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithNoLineGroups member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MixAndMatchDiscountWithNoLineGroups,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StartDateTimeLaterThanEndDateTime member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StartDateTimeLaterThanEndDateTime,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PricingPropertyHandlerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PricingPropertyHandlerNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultiplePricingPropertyHandlerFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultiplePricingPropertyHandlerFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PriceTradeAgreementRequestPropertyValueCannotBeNull member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PriceTradeAgreementRequestPropertyValueCannotBeNull,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CrossStoreGetActivePriceNotSupportedInOnlineChannel,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AmbiguousParameters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AmbiguousParameters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PriceAttributeHandlerNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PriceAttributeHandlerNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultiplePriceAttributeHandlerFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultiplePriceAttributeHandlerFound\n }\n \n /**\n * ProductPricingConfigurationErrorCode enum type.\n */\n export enum ProductPricingConfigurationErrorCode {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The MissingItemId member.\n */\n MissingItemId = 1,\n \n /**\n * The MissingUnitOfMeasure member.\n */\n MissingUnitOfMeasure = 2,\n \n /**\n * The InvalidQuantity member.\n */\n InvalidQuantity = 4\n }\n \n /**\n * OrderDataValidationErrors enum type.\n */\n export enum OrderDataValidationErrors {\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidPickupTimeslot member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidPickupTimeslot,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidPickupTimeslotAvailabilitiesSearchOption member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidPickupTimeslotAvailabilitiesSearchOption,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NonInvoicelinesNotAllowedForSalesInvoice member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NonInvoicelinesNotAllowedForSalesInvoice,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidTaxOverrideCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidTaxOverrideCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OrderPickupForCheckInNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OrderPickupForCheckInNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_OrderPickupForCheckInNotValid member.\n */\n Microsoft_Dynamics_Commerce_Runtime_OrderPickupForCheckInNotValid,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotLoadTransactionFromHeadquarters member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotLoadTransactionFromHeadquarters,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnSerialNumberMismatch member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnSerialNumberMismatch,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MultipleQuickOrdersPerCustomer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MultipleQuickOrdersPerCustomer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPriceForInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInEqualLowerPriceForInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_MustKeyInGreatherThanZeroForInvoiceLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_MustKeyInGreatherThanZeroForInvoiceLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerInSuspendedCartNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerInSuspendedCartNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ReturnReasonCodeNotProvided member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ReturnReasonCodeNotProvided,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StoreIdDoesNotExist member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StoreIdDoesNotExist,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithNonAdminHavingInvoiceAccount member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvoiceLineNotAllowedInCartWithNonAdminHavingInvoiceAccount,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DeliveryAddressIsMissingCountryOrRegionCode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DeliveryAddressIsMissingCountryOrRegionCode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenCartAndTenderLine member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerAccountMismatchBetweenCartAndTenderLine,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ChargeDescriptionExceededMaximumLength member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ChargeDescriptionExceededMaximumLength,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnitOfMeasureConversionNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidSalesTransactionShippingAddress member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidSalesTransactionShippingAddress,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidSalesTransactionDeliveryDate member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidSalesTransactionDeliveryDate,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidSalesTransactionDeliveryMode member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidSalesTransactionDeliveryMode,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotOverrideDepositForB2bCustomer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotOverrideDepositForB2bCustomer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_StoreNumberMustBeProvidedWhenItemSetPicked member.\n */\n Microsoft_Dynamics_Commerce_Runtime_StoreNumberMustBeProvidedWhenItemSetPicked,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_ProductIsNotGiftCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_ProductIsNotGiftCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidTransactionTypeForRecalledOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidTransactionTypeForRecalledOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_DuplicatedCartLines member.\n */\n Microsoft_Dynamics_Commerce_Runtime_DuplicatedCartLines,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidForceCompleteTransactionUsage member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidForceCompleteTransactionUsage,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_TransactionAlreadyExistsDiffersByType member.\n */\n Microsoft_Dynamics_Commerce_Runtime_TransactionAlreadyExistsDiffersByType,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_AsynchronousOrderCancellationWorkflowAlreadyExists member.\n */\n Microsoft_Dynamics_Commerce_Runtime_AsynchronousOrderCancellationWorkflowAlreadyExists,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidAsynchronousCancellationTargetOrder member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidAsynchronousCancellationTargetOrder,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotCreateSynchronousCustomerOrderForAsyncCustomer member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotCreateSynchronousCustomerOrderForAsyncCustomer,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_UnsupportedOrderSearchSortColumn member.\n */\n Microsoft_Dynamics_Commerce_Runtime_UnsupportedOrderSearchSortColumn,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_RetailOperationForGettingTenderTypeIsNotSupported member.\n */\n Microsoft_Dynamics_Commerce_Runtime_RetailOperationForGettingTenderTypeIsNotSupported,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotValidForCancellationRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_SalesOrderNotValidForCancellationRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CannotCreateCart member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CannotCreateCart,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_CustomerOrderCannotIncludeCashAndCarryReturnsFlight member.\n */\n Microsoft_Dynamics_Commerce_Runtime_CustomerOrderCannotIncludeCashAndCarryReturnsFlight\n }\n \n /**\n * PaymentConfigurationErrors enum type.\n */\n export enum PaymentConfigurationErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorNotFound,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardPaymentNotConfigured member.\n */\n Microsoft_Dynamics_Commerce_Runtime_LoyaltyCardPaymentNotConfigured,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_NotValidCardTypeInformation member.\n */\n Microsoft_Dynamics_Commerce_Runtime_NotValidCardTypeInformation,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidPaymentRequest,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_InvalidDataInTokenizedCard member.\n */\n Microsoft_Dynamics_Commerce_Runtime_InvalidDataInTokenizedCard,\n \n /**\n * The Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorFilesNotFoundWhileLoadingAssemblies member.\n */\n Microsoft_Dynamics_Commerce_Runtime_PaymentConnectorFilesNotFoundWhileLoadingAssemblies\n }\n \n /**\n * TaxLimitBase enum type.\n */\n export enum TaxLimitBase {\n \n /**\n * The LineWithoutVat member.\n */\n LineWithoutVat = 0,\n \n /**\n * The UnitWithoutVat member.\n */\n UnitWithoutVat = 1,\n \n /**\n * The InvoiceWithoutVat member.\n */\n InvoiceWithoutVat = 2,\n \n /**\n * The LineWithVat member.\n */\n LineWithVat = 3,\n \n /**\n * The UnitWithVat member.\n */\n UnitWithVat = 4,\n \n /**\n * The InvoiceWithVat member.\n */\n InvoiceWithVat = 5\n }\n \n /**\n * OnlineStoreCustomerType enum type.\n */\n export enum OnlineStoreCustomerType {\n \n /**\n * The B2C member.\n */\n B2C = 0,\n \n /**\n * The B2B member.\n */\n B2B = 1\n }\n \n /**\n * BusinessPartnerOperationDeliveryType enum type.\n */\n export enum BusinessPartnerOperationDeliveryType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Email member.\n */\n Email = 1\n }\n \n /**\n * ProspectType enum type.\n */\n export enum ProspectType {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Buyer member.\n */\n Buyer = 1,\n \n /**\n * The BuyerSeller member.\n */\n BuyerSeller = 2\n }\n \n /**\n * WrongEndpointErrors enum type.\n */\n export enum WrongEndpointErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Commerce_WrongEndpoint member.\n */\n Microsoft_Dynamics_Commerce_WrongEndpoint\n }\n \n /**\n * RetailServerApiErrors enum type.\n */\n export enum RetailServerApiErrors {\n \n /**\n * The None member.\n */\n None,\n \n /**\n * The Microsoft_Dynamics_Internal_Server_Error member.\n */\n Microsoft_Dynamics_Internal_Server_Error,\n \n /**\n * The Microsoft_Dynamics_RetailServer_BadRequest member.\n */\n Microsoft_Dynamics_RetailServer_BadRequest,\n \n /**\n * The Microsoft_Dynamics_RetailServer_RequestTooLarge member.\n */\n Microsoft_Dynamics_RetailServer_RequestTooLarge,\n \n /**\n * The Microsoft_Dynamics_RetailServer_ODataModelError member.\n */\n Microsoft_Dynamics_RetailServer_ODataModelError,\n \n /**\n * The Microsoft_Dynamics_RetailServer_MissingRequiredArgument member.\n */\n Microsoft_Dynamics_RetailServer_MissingRequiredArgument,\n \n /**\n * The Microsoft_Dynamics_RetailServer_InvalidArgumentType member.\n */\n Microsoft_Dynamics_RetailServer_InvalidArgumentType,\n \n /**\n * The Microsoft_Dynamics_RetailServer_ParameterHasNullValue member.\n */\n Microsoft_Dynamics_RetailServer_ParameterHasNullValue,\n \n /**\n * The Microsoft_Dynamics_RetailServer_MultipleValuesOfSameArgument member.\n */\n Microsoft_Dynamics_RetailServer_MultipleValuesOfSameArgument,\n \n /**\n * The Microsoft_Dynamics_RetailServer_ODataControllerError member.\n */\n Microsoft_Dynamics_RetailServer_ODataControllerError\n }\n \n /**\n * ExceptionSeverity enum type.\n */\n export enum ExceptionSeverity {\n \n /**\n * The None member.\n */\n None = 0,\n \n /**\n * The Error member.\n */\n Error = 1,\n \n /**\n * The Warning member.\n */\n Warning = 2,\n \n /**\n * The Critical member.\n */\n Critical = 3,\n \n /**\n * The Informational member.\n */\n Informational = 4\n }\n \n /**\n * Category entity interface.\n */\n export interface Category {\n RecordId: number;\n OfflineImage?: string;\n Name?: string;\n ParentCategory?: number;\n DisplayOrder?: number;\n LocalizedDescription?: string;\n Images?: MediaLocation[];\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Cart entity interface.\n */\n export interface Cart {\n AffiliationLines?: AffiliationLoyaltyTier[];\n IsRequiredAmountPaid?: boolean;\n IsDiscountFullyCalculated?: boolean;\n IgnoreDiscountCalculation?: boolean;\n AmountDue?: number;\n AmountPaid?: number;\n AttributeValues?: AttributeValueBase[];\n IsTaxIncludedInPrice?: boolean;\n BeginDateTime?: Date;\n BusinessDate?: Date;\n CancellationChargeAmount?: number;\n EstimatedShippingAmount?: number;\n CartLines?: CartLine[];\n CartTypeValue?: number;\n ChannelId?: number;\n ChargeAmount?: number;\n CustomerOrderRemainingBalance?: number;\n ChargeLines?: ChargeLine[];\n TaxViewLines?: TaxViewLine[];\n Comment?: string;\n InvoiceComment?: string;\n Coupons?: Coupon[];\n CustomerId?: string;\n CustomerOrderModeValue?: number;\n DeliveryMode?: string;\n DeliveryModeChargeAmount?: number;\n DiscountAmount?: number;\n DiscountAmountWithoutTax?: number;\n DiscountCodes?: string[];\n Id: string;\n SuspendedCartId?: string;\n TransactionTypeValue?: number;\n CustomerAccountDepositLines?: CustomerAccountDepositLine[];\n IncomeExpenseLines?: IncomeExpenseLine[];\n IncomeExpenseTotalAmount?: number;\n IsReturnByReceipt?: boolean;\n ReturnTransactionHasLoyaltyPayment?: boolean;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsSuspended?: boolean;\n LoyaltyCardId?: string;\n ModifiedDateTime?: Date;\n Name?: string;\n OrderNumber?: string;\n AvailableDepositAmount?: number;\n OverriddenDepositAmount?: number;\n OverriddenDepositWithoutCarryoutAmount?: number;\n PrepaymentAmountPaid?: number;\n PrepaymentRoundingDifference?: number;\n PrepaymentAppliedOnPickup?: number;\n PrepaymentAmountInvoiced?: number;\n PromotionLines?: string[];\n QuotationExpiryDate?: Date;\n ReasonCodeLines?: ReasonCodeLine[];\n ReceiptEmail?: string;\n RequestedDeliveryDate?: Date;\n RequiredDepositAmount?: number;\n RequiredDepositWithoutCarryoutAmount?: number;\n SalesId?: string;\n ShippingAddress?: Address;\n StaffId?: string;\n SubtotalAmount?: number;\n SubtotalAmountWithoutTax?: number;\n NetPrice?: number;\n SubtotalSalesAmount?: number;\n TaxAmount?: number;\n TaxOnCancellationCharge?: number;\n TaxOnShippingCharge?: number;\n TaxOnNonShippingCharges?: number;\n TaxOverrideCode?: string;\n TenderLines?: TenderLine[];\n RefundableTenderLines?: TenderLine[];\n TerminalId?: string;\n TotalAmount?: number;\n TotalSalesAmount?: number;\n TotalReturnAmount?: number;\n TotalCarryoutSalesAmount?: number;\n TotalCustomerOrderSalesAmount?: number;\n TotalManualDiscountAmount?: number;\n TotalManualDiscountPercentage?: number;\n WarehouseId?: string;\n IsCreatedOffline?: boolean;\n CartStatusValue?: number;\n ReceiptTransactionTypeValue?: number;\n CommissionSalesGroup?: string;\n Version?: number;\n TotalItems?: number;\n HasTaxCalculationTriggered?: boolean;\n MerchantProperties?: PaymentMerchantInformation[];\n HasChargeCalculationTriggered?: boolean;\n FiscalTransactions?: FiscalTransaction[];\n ShippingChargeAmount?: number;\n OtherChargeAmount?: number;\n PeriodicDiscountsCalculateScopeValue?: number;\n TaxCalculationTypeValue?: number;\n Notes?: Note[];\n CustomerRequisition?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Customer entity interface.\n */\n export interface Customer {\n AccountNumber: string;\n RecordId?: number;\n CreatedDateTime?: Date;\n ChargeGroup?: string;\n PriceGroup?: string;\n IsCustomerTaxInclusive?: boolean;\n Phone?: string;\n PhoneRecordId?: number;\n PhoneExt?: string;\n Cellphone?: string;\n Email?: string;\n EmailRecordId?: number;\n Url?: string;\n UrlRecordId?: number;\n Name?: string;\n PersonNameId?: number;\n FirstName?: string;\n MiddleName?: string;\n LastName?: string;\n DirectoryPartyRecordId?: number;\n PartyNumber?: string;\n CustomerTypeValue?: number;\n Language?: string;\n CustomerGroup?: string;\n CurrencyCode?: string;\n CNPJCPFNumber?: string;\n IdentificationNumber?: string;\n InvoiceAccount?: string;\n MandatoryCreditLimit?: boolean;\n CreditRating?: string;\n CreditLimit?: number;\n Balance?: number;\n Blocked?: boolean;\n BlockedType?: number;\n UseOrderNumberReference?: boolean;\n OrganizationId?: string;\n UsePurchaseRequest?: boolean;\n MultilineDiscountGroup?: string;\n TotalDiscountGroup?: string;\n LineDiscountGroup?: string;\n TaxGroup?: string;\n SalesTaxGroup?: string;\n CommissionSalesGroupId?: string;\n TaxExemptNumber?: string;\n VatNumber?: string;\n TaxOffice?: string;\n NonChargeableAccount?: boolean;\n Tag?: string;\n ReceiptSettings?: number;\n ReceiptEmail?: string;\n OptOutPersonalization?: boolean;\n OptOutWebActivityTracking?: boolean;\n RetailCustomerTableRecordId?: number;\n OfflineImage?: string;\n IsAsyncCustomer?: boolean;\n NewCustomerPartyNumber?: string;\n CustomerAffiliations?: CustomerAffiliation[];\n Addresses?: Address[];\n Attributes?: CustomerAttribute[];\n Images?: MediaLocation[];\n TitleRecordId?: number;\n IsFloorLimitBlocked?: boolean;\n IsB2b?: boolean;\n IsB2bAdmin?: boolean;\n BusinessPartnerId?: string;\n Contacts?: ContactInfo[];\n AllowOnAccountPayment?: boolean;\n DefaultPaymentMethod?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Employee entity interface.\n */\n export interface Employee {\n StaffId: string;\n NameOnReceipt?: string;\n Name?: string;\n CultureName?: string;\n NumberOfDaysToPasswordExpiry?: number;\n Permissions?: EmployeePermissions;\n Images?: MediaLocation[];\n DefaultImage?: string;\n DefaultCommissionSalesGroup?: string;\n IdentifierTypeValue?: number;\n RecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Checklist entity interface.\n */\n export interface Checklist {\n RecordId: number;\n Tasks?: ChecklistTask[];\n Version?: string;\n ProcessId?: string;\n Name?: string;\n Description?: string;\n AssignedToChannelId?: number;\n AssignedToWorkerPersonnelNumber?: string;\n StatusValue?: number;\n StartDateTime?: Date;\n EndDateTime?: Date;\n TargetDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesOrder entity interface.\n */\n export interface SalesOrder {\n DocumentStatusValue?: number;\n RecordId?: number;\n StatusValue?: number;\n McrOrderStopped?: boolean;\n Shipments?: Shipment[];\n AggregateInventoryQuantities?: InventoryQuantities;\n UnifiedDeliveryInformation?: DeliveryInformation;\n PaymentStatusValue?: number;\n DetailedOrderStatusValue?: number;\n AffiliationLoyaltyTierLines?: SalesAffiliationLoyaltyTier[];\n IsRequiredAmountPaid?: boolean;\n IsDiscountFullyCalculated?: boolean;\n IgnoreDiscountCalculation?: boolean;\n AmountDue?: number;\n EstimatedShippingAmount?: number;\n AmountPaid?: number;\n CustomerOrderRemainingBalance?: number;\n AttributeValues?: AttributeValueBase[];\n AvailableDepositAmount?: number;\n BeginDateTime?: Date;\n CreatedDateTime?: Date;\n BusinessDate?: Date;\n CalculatedDepositAmount?: number;\n CancellationCharge?: number;\n ChannelId?: number;\n ChannelReferenceId?: string;\n ChargeAmount?: number;\n ChargeLines?: ChargeLine[];\n Comment?: string;\n Coupons?: Coupon[];\n InvoiceComment?: string;\n ContactInformationCollection?: ContactInformation[];\n CurrencyCode?: string;\n CustomerAccountDepositLines?: CustomerAccountDepositLine[];\n CustomerId?: string;\n CustomerOrderModeValue?: number;\n CustomerOrderTypeValue?: number;\n DeliveryMode?: string;\n DeliveryModeChargeAmount?: number;\n DiscountAmount?: number;\n DiscountAmountWithoutTax?: number;\n NetPrice?: number;\n DiscountCodes?: string[];\n EntryStatusValue?: number;\n GrossAmount?: number;\n HasLoyaltyPayment?: boolean;\n Id: string;\n InternalTransactionId?: string;\n SuspendedTransactionId?: string;\n IncomeExpenseLines?: IncomeExpenseLine[];\n IncomeExpenseTotalAmount?: number;\n InventoryLocationId?: string;\n IsCreatedOffline?: boolean;\n IsReturnByReceipt?: boolean;\n IsSuspended?: boolean;\n IsTaxIncludedInPrice?: boolean;\n IsTaxExemptedForPriceInclusive?: boolean;\n LineDiscount?: number;\n LineDiscountCalculationTypeValue?: number;\n LoyaltyCardId?: string;\n LoyaltyDiscountAmount?: number;\n LoyaltyManualDiscountAmount?: number;\n LoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n ModifiedDateTime?: Date;\n Name?: string;\n NetAmount?: number;\n NetAmountWithoutTax?: number;\n NetAmountWithNoTax?: number;\n NetAmountWithTax?: number;\n NumberOfItems?: number;\n OverriddenDepositAmount?: number;\n OverriddenDepositWithoutCarryoutAmount?: number;\n PeriodicDiscountAmount?: number;\n TenderDiscountAmount?: number;\n PrepaymentAmountAppliedOnPickup?: number;\n PrepaymentAmountInvoiced?: number;\n PrepaymentAmountPaid?: number;\n PrepaymentRoundingDifference?: number;\n QuotationExpiryDate?: Date;\n ReasonCodeLines?: ReasonCodeLine[];\n ReceiptEmail?: string;\n ReceiptId?: string;\n RequestedDeliveryDate?: Date;\n ConfirmedShipDate?: Date;\n RequiredDepositAmount?: number;\n RequiredDepositWithoutCarryoutAmount?: number;\n ReturnTransactionHasLoyaltyPayment?: boolean;\n SalesId?: string;\n SalesPaymentDifference?: number;\n SalesLines?: SalesLine[];\n ShiftId?: number;\n ShiftTerminalId?: string;\n ShippingAddress?: Address;\n StaffId?: string;\n StatementCode?: string;\n StoreId?: string;\n SubtotalAmount?: number;\n SubtotalAmountWithoutTax?: number;\n SubtotalSalesAmount?: number;\n TaxAmount?: number;\n TaxAmountExclusive?: number;\n TaxAmountInclusive?: number;\n TaxLines?: TaxLine[];\n TaxOnCancellationCharge?: number;\n TaxOnShippingCharge?: number;\n TaxOnNonShippingCharges?: number;\n TaxOverrideCode?: string;\n TenderLines?: TenderLine[];\n RefundableTenderLines?: TenderLine[];\n TerminalId?: string;\n TotalAmount?: number;\n TotalSalesAmount?: number;\n TotalReturnAmount?: number;\n TotalCarryoutSalesAmount?: number;\n TotalCustomerOrderSalesAmount?: number;\n TotalDiscount?: number;\n TotalManualDiscountAmount?: number;\n TotalManualDiscountPercentage?: number;\n TransactionTypeValue?: number;\n TaxCalculationTypeValue?: number;\n SalesInvoiceAmount?: number;\n GiftCardActiveFrom?: Date;\n GiftCardBalance?: number;\n GiftCardExpireDate?: Date;\n GiftCardHistoryDetails?: string;\n GiftCardIssueAmount?: number;\n GiftCardIdMasked?: string;\n CommissionSalesGroup?: string;\n IsCommissionSalesGroupOverriddenByCustomer?: boolean;\n CommissionSalesGroupSetByCashier?: string;\n HasTaxCalculationTriggered?: boolean;\n HasChargeCalculationTriggered?: boolean;\n ShippingChargeAmount?: number;\n OtherChargeAmount?: number;\n PeriodicDiscountsCalculateScopeValue?: number;\n CustomerName?: string;\n OriginalOrderTransactionId?: string;\n Notes?: Note[];\n CustomerRequisition?: string;\n FiscalTransactions?: FiscalTransaction[];\n LanguageId?: string;\n SalesAgreementRecordId?: number;\n TransactionDate?: Date;\n TransactionTime?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Shift entity interface.\n */\n export interface Shift {\n ShiftId: number;\n TerminalId: string;\n StartingAmountTotal: number;\n FloatingEntryAmountTotal: number;\n AddToTenderAmountTotal: number;\n SafeDropTotal: number;\n BankDropTotal: number;\n RemoveTenderAmountTotal: number;\n DeclareTenderAmountTotal: number;\n OverShortTotal: number;\n TenderedTotal: number;\n ChangeTotal: number;\n IncomeAccountTotal: number;\n ExpenseAccountTotal: number;\n CashDrawer?: string;\n StoreRecordId?: number;\n StoreId?: string;\n StaffId?: string;\n CurrentStaffId?: string;\n StatusValue?: number;\n StartDateTime?: Date;\n CloseDateTime?: Date;\n ClosedAtTerminalId?: string;\n ClosedAtShiftId?: number;\n CurrentTerminalId?: string;\n SalesTotal?: number;\n StatusDateTime?: Date;\n ReturnsTotal?: number;\n PaidToAccountTotal?: number;\n TaxTotal?: number;\n ChargeTotal?: number;\n DiscountTotal?: number;\n RoundedAmountTotal?: number;\n CustomerCount?: number;\n SaleTransactionCount?: number;\n NoSaleTransactionCount?: number;\n VoidTransactionCount?: number;\n LogOnTransactionCount?: number;\n SuspendedTransactionCount?: number;\n TransactionCount?: number;\n ReceiptsCount?: number;\n ReturnsCount?: number;\n GoodsSoldQty?: number;\n ServicesSoldQty?: number;\n ReceiptCopiesCount?: number;\n ReceiptCopiesTotal?: number;\n PriceOverrideTotal?: number;\n SuspendedTotal?: number;\n SalesTotalIncludingTax?: number;\n SalesTotalExcludingTax?: number;\n SalesGrandTotal?: number;\n ReturnsGrandTotal?: number;\n TaxLines?: ShiftTaxLine[];\n TenderLines?: ShiftTenderLine[];\n AccountLines?: ShiftAccountLine[];\n IsShared?: boolean;\n StartingAmountRunningTotal?: number;\n GiftCardsTotal?: number;\n GiftCardCashOutTotal?: number;\n VoidedSalesTotal?: number;\n ShiftSalesTotal?: number;\n ShiftReturnsTotal?: number;\n HasPendingOfflineTransactions?: number;\n NumberOfUnreconciledLines?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StockCountJournal entity interface.\n */\n export interface StockCountJournal {\n JournalId: string;\n RecordId?: string;\n Description?: string;\n InventLocationId?: string;\n DataAreaId?: string;\n StockCountTransactionLines?: StockCountJournalTransaction[];\n Worker?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnit entity interface.\n */\n export interface OrgUnit {\n OrgUnitNumber: string;\n RecordId: number;\n InventoryLocationId?: string;\n TaxGroup?: string;\n FunctionalityProfileId?: string;\n UseCustomerBasedTax?: boolean;\n UseCustomerBasedTaxExemption?: boolean;\n UseDestinationBasedTax?: boolean;\n Currency?: string;\n TimeZoneCode?: number;\n OrgUnitAddress?: Address;\n OrgUnitFullAddress?: string;\n OrgUnitName?: string;\n Latitude?: number;\n Longitude?: number;\n EmailReceiptProfileId?: string;\n ShippingWarehouseAddress?: Address;\n TaxRegistrations?: TaxRegistration[];\n EventNotificationProfileId?: string;\n OMOperatingUnitNumber?: string;\n Name?: string;\n DefaultCustomerAccount?: string;\n CategoryHierarchyId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Product entity interface.\n */\n export interface Product {\n RecordId: number;\n ProductName?: string;\n ProductNumber?: string;\n Description?: string;\n IsMasterProduct: boolean;\n IsKit: boolean;\n ItemId?: string;\n HasLinkedProducts: boolean;\n Rules: ProductRules;\n DefaultUnitOfMeasure?: string;\n Name?: string;\n Locale?: string;\n OfflineImage?: string;\n IsRemote?: boolean;\n ChangeTrackingInformation?: ProductChangeTrackingInformation;\n Image?: RichMediaLocations;\n UnitsOfMeasureSymbol?: string[];\n LinkedProducts?: LinkedProduct[];\n BasePrice?: number;\n Price?: number;\n AdjustedPrice?: number;\n RetailContext?: ProjectionDomain;\n PrimaryCategoryId?: number;\n CategoryIds?: number[];\n DisplayOrderInCategories?: DisplayOrderInCategory[];\n RelatedProducts?: RelatedProduct[];\n ProductsRelatedToThis?: RelatedProduct[];\n ProductSchema?: string[];\n ProductProperties?: ProductPropertyTranslation[];\n CompositionInformation?: ProductCompositionInformation;\n ParentKits?: KitComponent[];\n SearchName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductCatalog entity interface.\n */\n export interface ProductCatalog {\n RecordId: number;\n Name?: string;\n Description?: string;\n Language?: string;\n IsSnapshotEnabled: boolean;\n ValidFrom: Date;\n ValidTo: Date;\n CreatedOn: Date;\n ModifiedOn: Date;\n PublishedOn: Date;\n Images?: MediaLocation[];\n ChannelId?: number;\n DefaultImage?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceList entity interface.\n */\n export interface CommerceList {\n Id: number;\n Name?: string;\n CustomerId?: string;\n CustomerName?: string;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsPrivate?: boolean;\n IsCollaborative?: boolean;\n CreatedDateTime?: Date;\n DueDateTime?: Date;\n CommerceListTypeValue?: number;\n CommerceListLines?: CommerceListLine[];\n CommerceListContributors?: CommerceListContributor[];\n CommerceListInvitations?: CommerceListInvitation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductList entity interface.\n */\n export interface ProductList {\n Id: string;\n Name?: string;\n CustomerId?: string;\n CreatedDateTime?: Date;\n LastUpdated?: Date;\n DeletedDateTime?: Date;\n ProductListTypeValue?: number;\n DataAreaId?: string;\n ChannelId?: number;\n ProductListLines?: ProductListLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Recommendation entity interface.\n */\n export interface Recommendation {\n Id: string;\n RecommendationTypeValue?: number;\n Title?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrder entity interface.\n */\n export interface TransferOrder {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n InventLocationIdFrom?: string;\n InventLocationIdTo?: string;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityShipNow?: number;\n QuantityReceiveNow?: number;\n QuantityShipRemaining?: number;\n QuantityReceiveRemaining?: number;\n ShipDate?: Date;\n ReceiveDate?: Date;\n DeliveryModeId?: string;\n OrderLines?: TransferOrderLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PurchaseOrder entity interface.\n */\n export interface PurchaseOrder {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n TotalReceived?: number;\n OrderLines?: PurchaseOrderLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickingList entity interface.\n */\n export interface PickingList {\n OrderId: string;\n RecordId?: string;\n Status?: string;\n Lines?: number;\n TotalItems?: number;\n OrderTypeValue?: number;\n InventLocationId?: string;\n DeliveryDate?: Date;\n DeliveryMode?: string;\n TotalReceived?: number;\n OrderLines?: PickingListLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Warehouse entity interface.\n */\n export interface Warehouse {\n InventLocation: string;\n Name?: string;\n IsWMSEnabled: boolean;\n DefaultInventoryStatus?: string;\n DefaultReceiptLocation?: string;\n DefaultLocationId?: string;\n DefaultIssueLocation?: string;\n Address?: Address;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ScanResult entity interface.\n */\n export interface ScanResult {\n ScannedText: string;\n MaskTypeValue?: number;\n Barcode?: Barcode;\n Product?: SimpleProduct;\n LoyaltyCard?: LoyaltyCard;\n GiftCard?: GiftCard;\n ExtensionProperties?: CommerceProperty[];\n Customer?: Customer;\n }\n \n /**\n * SalesOrderContextualOperationsMap entity interface.\n */\n export interface SalesOrderContextualOperationsMap {\n Id: string;\n ApplicableOperationsValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n SalesOrder: SalesOrder;\n }\n \n /**\n * InventoryInboundOutboundDocument entity interface.\n */\n export interface InventoryInboundOutboundDocument {\n WorkDocumentId: string;\n TerminalId?: string;\n CommitRequestId?: string;\n ReceiveDate?: Date;\n ShipDate?: Date;\n Sender?: string;\n Receiver?: string;\n SenderDetails?: string;\n ReceiverDetails?: string;\n DeliveryMode?: string;\n OperationTypeValue?: number;\n StatusValue?: number;\n ReceiptId?: string;\n Note?: string;\n OperationResultMessage?: string;\n DocumentId?: string;\n LongVersion?: number;\n SourceDocument?: InventoryInboundOutboundSourceDocument;\n SourceDocumentTypeValue?: number;\n CreatedDateTime?: Date;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n DocumentTypeId?: string;\n Description?: string;\n StaffId?: string;\n TransactionDate?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartner entity interface.\n */\n export interface BusinessPartner {\n BusinessPartnerId: string;\n Name?: string;\n SellerChannelId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerUser entity interface.\n */\n export interface BusinessPartnerUser {\n B2BUserId: string;\n BusinessPartnerId?: string;\n FirstName?: string;\n LastName?: string;\n Email?: string;\n SpendingLimit?: number;\n LastOperationId?: string;\n StatusValue?: number;\n IsAdmin?: boolean;\n AccountNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SuspendedCart entity interface.\n */\n export interface SuspendedCart {\n Id: string;\n ReceiptId?: string;\n ShiftId?: number;\n ShiftTerminalId?: string;\n ExtensionProperties?: CommerceProperty[];\n Cart?: Cart;\n }\n \n /**\n * ExtensibleEnumeration entity interface.\n */\n export interface ExtensibleEnumeration {\n Name: string;\n Value: number;\n }\n \n /**\n * ExtensibleEnumeration_1OfT entity interface.\n */\n export interface ExtensibleEnumeration_1OfT extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleTransactionType entity interface.\n */\n export interface ExtensibleTransactionType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleSalesTransactionType entity interface.\n */\n export interface ExtensibleSalesTransactionType extends ExtensibleEnumeration {\n }\n \n /**\n * FulfillmentLineStatus entity interface.\n */\n export interface FulfillmentLineStatus extends ExtensibleEnumeration {\n }\n \n /**\n * FulfillmentLineDeliveryType entity interface.\n */\n export interface FulfillmentLineDeliveryType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleAddressType entity interface.\n */\n export interface ExtensibleAddressType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleLoyaltyRewardPointActivityEntryType entity interface.\n */\n export interface ExtensibleLoyaltyRewardPointActivityEntryType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleAttributeDataType entity interface.\n */\n export interface ExtensibleAttributeDataType extends ExtensibleEnumeration {\n }\n \n /**\n * ReleasedProductServiceType entity interface.\n */\n export interface ReleasedProductServiceType extends ExtensibleEnumeration {\n }\n \n /**\n * ExtensibleElectronicAddressType entity interface.\n */\n export interface ExtensibleElectronicAddressType extends ExtensibleEnumeration {\n }\n \n /**\n * ReceiptOutputFormatType entity interface.\n */\n export interface ReceiptOutputFormatType extends ExtensibleEnumeration {\n }\n \n /**\n * OrderLookupAdditionalCriteriaType entity interface.\n */\n export interface OrderLookupAdditionalCriteriaType extends ExtensibleEnumeration {\n }\n \n /**\n * Address entity interface.\n */\n export interface Address {\n Name?: string;\n Id?: string;\n FullAddress?: string;\n RecordId?: number;\n Street?: string;\n StreetNumber?: string;\n County?: string;\n CountyName?: string;\n City?: string;\n DistrictName?: string;\n State?: string;\n StateName?: string;\n ZipCode?: string;\n ThreeLetterISORegionName?: string;\n Phone?: string;\n PhoneRecordId?: number;\n PhoneExt?: string;\n Email?: string;\n EmailContent?: string;\n EmailRecordId?: number;\n Url?: string;\n UrlRecordId?: number;\n TwoLetterISORegionName?: string;\n Deactivate?: boolean;\n AttentionTo?: string;\n BuildingCompliment?: string;\n Postbox?: string;\n TaxGroup?: string;\n AddressTypeValue?: number;\n IsPrimary?: boolean;\n IsPrivate?: boolean;\n PartyNumber?: string;\n IsAsyncAddress?: boolean;\n DirectoryPartyTableRecordId?: number;\n DirectoryPartyLocationRecordId?: number;\n DirectoryPartyLocationRoleRecordId?: number;\n LogisticsLocationId?: string;\n LogisticsLocationRecordId?: number;\n LogisticsLocationExtRecordId?: number;\n LogisticsLocationRoleRecordId?: number;\n PhoneLogisticsLocationRecordId?: number;\n PhoneLogisticsLocationId?: string;\n EmailLogisticsLocationRecordId?: number;\n EmailLogisticsLocationId?: string;\n UrlLogisticsLocationRecordId?: number;\n UrlLogisticsLocationId?: string;\n ExpireRecordId?: number;\n SortOrder?: number;\n RoleCount?: number;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerAffiliation entity interface.\n */\n export interface CustomerAffiliation {\n RecordId?: number;\n RetailAffiliationId?: number;\n Name?: string;\n Description?: string;\n HideInChannels?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerBalances entity interface.\n */\n export interface CustomerBalances {\n Balance: number;\n PendingBalance: number;\n CreditLimit: number;\n InvoiceAccountBalance: number;\n InvoiceAccountPendingBalance: number;\n InvoiceAccountCreditLimit: number;\n OpenInvoiceBalance?: number;\n OpenInvoiceCount?: number;\n }\n \n /**\n * GlobalCustomer entity interface.\n */\n export interface GlobalCustomer {\n PartyNumber?: string;\n RecordId?: number;\n IsAsyncCustomer?: boolean;\n AccountNumber?: string;\n FullName?: string;\n FullAddress?: string;\n Phone?: string;\n Email?: string;\n CustomerTypeValue?: number;\n Images?: MediaLocation[];\n OfflineImage?: string;\n IsB2b?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeValue entity interface.\n */\n export interface AttributeValue {\n Name?: string;\n KeyName?: string;\n UnitOfMeasureSymbol?: string;\n DataTypeValue?: number;\n BooleanValue?: boolean;\n DateTimeOffsetValue?: Date;\n FloatValue?: number;\n IntegerValue?: number;\n TextValue?: string;\n CurrencyValue?: number;\n CurrencyCode?: string;\n AttributeValueId?: number;\n RecordId?: number;\n Swatches?: AttributeSwatch[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeValueBase entity interface.\n */\n export interface AttributeValueBase {\n Name?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Barcode entity interface.\n */\n export interface Barcode {\n BarcodeId?: string;\n BarcodePrice?: number;\n Quantity?: number;\n CustomerId?: string;\n EmployeeId?: string;\n SalespersonId?: string;\n EANLicenseId?: string;\n DataEntry?: string;\n DiscountCode?: string;\n GiftCardNumber?: string;\n LoyaltyCardNumber?: string;\n ItemBarcode?: ItemBarcode;\n EntryMethodTypeValue?: number;\n ItemType?: number;\n EnterDimensions?: boolean;\n ItemGroupId?: string;\n ItemDepartmentId?: string;\n ScaleItem?: boolean;\n ZeroPriceValid?: boolean;\n NegativeQuantity?: boolean;\n DiscountNotAllowed?: boolean;\n DateToBeBlocked?: Date;\n DateToBeActivated?: Date;\n CheckDigitValidated?: boolean;\n CouponId?: string;\n Message?: string;\n LineDiscountGroup?: string;\n MultilineDiscountGroup?: string;\n IncludedInTotalDiscount?: boolean;\n CostPrice?: number;\n BatchId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemBarcode entity interface.\n */\n export interface ItemBarcode {\n RecordId?: number;\n ItemId?: string;\n Description?: string;\n BarcodeSetupId?: string;\n ItemBarcodeValue?: string;\n InventoryDimensionId?: string;\n IsBlocked?: boolean;\n Display?: boolean;\n VariantId?: string;\n UnitId?: string;\n UseForInput?: boolean;\n UseForPrinting?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ButtonGrid entity interface.\n */\n export interface ButtonGrid {\n Id?: string;\n Name?: string;\n DefaultColor?: number;\n SpaceBetweenButtonsInPixels?: number;\n Buttons?: ButtonGridButton[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * GetButtonGridsByIdsCriteria entity interface.\n */\n export interface GetButtonGridsByIdsCriteria {\n ButtonGridIds?: string[];\n }\n \n /**\n * CartLine entity interface.\n */\n export interface CartLine {\n LineId?: string;\n TaxOverrideCode?: string;\n ItemId?: string;\n Barcode?: string;\n EntryMethodTypeValue?: number;\n Description?: string;\n InventoryDimensionId?: string;\n Comment?: string;\n ProductId?: number;\n WarehouseId?: string;\n Quantity?: number;\n Price?: number;\n ExtendedPrice?: number;\n TaxAmount?: number;\n SalesTaxGroupId?: string;\n ItemTaxGroupId?: string;\n TotalAmount?: number;\n NetAmountWithoutTax?: number;\n NetPrice?: number;\n DiscountAmountWithoutTax?: number;\n DiscountAmount?: number;\n LineDiscount?: number;\n LinePercentageDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n UnitOfMeasureSymbol?: string;\n ShippingAddress?: Address;\n DeliveryMode?: string;\n DeliveryModeChargeAmount?: number;\n RequestedDeliveryDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n IsWarrantyLine?: boolean;\n WarrantableTransactionId?: string;\n WarrantableSalesId?: string;\n WarrantableLineNumber?: number;\n WarrantableSerialNumber?: string;\n WarrantiedId?: string;\n ReturnTransactionId?: string;\n ReturnLineNumber?: number;\n ReturnInventTransId?: string;\n ReturnStore?: string;\n ReturnTerminalId?: string;\n IsVoided?: boolean;\n IsTaxOverideCodeTaxExempt?: boolean;\n IsGiftCardLine?: boolean;\n IsPriceKeyedIn?: boolean;\n GiftCardId?: string;\n GiftCardCurrencyCode?: string;\n GiftCardOperationValue?: number;\n GiftCardTypeValue?: number;\n SalesStatusValue?: number;\n QuantityOrdered?: number;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n QuantityInvoiced?: number;\n QuantityCanceled?: number;\n FulfillmentStoreId?: string;\n SerialNumber?: string;\n ElectronicDeliveryEmail?: string;\n ElectronicDeliveryEmailContent?: string;\n IsPriceOverridden?: boolean;\n OriginalPrice?: number;\n IsInvoiceLine?: boolean;\n InvoiceId?: string;\n InvoiceAmount?: number;\n GiftCardBalance?: number;\n LineVersion?: number;\n PromotionLines?: string[];\n PriceLines?: PriceLine[];\n DiscountLines?: DiscountLine[];\n RelatedDiscountedLineIds?: string[];\n ReasonCodeLines?: ReasonCodeLine[];\n ChargeLines?: ChargeLine[];\n TaxLines?: TaxLine[];\n ReturnTaxLines?: TaxLine[];\n TaxRatePercent?: number;\n IsCustomerAccountDeposit?: boolean;\n LinkedParentLineId?: string;\n QuantityReturnable?: number;\n ExtensionProperties?: CommerceProperty[];\n LineNumber?: number;\n CommissionSalesGroup?: string;\n TrackingId?: string;\n StaffId?: string;\n QuantityRemained?: number;\n QuantityShipped?: number;\n CatalogId?: number;\n AttributeValues?: AttributeValueBase[];\n ThirdPartyGiftCardInfo?: ThirdPartyGiftCardInfo;\n BarcodeEmbeddedPrice?: number;\n PriceInBarcode?: boolean;\n InvoiceTypeValue?: number;\n InvoicedSalesId?: string;\n WarehouseLocation?: string;\n DetailedLineStatusValue?: number;\n SalesAgreementLineRecordId?: number;\n }\n \n /**\n * ThirdPartyGiftCardInfo entity interface.\n */\n export interface ThirdPartyGiftCardInfo {\n Amount?: number;\n Authorization?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CardTypeInfo entity interface.\n */\n export interface CardTypeInfo {\n RecordId?: number;\n TypeId?: string;\n Name?: string;\n PaymentMethodId?: string;\n CardTypeValue?: number;\n Issuer?: string;\n NumberFrom?: string;\n NumberTo?: string;\n CashBackLimit?: number;\n AllowManualInput?: boolean;\n CheckModulus?: boolean;\n HasTenderDiscount?: boolean;\n IsPinRequired?: boolean;\n IsExpirationDateRequired?: boolean;\n ConnectorName?: string;\n PaymentProcessorMethod?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CashDeclaration entity interface.\n */\n export interface CashDeclaration {\n RecordId?: number;\n Currency?: string;\n Amount?: number;\n CashTypeValue?: number;\n IncludeInQuickPayShortcuts?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * IncomeExpenseAccount entity interface.\n */\n export interface IncomeExpenseAccount {\n Amount?: number;\n AccountNumber?: string;\n AccountName?: string;\n AccountNameAlias?: string;\n AccountTypeValue?: number;\n Quantity?: number;\n Message1Line?: string;\n Message2Line?: string;\n SlipText1Line?: string;\n SlipText2Line?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * IncomeExpenseLine entity interface.\n */\n export interface IncomeExpenseLine {\n Amount?: number;\n IncomeExpenseAccount?: string;\n StoreNumber?: string;\n AccountTypeValue?: number;\n Terminal?: string;\n Shift?: string;\n TransactionStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CartTenderLine entity interface.\n */\n export interface CartTenderLine {\n PaymentCard?: PaymentCard;\n TokenizedPaymentCard?: TokenizedPaymentCard;\n CardPaymentAcceptResult?: CardPaymentAcceptResult;\n IsLinkedRefund?: boolean;\n LinkedPaymentStore?: string;\n LinkedPaymentTerminalId?: string;\n LinkedPaymentTransactionId?: string;\n LinkedPaymentLineNumber?: number;\n LinkedPaymentCurrency?: string;\n TenderLineId?: string;\n Amount?: number;\n CashBackAmount?: number;\n AmountInTenderedCurrency?: number;\n AmountInCompanyCurrency?: number;\n Currency?: string;\n ExchangeRate?: number;\n CompanyCurrencyExchangeRate?: number;\n TenderTypeId?: string;\n SignatureData?: string;\n ReasonCodeLines?: ReasonCodeLine[];\n LineNumber?: number;\n GiftCardId?: string;\n GiftCardPin?: string;\n GiftCardExpirationYear?: number;\n GiftCardExpirationMonth?: number;\n CreditMemoId?: string;\n CustomerId?: string;\n LoyaltyCardId?: string;\n CardTypeId?: string;\n IsChangeLine?: boolean;\n IsHistorical?: boolean;\n IsVoidable?: boolean;\n StatusValue?: number;\n VoidStatusValue?: number;\n AuthorizedAmount?: number;\n PaymentRefRecId?: number;\n CardPaymentAccountId?: string;\n ProcessingTypeValue?: number;\n CardProcessorStatusValue?: number;\n LinkedPaymentRefRecId?: number;\n IsPolicyBypassed?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChargeLine entity interface.\n */\n export interface ChargeLine {\n ChargeLineId?: string;\n ChargeCode?: string;\n CurrencyCode?: string;\n ModuleTypeValue?: number;\n IsHeaderChargeProrated?: boolean;\n ChargeTypeValue?: number;\n ChargeMethodValue?: number;\n CalculatedAmount?: number;\n Value?: number;\n Description?: string;\n TransactionId?: string;\n MarkupAutoLineRecordId?: number;\n MarkupAutoTableRecId?: number;\n SaleLineNumber?: number;\n FromAmount?: number;\n ToAmount?: number;\n Keep?: number;\n AmountRefunded?: number;\n ChargeLineOverrides?: ChargeLineOverride[];\n ReasonCodeLines?: ReasonCodeLine[];\n IsRefundable?: boolean;\n IsShipping?: boolean;\n IsOverridden?: boolean;\n IsInvoiced?: boolean;\n CalculatedProratedAmount?: number;\n SpecificUnitSymbol?: string;\n ItemId?: string;\n Quantity?: number;\n Price?: number;\n ItemTaxGroupId?: string;\n SalesTaxGroupId?: string;\n OriginalSalesTaxGroupId?: string;\n OriginalItemTaxGroupId?: string;\n TaxAmount?: number;\n SalesOrderUnitOfMeasure?: string;\n NetAmount?: number;\n NetAmountPerUnit?: number;\n GrossAmount?: number;\n TaxLines?: TaxLine[];\n TaxMeasures?: TaxMeasure[];\n TaxAmountExemptInclusive?: number;\n TaxAmountInclusive?: number;\n TaxAmountExclusive?: number;\n NetAmountWithAllInclusiveTax?: number;\n BeginDateTime?: Date;\n EndDateTime?: Date;\n TaxRatePercent?: number;\n IsReturnByReceipt?: boolean;\n ReturnLineTaxAmount?: number;\n ReturnTaxLines?: TaxLine[];\n TaxExemptPriceInclusiveReductionAmount?: number;\n TaxExemptPriceInclusiveOriginalPrice?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CityInfo entity interface.\n */\n export interface CityInfo {\n Name?: string;\n Description?: string;\n CountryRegionId?: string;\n StateId?: string;\n CountyId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommissionSalesGroup entity interface.\n */\n export interface CommissionSalesGroup {\n GroupId?: string;\n Name?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ContactInformation entity interface.\n */\n export interface ContactInformation {\n Value?: string;\n ContactInformationTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeCategory entity interface.\n */\n export interface AttributeCategory {\n Value?: CommercePropertyValue;\n RecordId?: number;\n Name?: string;\n KeyName?: string;\n DataTypeValue?: number;\n Attribute?: number;\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeProduct entity interface.\n */\n export interface AttributeProduct {\n MetadataFlags?: ProductAttributeMetadataFlags;\n IsDimension?: boolean;\n RecordId?: number;\n Name?: string;\n KeyName?: string;\n DataTypeValue?: number;\n Attribute?: number;\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductComparisonEntry entity interface.\n */\n export interface ProductComparisonEntry {\n ProductId: number;\n AttributeValue?: AttributeValue;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductComparisonLine entity interface.\n */\n export interface ProductComparisonLine {\n AttributeRecordId: number;\n AttributeName?: string;\n ProductAttributeComparisonEntries?: ProductComparisonEntry[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerSearchField entity interface.\n */\n export interface CustomerSearchField {\n IsShortcut?: boolean;\n DisplayName?: string;\n CanBeRefined?: boolean;\n SearchField?: CustomerSearchFieldType;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerSearchByFieldCriteria entity interface.\n */\n export interface CustomerSearchByFieldCriteria {\n Criteria?: CustomerSearchByFieldCriterion[];\n DataLevelValue?: number;\n }\n \n /**\n * CustomerSearchByFieldCriterion entity interface.\n */\n export interface CustomerSearchByFieldCriterion {\n SearchTerm?: string;\n SearchField?: CustomerSearchFieldType;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerSearchFieldType entity interface.\n */\n export interface CustomerSearchFieldType extends ExtensibleEnumeration {\n }\n \n /**\n * OrderShipments entity interface.\n */\n export interface OrderShipments {\n SalesId?: string;\n ChannelId?: number;\n ChannelReferenceId?: string;\n TransactionId?: string;\n CreatedDateTime?: Date;\n StatusValue?: number;\n CurrencyCode?: string;\n CustomerId?: string;\n DeliveryMode?: string;\n GrossAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n InventoryLocationId?: string;\n ReceiptId?: string;\n RequestedDeliveryDate?: Date;\n TotalAmount?: number;\n TaxAmount?: number;\n SalesLines?: SalesLine[];\n Shipments?: Shipment[];\n }\n \n /**\n * Shipment entity interface.\n */\n export interface Shipment {\n SalesId?: string;\n ShipmentId?: string;\n DeliveryAddress?: Address;\n ShipDate?: Date;\n DeliveryMode?: string;\n TermsOfDelivery?: string;\n WeightUnit?: string;\n TrackingNumber?: string;\n TrackingUrl?: string;\n LatestCarrierTrackingInfo?: TrackingInfo;\n CarrierId?: string;\n CarrierName?: string;\n ShippingWeight?: number;\n ShipmentLines?: ShipmentLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShipmentLine entity interface.\n */\n export interface ShipmentLine {\n ShipmentLineId?: string;\n ItemId?: string;\n Description?: string;\n InventDimId?: string;\n OrderedQuantity?: number;\n DeliveredQuantity?: number;\n RemainingQuantity?: number;\n InventoryTransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Transaction entity interface.\n */\n export interface Transaction {\n Id?: string;\n StoreId?: string;\n TerminalId?: string;\n IsCreatedOffline?: boolean;\n StaffId?: string;\n LanguageId?: string;\n ShiftId?: string;\n ShiftTerminalId?: string;\n Description?: string;\n ReceiptId?: string;\n GrossAmount?: number;\n TotalAmount?: number;\n CreatedDateTime?: Date;\n TransactionTypeValue?: number;\n TransactionStatusValue?: number;\n BeginDateTime?: Date;\n GiftCardActiveFrom?: Date;\n GiftCardBalance?: number;\n GiftCardExpireDate?: Date;\n GiftCardHistoryDetails?: string;\n GiftCardIssueAmount?: number;\n GiftCardIdMasked?: string;\n FromSafe?: string;\n ToSafe?: string;\n FromShiftTerminalId?: string;\n ToShiftTerminalId?: string;\n FromShiftId?: string;\n TransactionSourceContextTypeValue?: number;\n TransactionDestinationContextTypeValue?: number;\n ToShiftId?: string;\n TransactionDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShiftReconciliationLine entity interface.\n */\n export interface ShiftReconciliationLine extends Transaction {\n GroupId?: number;\n GroupDescription?: string;\n ShiftGroupLinesCount?: number;\n ShiftGroupLinesClosedCount?: number;\n AmountInOriginalCurrency?: number;\n TransactionCurrencyCode?: string;\n TenderType?: string;\n }\n \n /**\n * ShiftReconciliationLineRetrievalCriteria entity interface.\n */\n export interface ShiftReconciliationLineRetrievalCriteria {\n TransactionTypeValues?: number[];\n ShiftReconciliationLineStatusValue?: number;\n Shifts?: ShiftKey[];\n DestinationShift?: ShiftKey;\n SourceShift?: ShiftKey;\n SourceSafe?: string;\n DestinationSafe?: string;\n TransactionSourceContextTypeValue?: number;\n TransactionDestinationContextTypeValue?: number;\n }\n \n /**\n * SearchConfiguration entity interface.\n */\n export interface SearchConfiguration {\n ProductSortColumns?: SortColumn[];\n ProductSearchServiceTypeValue?: number;\n ProductSortColumnsLabels?: LocalizedText[];\n }\n \n /**\n * CustomerTimelineItem entity interface.\n */\n export interface CustomerTimelineItem {\n CustomerId?: string;\n Description?: string;\n Id?: string;\n EntityType?: string;\n TypeId?: string;\n StaffId?: string;\n StartDateTime?: Date;\n Title?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeDefinition entity interface.\n */\n export interface AttributeDefinition {\n RecordId: number;\n Name?: string;\n AttributeTypeName?: string;\n ExtDataType?: ExtensibleAttributeDataType;\n DataTypeValue?: number;\n IsHidden?: boolean;\n IsMandatory?: boolean;\n IsMultiValue?: boolean;\n IsEnumeration?: boolean;\n TranslationDetails?: AttributeTranslationDetails[];\n EnumerationDetails?: AttributeEnumeration[];\n DefaultValue?: CommercePropertyValue;\n UpperBound?: CommercePropertyValue;\n LowerBound?: CommercePropertyValue;\n DisplayOrder?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeTranslationDetails entity interface.\n */\n export interface AttributeTranslationDetails {\n AttributeRecordId: number;\n LanguageId?: string;\n FriendlyName?: string;\n Description?: string;\n HelpText?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeEnumeration entity interface.\n */\n export interface AttributeEnumeration {\n OrdinalNumber?: number;\n EnumerationValue?: string;\n AttributeEnumerationTranslations?: AttributeEnumerationTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeEnumerationTranslation entity interface.\n */\n export interface AttributeEnumerationTranslation {\n LanguageId?: string;\n EnumerationTranslationValue?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeDefinitionCriteria entity interface.\n */\n export interface AttributeDefinitionCriteria {\n AttributeGroupIdentifier?: number;\n Languages?: string[];\n }\n \n /**\n * AttributeGroupDefinition entity interface.\n */\n export interface AttributeGroupDefinition {\n RecordId: number;\n Name?: string;\n TranslationDetails?: AttributeGroupTranslationDetails[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeGroupTranslationDetails entity interface.\n */\n export interface AttributeGroupTranslationDetails {\n AttributeGroupRecordId: number;\n LanguageId?: string;\n FriendlyName?: string;\n Description?: string;\n HelpText?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeGroupDefinitionCriteria entity interface.\n */\n export interface AttributeGroupDefinitionCriteria {\n AttributeGroupIdentifiers?: number[];\n Languages?: string[];\n }\n \n /**\n * CountyInfo entity interface.\n */\n export interface CountyInfo {\n Name?: string;\n CountyId?: string;\n CountryRegionId?: string;\n StateId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerGroup entity interface.\n */\n export interface CustomerGroup {\n CustomerGroupNumber?: string;\n CustomerGroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DiscountLine entity interface.\n */\n export interface DiscountLine {\n SaleLineNumber?: number;\n OfferId?: string;\n OfferName?: string;\n OfferDescription?: string;\n Amount?: number;\n DiscountCost?: number;\n EffectiveAmount?: number;\n EffectivePercentage?: number;\n LineNumber?: number;\n RecordId?: number;\n SavedEffectiveAmount?: number;\n Percentage?: number;\n DealPrice?: number;\n DiscountLineTypeValue?: number;\n ManualDiscountTypeValue?: number;\n CustomerDiscountTypeValue?: number;\n PeriodicDiscountTypeValue?: number;\n DiscountApplicationGroup?: string;\n ConcurrencyModeValue?: number;\n IsCompoundable?: boolean;\n DiscountCode?: string;\n PricingPriorityNumber?: number;\n PricingAttributeCombinationPriority?: number;\n IsDiscountCodeRequired?: boolean;\n ThresholdAmountRequired?: number;\n BundleId?: number;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * EmployeePermissions entity interface.\n */\n export interface EmployeePermissions {\n PriceOverrideRestrictionValue?: number;\n AllowPriceOverride?: number;\n MaximumDiscountPercentage?: number;\n MaximumLineDiscountAmount?: number;\n MaximumLineReturnAmount?: number;\n MaximumTotalDiscountAmount?: number;\n MaximumTotalDiscountPercentage?: number;\n MaxTotalReturnAmount?: number;\n StaffId?: string;\n Roles?: string[];\n AllowUseSharedShift?: boolean;\n AllowManageSharedShift?: boolean;\n AllowTaskGuides?: boolean;\n AllowSaleOutsideAssortment?: boolean;\n AllowPrintingReceiptCopy?: string;\n AllowSkipFiscalRegistration?: boolean;\n AllowSkipRegistrationOrMarkAsRegistered?: boolean;\n AllowPostponeRegistration?: boolean;\n AllowCreateTransferOrder?: boolean;\n AllowAcceptOrder?: boolean;\n AllowTaskManagement?: boolean;\n AllowRejectOrder?: boolean;\n AllowMassActivation?: boolean;\n AllowPostInventoryAdjustment?: boolean;\n AllowPostStockCounting?: boolean;\n AllowCreatePurchaseOrder?: boolean;\n AllowConfirmPurchaseOrder?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceProperty entity interface.\n */\n export interface CommerceProperty {\n Key?: string;\n Value?: CommercePropertyValue;\n }\n \n /**\n * CommercePropertyValue entity interface.\n */\n export interface CommercePropertyValue {\n BooleanValue?: boolean;\n ByteValue?: number;\n DateTimeOffsetValue?: Date;\n DecimalValue?: number;\n IntegerValue?: number;\n LongValue?: number;\n StringValue?: string;\n }\n \n /**\n * CountryRegionInfo entity interface.\n */\n export interface CountryRegionInfo {\n CountryRegionId?: string;\n ShortName?: string;\n LongName?: string;\n ISOCode?: string;\n TimeZone?: number;\n LanguageId?: string;\n AddressFormatLines?: AddressFormattingInfo[];\n AddressFormatId?: string;\n AddressFormatName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CreditMemo entity interface.\n */\n export interface CreditMemo {\n Id?: string;\n Balance?: number;\n CurrencyCode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Currency entity interface.\n */\n export interface Currency {\n CurrencyCode?: string;\n CurrencySymbol?: string;\n RoundOffPrice?: number;\n RoundOffSales?: number;\n RoundOffTypePrice?: number;\n RoundOffTypeSales?: number;\n NumberOfDecimals?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CurrencyAmount entity interface.\n */\n export interface CurrencyAmount {\n CurrencyCode?: string;\n CurrencySymbol?: string;\n ConvertedAmount?: number;\n RoundedConvertedAmount?: number;\n ExchangeRate?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ScaleUnitConfiguration entity interface.\n */\n export interface ScaleUnitConfiguration {\n Id?: string;\n Name?: string;\n Region?: string;\n }\n \n /**\n * EnvironmentConfiguration entity interface.\n */\n export interface EnvironmentConfiguration {\n EnvironmentId?: string;\n EnvironmentName?: string;\n TenantId?: string;\n ClientAppInsightsInstrumentationKey?: string;\n HardwareStationAppInsightsInstrumentationKey?: string;\n WindowsPhonePosAppInsightsInstrumentationKey?: string;\n BaseVersion?: string;\n ScaleUnit?: ScaleUnitConfiguration;\n AADAuthority?: string;\n FrameworkName?: string;\n }\n \n /**\n * OrderManagementConfiguration entity interface.\n */\n export interface OrderManagementConfiguration {\n EnableContactEditPromptForAsyncOrderCancellation?: boolean;\n SkipSalesInvoiceSelectionDuringReturn?: boolean;\n OrderAttributeForTIN?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DeviceConfiguration entity interface.\n */\n export interface DeviceConfiguration {\n UseInMemoryDeviceDataStorage?: boolean;\n AllowItemsAggregation?: boolean;\n AggregateItemsForPrinting?: boolean;\n AggregatePayments?: boolean;\n AlwaysExpandTransactionScreenLineDetails?: boolean;\n AuditEnabled?: boolean;\n DiscountAtTotal?: string;\n ProductDiscount?: string;\n ManuallyCalculateComplexDiscounts?: boolean;\n DisplaySecondaryTotalCurrency?: boolean;\n EndOfTransaction?: string;\n ItemNotOnFile?: string;\n LimitStaffListToStore?: boolean;\n LineItemTaxChange?: string;\n MarkUp?: string;\n MaximumPrice?: number;\n MaximumQuantity?: number;\n MinimumPasswordLength?: number;\n MustKeyInPriceIfZero?: boolean;\n NfcEContingencyModeEnabled?: string;\n NfcEVoided?: string;\n FunctionalityProfileDescription?: string;\n OverridePrice?: string;\n PrintVoidTransactionReceipts?: boolean;\n PrintReceiptsOnCardDecline?: boolean;\n PrintXZReportsOnTerminal?: boolean;\n PrintTenderDetailsOnXReport?: boolean;\n ProfileId?: string;\n RefundSale?: string;\n ReturnProduct?: string;\n SalesPerson?: string;\n SecondaryTotalCurrency?: string;\n SelectHardwareStationOnTendering?: boolean;\n SelectHardwareStationAtStartOfTransaction?: boolean;\n SerialNumber?: string;\n ShowStaffListAtLogOn?: boolean;\n StaffBarcodeLogOn?: boolean;\n StaffBarcodeLogOnRequiresPassword?: boolean;\n StaffCardLogOn?: boolean;\n StaffCardLogOnRequiresPassword?: boolean;\n StartOfTransaction?: string;\n EnableTimeRegistration?: boolean;\n TenderDeclaration?: string;\n TransactionTaxChange?: string;\n VoidItem?: string;\n VoidPayment?: string;\n SalesModeDefaultsAsCustomerOrder?: boolean;\n CreateOfflineCustomerOrders?: boolean;\n CreateAsyncCustomers?: boolean;\n EnableAxCustomerSearch?: boolean;\n VoidTransaction?: string;\n CultureName?: string;\n SystemLegalTermsUrl?: string;\n SystemPrivacyStatementUrl?: string;\n HideTrainingMode?: boolean;\n StorePhone?: string;\n StatementMethod?: string;\n StoreNumber?: string;\n ChannelId?: number;\n StoreTaxGroup?: string;\n TaxIdNumber?: string;\n TaxOverrideGroup?: number;\n TenderDeclarationCalculation?: number;\n UseCustomerBasedTax?: boolean;\n UseDestinationBasedTax?: boolean;\n AutoLogOffTimeoutInMinutes?: number;\n AutoExitMethodValue?: number;\n CustomerDisplayText1?: string;\n CustomerDisplayText2?: string;\n EFTStoreId?: number;\n EFTTerminalId?: string;\n ExitAfterEachTransaction?: boolean;\n HardwareProfile?: string;\n Placement?: string;\n TerminalDescription?: string;\n OpenDrawer?: string;\n OpenDrawerAtLogOnLogOff?: boolean;\n PrintTaxRefundChecks?: boolean;\n StandAlone?: boolean;\n TerminalId?: string;\n TerminalStatement?: boolean;\n VisualProfile?: string;\n Currency?: string;\n InventLocationId?: string;\n IncludeKitComponents?: boolean;\n AccentColor?: number;\n HeaderColor?: number;\n Theme?: string;\n FontScheme?: number;\n ShowAppBarLabel?: boolean;\n LogOnBackgroundPictureAsBase64?: string;\n LogOnBackgroundPicturePortraitAsBase64?: string;\n BackgroundPictureAsBase64?: string;\n LogonBackgroundPictureId?: number;\n LogonBackgroundPictureIdCompact?: number;\n LogonBackgroundPictureIdPortrait?: number;\n LogonBackgroundPictureIdCompactPortrait?: number;\n BackgroundPictureId?: number;\n RequireAmountDeclaration?: boolean;\n DecimalNotRequiredForMinorCurrencyUnit?: boolean;\n MaxTransactionSearchResults?: number;\n OfflineProfileId?: number;\n NewOfflineDatabaseCheckInterval?: number;\n OfflineTransactionUploadInterval?: number;\n ReconnectToOnlineInterval?: number;\n SwitchToOfflineTimeout?: number;\n OfflineSwitchApiPerformanceThresholdInSeconds?: number;\n ReconnectFromPerformanceInducedOfflineIntervalInSeconds?: number;\n RetentionDays?: number;\n HardwareConfigurations?: HardwareConfigurations;\n CreateRecording?: boolean;\n PlaybackRecording?: boolean;\n ShouldUseDefaultCommisionSalesGroup?: boolean;\n AskForSalesRepresentative?: number;\n IsSalesRepRequired?: boolean;\n ProhibitMixingSalesAndReturns?: boolean;\n ApplyDiscountsToPriceKeyedIn?: boolean;\n ApplyDiscountsToPriceOverrides?: boolean;\n IsProductSuggestionsEnabled?: boolean;\n ProductSearchType?: string;\n TerminalRecId?: number;\n DeviceRecId?: number;\n DenominationsToDisplayValue?: number;\n PromptOnSeamlessOffline?: boolean;\n RetryCountToOffline?: number;\n EnableAdvancedOfflineSwitching?: boolean;\n SystemHealthCheckInterval?: number;\n RejectOrderFulfillment?: string;\n ManuallyCalculateTaxes?: boolean;\n EmployeeLogonTypeValue?: number;\n StartAmountCalculation?: number;\n BankDropCalculation?: number;\n GenerateLoyaltyCardNumber?: boolean;\n FiscalRegistrationProcessId?: string;\n IncludeSalesOrderInvoices?: boolean;\n IncludeFreeTextInvoices?: boolean;\n IncludeProjectInvoices?: boolean;\n IncludeCreditNoteInvoices?: boolean;\n DisplayTaxExemptInLineDetails?: boolean;\n TaxExemptReceiptIndicator?: string;\n ManuallyCalculateCharges?: boolean;\n ChargeOverrideReasonCode?: string;\n ShiftReconcilation?: string;\n CustomerAccountFloorLimit?: number;\n VoidSuspendedTransactionsOnCloseShift?: boolean;\n ShowDateTime?: boolean;\n UseAdvancedCashManagement?: boolean;\n DefaultCustomerSearchModeValue?: number;\n AllowManualOfflineBeforeSignIn?: boolean;\n UseFinancialReconciliationInStore?: boolean;\n RequirePaymentForFulfillmentValue?: number;\n CardNotPresentProcessingConfigurationValue?: number;\n EnableQuickPayShortcuts?: boolean;\n ChangeDueBehaviorValue?: number;\n AutoSynchronizeDeviceNumberSequences?: boolean;\n SelfCheckout?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * VisualProfile entity interface.\n */\n export interface VisualProfile {\n ChannelId?: number;\n TerminalId?: string;\n AccentColor?: number;\n HeaderColor?: number;\n Theme?: string;\n FontSchemeTypeValue?: number;\n IsAppBarLabelVisible?: boolean;\n IsDateTimeVisible?: boolean;\n LogOnLayoutTypeValue?: number;\n LogOnKeyboardTypeValue?: number;\n LogonBackgroundPictureId?: number;\n CompactLogonBackgroundPictureId?: number;\n PortraitLogonBackgroundPictureId?: number;\n CompactPortraitLogonBackgroundPictureId?: number;\n BackgroundPictureId?: number;\n LogOnLogoPictureId?: number;\n IsProductIdVisibleOnCartLine?: boolean;\n DefaultSearchResultDisplayViewTypeValue?: number;\n BypassItemAddedDialog?: boolean;\n IsModernTransactionGridEnabled?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OperationalInsightsConfiguration entity interface.\n */\n export interface OperationalInsightsConfiguration {\n InstrumentationKey?: string;\n EnvironmentId?: string;\n IsEnabled?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PaymentConfiguration entity interface.\n */\n export interface PaymentConfiguration {\n AlwaysStoreCardTokenOnOrderBalanceAuthorization?: boolean;\n MinOrderProcessingDaysForStoringCardToken?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Device entity interface.\n */\n export interface Device {\n ChannelId: number;\n RecordId?: number;\n DeviceNumber?: string;\n DeviceId?: string;\n Description?: string;\n DeviceType?: number;\n TerminalRecordId?: number;\n TerminalId?: string;\n ChannelName?: string;\n UseInMemoryDeviceDataStorage?: boolean;\n AllowMassActivation?: boolean;\n TokenIssueTime?: Date;\n ActivationStatusValue?: number;\n Token?: string;\n CountryRegionIsoCode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DiscountCode entity interface.\n */\n export interface DiscountCode {\n RecordId: number;\n Barcode?: string;\n Code?: string;\n ConcurrencyMode?: number;\n Description?: string;\n Disclaimer?: string;\n IsDiscountCodeRequired?: boolean;\n Name?: string;\n OfferId?: string;\n IsEnabled?: boolean;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DistrictInfo entity interface.\n */\n export interface DistrictInfo {\n Name?: string;\n Description?: string;\n CountryRegionId?: string;\n StateId?: string;\n CountyId?: string;\n CityName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfile entity interface.\n */\n export interface HardwareProfile {\n RecordId?: number;\n LineDisplayDelayForLinkedItems?: number;\n LineDisplayBalanceText?: string;\n LineDisplayBinaryConversion?: boolean;\n LineDisplayCharacterSet?: number;\n LineDisplayClosedLine1?: string;\n LineDisplayClosedLine2?: string;\n LineDisplayDeviceDescription?: string;\n LineDisplayDeviceTypeValue?: number;\n LineDisplayDeviceName?: string;\n LineDisplayDisplayLinkedItem?: boolean;\n LineDisplayDisplayTerminalClosed?: boolean;\n LineDisplayTotalText?: string;\n LineDisplayKeepConnectionOpen?: boolean;\n DualDisplayActive?: boolean;\n DualDisplayWebBrowserUrl?: string;\n DualDisplayImageRotatorInterval?: number;\n DualDisplayImageRotatorPath?: string;\n DualDisplayReceiptWidthPercentage?: number;\n DualDisplayDisplayType?: string;\n EftTypeId?: number;\n EftCompanyId?: string;\n EftConfiguration?: number;\n EftPaymentConnectorName?: string;\n EftData?: string;\n EftDescription?: string;\n EftMerchantId?: string;\n EftPassword?: string;\n EftServerName?: string;\n EftServerPort?: string;\n EftUserId?: string;\n EftTestMode?: boolean;\n MsrEndTrack1?: string;\n MsrEndTrack2?: string;\n FiscalPrinterManagementReportPAFIdentification?: string;\n FiscalPrinterManagementReportConfigParameter?: string;\n FiscalPrinterManagementReportTenderType?: string;\n FiscalPrinterManagementReportGiftCard?: string;\n FiscalRegisterDeviceTypeValue?: number;\n FiscalRegisterConfiguration?: string;\n FiscalRegisterDeviceDescription?: string;\n FiscalRegisterDeviceName?: string;\n KeyboardMappingId?: string;\n KeyLockDeviceTypeValue?: number;\n KeyLockDeviceDescription?: string;\n KeyLockDeviceName?: string;\n MsrDeviceTypeValue?: number;\n MsrDeviceDescription?: string;\n MsrDeviceName?: string;\n MsrMake?: string;\n MsrModel?: string;\n MsrSeparator?: string;\n MsrStartTrack?: string;\n PinPadDeviceTypeValue?: number;\n PinPadDeviceName?: string;\n PinPadMake?: string;\n PinPadModel?: string;\n PinPadDeviceDescription?: string;\n ProfileDescription?: string;\n ProfileId?: string;\n RFIDDeviceTypeValue?: number;\n RFIDDeviceName?: string;\n RFIDDeviceDescription?: string;\n ScaleDeviceTypeValue?: number;\n ScaleDeviceName?: string;\n ScaleDeviceDescription?: string;\n ScaleManualInputAllowed?: boolean;\n ScaleTimeoutInSeconds?: number;\n SignatureCaptureDeviceTypeValue?: number;\n SignatureCaptureDeviceName?: string;\n SignatureCaptureMake?: string;\n SignatureCaptureModel?: string;\n SignatureCaptureDeviceDescription?: string;\n SignatureCaptureFormName?: string;\n PinPadAllowNfcPayment?: boolean;\n Printers?: HardwareProfilePrinter[];\n Scanners?: HardwareProfileScanner[];\n FiscalIntegrationTechnicalProfiles?: FiscalIntegrationTechnicalProfile[];\n CashDrawers?: HardwareProfileCashDrawer[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SupportedLanguage entity interface.\n */\n export interface SupportedLanguage {\n LanguageId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PaymentCard entity interface.\n */\n export interface PaymentCard {\n UseShippingAddress?: boolean;\n CardNumber?: string;\n CCID?: string;\n Track1?: string;\n Track2?: string;\n Track3?: string;\n VoiceAuthorizationCode?: string;\n EncryptedPin?: string;\n AdditionalSecurityData?: string;\n IsSwipe?: boolean;\n Phone?: string;\n Country?: string;\n House?: string;\n Address1?: string;\n Address2?: string;\n City?: string;\n State?: string;\n Zip?: string;\n NameOnCard?: string;\n CardTypeId?: string;\n ExpirationMonth?: number;\n ExpirationYear?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CardPaymentAcceptSettings entity interface.\n */\n export interface CardPaymentAcceptSettings {\n HostPageOrigin?: string;\n AdaptorPath?: string;\n CardTokenizationEnabled?: boolean;\n CardPaymentEnabled?: boolean;\n PaymentAmount?: number;\n HideBillingAddress?: boolean;\n TenderTypeId?: string;\n Locale?: string;\n RequireShippingAddress?: boolean;\n }\n \n /**\n * CardPaymentAcceptPoint entity interface.\n */\n export interface CardPaymentAcceptPoint {\n AcceptPageUrl?: string;\n AcceptPageSubmitUrl?: string;\n MessageOrigin?: string;\n AcceptPageContent?: string;\n PaymentConnectorId?: string;\n NotReloadAcceptPageContentWhenAmountChanged?: boolean;\n }\n \n /**\n * CardPaymentAcceptResult entity interface.\n */\n export interface CardPaymentAcceptResult {\n TenderLine?: TenderLine;\n TokenizedPaymentCard?: TokenizedPaymentCard;\n PaymentSdkErrors?: PaymentError[];\n AdditionalContext?: string;\n AccessCode?: string;\n Settings?: RetrievePaymentResultSettings;\n Email?: string;\n }\n \n /**\n * ReasonCodeLine entity interface.\n */\n export interface ReasonCodeLine {\n LineId?: string;\n Amount?: number;\n Information?: string;\n InformationAmount?: number;\n InputTypeValue?: number;\n ItemTender?: string;\n LineNumber?: number;\n LineTypeValue?: number;\n ParentLineId?: string;\n ReasonCodeId?: string;\n StatementCode?: string;\n SubReasonCodeId?: string;\n SourceCode?: string;\n SourceCode2?: string;\n SourceCode3?: string;\n TransactionId?: string;\n CreatedDateTime?: Date;\n FiscalTransactionParentGuid?: string;\n IsChanged?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReasonSubCode entity interface.\n */\n export interface ReasonSubCode {\n TriggerCode?: string;\n AmountPercent: number;\n ReasonCodeId?: string;\n SubCodeId?: string;\n Description?: string;\n DescriptionTranslation?: string;\n TriggerFunctionTypeValue?: number;\n ProductId?: number;\n PriceTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Receipt entity interface.\n */\n export interface Receipt {\n TransactionId?: string;\n Header?: string;\n Body?: string;\n Footer?: string;\n Width?: number;\n ReceiptId?: string;\n LayoutId?: string;\n ReceiptTitle?: string;\n ReceiptTypeValue?: number;\n ReceiptTypeStrValue?: string;\n Printers?: Printer[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptMask entity interface.\n */\n export interface ReceiptMask {\n FunctionalityProfileId?: string;\n IsIndependent: boolean;\n ReceiptTransactionTypeValue: number;\n RecordId: number;\n Mask?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesLine entity interface.\n */\n export interface SalesLine {\n StaffId?: string;\n LineId?: string;\n Description?: string;\n OriginLineId?: string;\n TaxOverrideCode?: string;\n IsPriceKeyedIn?: boolean;\n IsTaxOverideCodeTaxExempt?: boolean;\n ProductId?: number;\n Barcode?: string;\n BarcodeEmbeddedPrice?: number;\n PriceInBarcode?: boolean;\n EntryMethodTypeValue?: number;\n MasterProductId?: number;\n ListingId?: number;\n IsPriceOverridden?: boolean;\n OriginalPrice?: number;\n TotalAmount?: number;\n NetAmountWithoutTax?: number;\n DiscountAmount?: number;\n DiscountAmountWithoutTax?: number;\n NetPrice?: number;\n TotalDiscount?: number;\n TotalPercentageDiscount?: number;\n LineDiscount?: number;\n PeriodicDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n ShippingAddress?: Address;\n DeliveryMode?: string;\n Comment?: string;\n RequestedDeliveryDate?: Date;\n ConfirmedShipDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n InventoryLocationId?: string;\n InventorySiteId?: string;\n WarehouseLocation?: string;\n InventoryStatusId?: string;\n LicensePlate?: string;\n InventoryDimensionId?: string;\n InventoryTransactionId?: string;\n ItemType?: number;\n ReservationId?: string;\n LineNumber?: number;\n ReturnQuantity?: number;\n QuantityRemained?: number;\n QuantityShipped?: number;\n LineVersion?: number;\n StatusValue?: number;\n SalesStatusValue?: number;\n ProductSourceValue?: number;\n IsGiftCardLine?: boolean;\n GiftCardId?: string;\n GiftCardCurrencyCode?: string;\n GiftCardOperationValue?: number;\n GiftCardTypeValue?: number;\n IsInvoiceLine?: boolean;\n InvoiceId?: string;\n InvoiceAmount?: number;\n IsInvoiceSettled?: boolean;\n InvoiceTypeValue?: number;\n InvoicedSalesId?: string;\n IsVoided?: boolean;\n IsPriceLocked?: boolean;\n ChargeLines?: ChargeLine[];\n BasePrice?: number;\n AgreementPrice?: number;\n AdjustedPrice?: number;\n IsWarrantyLine?: boolean;\n WarrantableTransactionId?: string;\n WarrantableSalesId?: string;\n WarrantableLineNumber?: number;\n WarrantableSerialNumber?: string;\n ReturnTransactionId?: string;\n ReturnLineNumber?: number;\n ReturnInventTransId?: string;\n ReturnStore?: string;\n ReturnTerminalId?: string;\n ReturnChannelId?: number;\n FulfillmentStoreId?: string;\n SalesDate?: Date;\n QuantityInvoiced?: number;\n QuantityOrdered?: number;\n QuantityCanceled?: number;\n SavedQuantity?: number;\n IsSavedDiscount?: boolean;\n RecordId?: number;\n SerialNumber?: string;\n BatchId?: string;\n DeliveryModeChargeAmount?: number;\n UnitOfMeasureSymbol?: string;\n CatalogId?: number;\n ElectronicDeliveryEmailAddress?: string;\n ElectronicDeliveryEmailContent?: string;\n LoyaltyDiscountAmount?: number;\n LoyaltyPercentageDiscount?: number;\n TenderDiscountAmount?: number;\n TenderDiscountPercentage?: number;\n GiftCardBalance?: number;\n IsCustomerAccountDeposit?: boolean;\n Blocked?: boolean;\n Found?: boolean;\n DateToActivateItem?: Date;\n LinePercentageDiscount?: number;\n PeriodicPercentageDiscount?: number;\n QuantityDiscounted?: number;\n UnitQuantity?: number;\n UnitOfMeasureConversion?: UnitOfMeasureConversion;\n DiscountLines?: DiscountLine[];\n PriceLines?: PriceLine[];\n AttainablePriceLines?: PriceLine[];\n PeriodicDiscountPossibilities?: DiscountLine[];\n ReasonCodeLines?: ReasonCodeLine[];\n ReturnLabelProperties?: ReturnLabelContent;\n LineMultilineDiscOnItem?: string;\n RelatedDiscountedLineIds?: string[];\n LinkedParentLineId?: string;\n LineMultilineDiscOnItemValue?: number;\n WasChanged?: boolean;\n OriginalSalesOrderUnitOfMeasure?: string;\n InventOrderUnitOfMeasure?: string;\n TrackingId?: string;\n IsLoyaltyDiscountApplied?: boolean;\n CommissionSalesGroup?: string;\n IsCommissionSalesGroupOverriddenByCustomer?: boolean;\n CommissionSalesGroupSetByCashier?: string;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n AttributeValues?: AttributeValueBase[];\n ThirdPartyGiftCardInfo?: ThirdPartyGiftCardInfo;\n QuantityReturnable?: number;\n LoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n ReturnLoyaltyRewardPointLines?: LoyaltyRewardPointLine[];\n FulfillmentStatus?: FulfillmentLineStatus;\n FulfillmentStatusValue?: number;\n DetailedLineStatusValue?: number;\n DetailedLineStatus?: DetailedLineStatus;\n LastReturnProcessedTime?: Date;\n SalesAgreementPrice?: number;\n SalesAgreementLineRecordId?: number;\n IsSalesAgreementSkipped?: boolean;\n ItemId?: string;\n Quantity?: number;\n Price?: number;\n ItemTaxGroupId?: string;\n SalesTaxGroupId?: string;\n OriginalSalesTaxGroupId?: string;\n OriginalItemTaxGroupId?: string;\n TaxAmount?: number;\n SalesOrderUnitOfMeasure?: string;\n NetAmount?: number;\n NetAmountPerUnit?: number;\n GrossAmount?: number;\n TaxLines?: TaxLine[];\n TaxMeasures?: TaxMeasure[];\n TaxAmountExemptInclusive?: number;\n TaxAmountInclusive?: number;\n TaxAmountExclusive?: number;\n NetAmountWithAllInclusiveTax?: number;\n BeginDateTime?: Date;\n EndDateTime?: Date;\n TaxRatePercent?: number;\n IsReturnByReceipt?: boolean;\n ReturnLineTaxAmount?: number;\n ReturnTaxLines?: TaxLine[];\n TaxExemptPriceInclusiveReductionAmount?: number;\n TaxExemptPriceInclusiveOriginalPrice?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchArea entity interface.\n */\n export interface SearchArea {\n Longitude?: number;\n Latitude?: number;\n Radius?: number;\n DistanceUnitValue?: number;\n }\n \n /**\n * ShiftAccountLine entity interface.\n */\n export interface ShiftAccountLine {\n AccountTypeValue?: number;\n AccountNumber?: string;\n Amount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShiftTenderLine entity interface.\n */\n export interface ShiftTenderLine {\n TenderTypeId?: string;\n TenderTypeName?: string;\n CardTypeId?: string;\n TenderCurrency?: string;\n CountingRequired?: boolean;\n StartingAmountOfStoreCurrency?: number;\n StartingAmountOfTenderCurrency?: number;\n FloatingEntryAmountOfStoreCurrency?: number;\n FloatingEntryAmountOfTenderCurrency?: number;\n SafeDropAmountOfStoreCurrency?: number;\n SafeDropAmountOfTenderCurrency?: number;\n BankDropAmountOfStoreCurrency?: number;\n BankDropAmountOfTenderCurrency?: number;\n RemoveTenderAmountOfStoreCurrency?: number;\n RemoveTenderAmountOfTenderCurrency?: number;\n DeclareTenderAmountOfStoreCurrency?: number;\n DeclareTenderAmountOfTenderCurrency?: number;\n TenderedAmountOfStoreCurrency?: number;\n TenderedAmountOfTenderCurrency?: number;\n ChangeAmountOfStoreCurrency?: number;\n ChangeAmountOfTenderCurrency?: number;\n Count?: number;\n Notes?: string;\n Overridden?: boolean;\n OverriddenFloatEntryAmountInStoreCurrency?: number;\n OverriddenFloatEntryAmountInTenderedCurrency?: number;\n OverriddenBankDropAmountInStoreCurrency?: number;\n OverriddenBankDropAmountInTenderedCurrency?: number;\n OverriddenChangeAmountInStoreCurrency?: number;\n OverriddenChangeAmountInTenderedCurrency?: number;\n OverriddenDeclaredTenderAmountInStoreCurrency?: number;\n OverriddenDeclaredTenderAmountInTenderedCurrency?: number;\n OverriddenRemovedTenderAmountInStoreCurrency?: number;\n OverriddenRemovedTenderAmountInTenderedCurrency?: number;\n OverriddenSafeDropAmountInStoreCurrency?: number;\n OverriddenSafeDropAmountInTenderedCurrency?: number;\n OverriddenStartingAmountInStoreCurrency?: number;\n OverriddenStartingAmountInTenderedCurrency?: number;\n OverriddenTenderedAmountInStoreCurrency?: number;\n OverriddenTenderedAmountInTenderedCurrency?: number;\n OverShortAmountOfTenderCurrency?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StockCountJournalTransaction entity interface.\n */\n export interface StockCountJournalTransaction {\n JournalId?: string;\n RecordId?: number;\n OperationType?: number;\n ItemId?: string;\n DataAreaId?: string;\n ProductRecordId?: number;\n ItemName?: string;\n InventDimId?: string;\n Counted?: number;\n Quantity?: number;\n EstimatedOnHandQuantity?: number;\n OnHandCalculationDateTime?: Date;\n Unit?: string;\n UserId?: string;\n TerminalId?: string;\n CountedDate?: Date;\n Status?: number;\n InventBatchId?: string;\n WarehouseLocationId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n WarehousePalletId?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n InventSerialId?: string;\n TrackingGuid?: string;\n UpdatedInAx?: boolean;\n Message?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaxLine entity interface.\n */\n export interface TaxLine {\n TaxGroup?: string;\n Percentage?: number;\n IsExempt?: boolean;\n TaxBasis?: number;\n IsIncludedInPrice?: boolean;\n SaleLineNumber?: number;\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n TaxCode?: string;\n Amount?: number;\n AmountRefunded?: number;\n IsTaxGroupRounding?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderLine entity interface.\n */\n export interface TenderLine {\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n InternalTransactionId?: string;\n RefundableAmount?: number;\n CaptureToken?: string;\n CardToken?: string;\n Authorization?: string;\n TransactionStatusValue?: number;\n IncomeExpenseAccountTypeValue?: number;\n MaskedCardNumber?: string;\n TenderDate?: Date;\n IsPreProcessed?: boolean;\n IsDeposit?: boolean;\n IsCustomerAccountFloorLimitUsed?: boolean;\n AuthorizationReferenceId?: string;\n IsIncrementalCaptureEnabled?: boolean;\n IsReauthorizationEnabled?: boolean;\n IncrementalOffsetAmount?: number;\n ChannelId?: number;\n IsLinkedRefund?: boolean;\n LinkedPaymentStore?: string;\n LinkedPaymentTerminalId?: string;\n LinkedPaymentTransactionId?: string;\n LinkedPaymentLineNumber?: number;\n LinkedPaymentCurrency?: string;\n RoundingDifference?: number;\n RemainingLinkedRefundAmount?: number;\n TenderLineId?: string;\n Amount?: number;\n CashBackAmount?: number;\n AmountInTenderedCurrency?: number;\n AmountInCompanyCurrency?: number;\n Currency?: string;\n ExchangeRate?: number;\n CompanyCurrencyExchangeRate?: number;\n TenderTypeId?: string;\n SignatureData?: string;\n ReasonCodeLines?: ReasonCodeLine[];\n LineNumber?: number;\n GiftCardId?: string;\n GiftCardPin?: string;\n GiftCardExpirationYear?: number;\n GiftCardExpirationMonth?: number;\n CreditMemoId?: string;\n CustomerId?: string;\n LoyaltyCardId?: string;\n CardTypeId?: string;\n IsChangeLine?: boolean;\n IsHistorical?: boolean;\n IsVoidable?: boolean;\n StatusValue?: number;\n VoidStatusValue?: number;\n AuthorizedAmount?: number;\n PaymentRefRecId?: number;\n CardPaymentAccountId?: string;\n ProcessingTypeValue?: number;\n CardProcessorStatusValue?: number;\n LinkedPaymentRefRecId?: number;\n IsPolicyBypassed?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TextValueTranslation entity interface.\n */\n export interface TextValueTranslation {\n Language?: string;\n Text?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UnitOfMeasure entity interface.\n */\n export interface UnitOfMeasure {\n DecimalPrecision?: number;\n Symbol?: string;\n Description?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductUnitOfMeasure entity interface.\n */\n export interface ProductUnitOfMeasure extends UnitOfMeasure {\n UnitOfMeasureSourceValue?: number;\n ProductQuantityLimitRules?: ProductQuantityLimitRule;\n }\n \n /**\n * RecommendedElement entity interface.\n */\n export interface RecommendedElement {\n ElementId?: string;\n ElementTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RecommendationCriteria entity interface.\n */\n export interface RecommendationCriteria {\n CustomerAccountNumber?: string;\n CatalogId?: number;\n ProductIds?: number[];\n CategoryIds?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductListLine entity interface.\n */\n export interface ProductListLine {\n ProductListId?: string;\n LineId?: string;\n ProductId?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n CreatedDateTime?: Date;\n LastUpdated?: Date;\n DeletedDateTime?: Date;\n DataAreaId?: string;\n CatalogId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListLine entity interface.\n */\n export interface CommerceListLine {\n CommerceListId?: number;\n LineId?: number;\n CustomerId?: string;\n CustomerName?: string;\n ProductId?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n IsFavorite?: boolean;\n IsRecurring?: boolean;\n IsPrivate?: boolean;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListContributor entity interface.\n */\n export interface CommerceListContributor {\n RecordId?: number;\n CustomerId?: string;\n CustomerName?: string;\n InvitationId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CommerceListInvitation entity interface.\n */\n export interface CommerceListInvitation {\n RecordId?: number;\n Invitee?: string;\n IsSent?: boolean;\n LastRequestDateTime?: Date;\n LastSentDateTime?: Date;\n StatusValue?: number;\n Token?: string;\n InvitationTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchFilter entity interface.\n */\n export interface SearchFilter {\n Key?: string;\n FilterTypeValue: number;\n SearchValues?: SearchFilterValue[];\n }\n \n /**\n * SearchFilterValue entity interface.\n */\n export interface SearchFilterValue {\n Value?: CommercePropertyValue;\n }\n \n /**\n * TransactionSearchCriteria entity interface.\n */\n export interface TransactionSearchCriteria {\n TransactionIds?: string[];\n SalesId?: string;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerAccountNumber?: string;\n CustomerFirstName?: string;\n CustomerLastName?: string;\n StoreId?: string;\n TerminalId?: string;\n ItemId?: string;\n Barcode?: string;\n SerialNumber?: string;\n StaffId?: string;\n StartDateTime?: Date;\n EndDateTime?: Date;\n ReceiptEmailAddress?: string;\n SearchIdentifiers?: string;\n SearchLocationTypeValue?: number;\n CustomFilters?: SearchFilter[];\n }\n \n /**\n * SalesOrderSearchCriteria entity interface.\n */\n export interface SalesOrderSearchCriteria {\n TransactionIds?: string[];\n SalesId?: string;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerAccountNumber?: string;\n CustomerFirstName?: string;\n CustomerLastName?: string;\n StoreId?: string;\n TerminalId?: string;\n ItemId?: string;\n Barcode?: string;\n SerialNumber?: string;\n StaffId?: string;\n SearchTypeValue?: number;\n StartDateTime?: Date;\n EndDateTime?: Date;\n IncludeDetails?: boolean;\n ReceiptEmailAddress?: string;\n SearchIdentifiers?: string;\n SalesTransactionTypeValues?: number[];\n SearchLocationTypeValue?: number;\n TransactionStatusTypeValues?: number[];\n }\n \n /**\n * SearchStoreCriteria entity interface.\n */\n export interface SearchStoreCriteria {\n ChannelId?: number;\n StoreNumber?: string;\n InventoryLocationId?: string;\n ChannelTypeValue?: number;\n OnlineStoreCustomerTypeValue?: number;\n }\n \n /**\n * CustomerSearchCriteria entity interface.\n */\n export interface CustomerSearchCriteria {\n Keyword?: string;\n SearchOnlyCurrentCompany?: boolean;\n SearchLocationValue?: number;\n Refinements?: CustomerRefinerValue[];\n DataLevelValue?: number;\n }\n \n /**\n * ProductPrice entity interface.\n */\n export interface ProductPrice {\n ProductId?: number;\n ListingId?: number;\n BasePrice?: number;\n TradeAgreementPrice?: number;\n AdjustedPrice?: number;\n MaxVariantPrice?: number;\n MinVariantPrice?: number;\n CustomerContextualPrice?: number;\n DiscountAmount?: number;\n CurrencyCode?: string;\n ItemId?: string;\n InventoryDimensionId?: string;\n UnitOfMeasure?: string;\n ValidFrom?: Date;\n ProductLookupId?: number;\n ChannelId?: number;\n CatalogId?: number;\n DiscountLines?: DiscountLine[];\n SalesAgreementPrice?: number;\n PriceSourceTypeValue?: number;\n AttainablePriceLines?: PriceLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitAvailability entity interface.\n */\n export interface OrgUnitAvailability {\n OrgUnitLocation?: OrgUnitLocation;\n ItemAvailabilities?: ItemAvailability[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductVariantPropertySet entity interface.\n */\n export interface ProductVariantPropertySet {\n VariantId?: number;\n ProductVariantPropertiesAsList?: ProductPropertyTranslation[];\n }\n \n /**\n * PurchaseOrderLine entity interface.\n */\n export interface PurchaseOrderLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityOrdered?: number;\n PurchaseQuantity?: number;\n PurchaseUnit?: string;\n PurchaseReceived?: number;\n PurchaseReceivedNow?: number;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n UniqueIdentifier?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrderLine entity interface.\n */\n export interface TransferOrderLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityTransferred?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityShipNow?: number;\n QuantityReceiveNow?: number;\n QuantityRemainShip?: number;\n QuantityRemainReceive?: number;\n PurchaseUnit?: string;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n Guid?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransferOrderJournal entity interface.\n */\n export interface TransferOrderJournal {\n OrderId?: string;\n VoucherId?: string;\n UpdatedByWorker?: string;\n InventLocationIdFrom?: string;\n InventLocationIdTo?: string;\n QuantityShipped?: number;\n PostingDate?: Date;\n DeliveryMode?: string;\n Comments?: string;\n JournalLines?: TransferOrderJournalLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickingListLine entity interface.\n */\n export interface PickingListLine {\n RecordId?: number;\n OrderId?: string;\n ProductRecordId?: number;\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n QuantityOrdered?: number;\n PurchaseReceivedNow?: number;\n InventBatchId?: string;\n WMSLocationId?: string;\n WMSPalletId?: string;\n InventoryStatus?: string;\n LicensePlate?: string;\n InventSiteId?: string;\n InventLocationId?: string;\n ConfigId?: string;\n InventSerialId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n IsCommitted?: boolean;\n Message?: string;\n Guid?: string;\n DeliveryMethod?: string;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Affiliation entity interface.\n */\n export interface Affiliation {\n RecordId?: number;\n AffiliationTypeValue?: number;\n Description?: string;\n Name?: string;\n IsHidden?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentLinesSummary entity interface.\n */\n export interface InventoryInboundOutboundDocumentLinesSummary {\n InProgressQuantity?: number;\n TotalLineNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLinesSummary entity interface.\n */\n export interface InventoryDocumentSerialNumberLinesSummary {\n RegisteringQuantity?: number;\n RegisteredQuantity?: number;\n TotalLineNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentLine entity interface.\n */\n export interface InventoryInboundOutboundDocumentLine {\n WorkDocumentId?: string;\n LineId?: string;\n SourceDocumentRecordId?: number;\n SourceDocumentLineRecordId?: number;\n SourceDocumentTypeValue?: number;\n QuantityOrdered?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityCancelled?: number;\n QuantityToUpdate?: number;\n LocationId?: string;\n ItemId?: string;\n ProductId?: number;\n ItemName?: string;\n ItemPrimaryImageUrl?: string;\n IsLocationActive?: boolean;\n IsLocationAllowBlankReceiptEnabled?: boolean;\n IsLocationBlankIssueAllowed?: boolean;\n ProductDimensions?: ProductDimension[];\n Note?: string;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n OperationResultMessage?: string;\n IsCloseLine?: boolean;\n OriginTypeValue?: number;\n UnitOfMeasure?: string;\n SourceDocumentLine?: InventoryInboundOutboundSourceDocumentLine;\n SerialNumberLines?: InventoryDocumentSerialNumberLine[];\n TrackingDimensionLines?: InventoryDocumentTrackingDimensionLine[];\n LongVersion?: number;\n ToLocationId?: string;\n AdjustmentTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundSourceDocument entity interface.\n */\n export interface InventoryInboundOutboundSourceDocument {\n RecordId?: number;\n DocumentTypeValue?: number;\n DocumentId?: string;\n StatusValue?: number;\n ReceiveDate?: Date;\n ShipDate?: Date;\n Sender?: string;\n Receiver?: string;\n SenderDetails?: string;\n ReceiverDetails?: string;\n DeliveryMode?: string;\n TotalQuantityOrdered?: number;\n TotalQuantityShipped?: number;\n TotalQuantityReceived?: number;\n TotalQuantityCancelled?: number;\n DataAreaId?: string;\n Note?: string;\n TotalLines?: number;\n IsChangeAllowed?: boolean;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n DocumentTypeId?: string;\n Description?: string;\n StaffId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundSourceDocumentLine entity interface.\n */\n export interface InventoryInboundOutboundSourceDocumentLine {\n DocumentRecordId?: number;\n DocumentTypeValue?: number;\n RecordId?: number;\n LineNumber?: number;\n ItemId?: string;\n ProductId?: number;\n QuantityOrdered?: number;\n QuantityShipped?: number;\n QuantityReceived?: number;\n QuantityCancelled?: number;\n LocationId?: string;\n OverDeliveryPercentage?: number;\n UnderDeliveryPercentage?: number;\n UnitId?: string;\n Receiver?: string;\n DataAreaId?: string;\n Note?: string;\n NoteModifiedByStaffId?: string;\n NoteModifiedDateTime?: Date;\n DocumentId?: string;\n ItemName?: string;\n ItemPrimaryImageUrl?: string;\n IsLocationActive?: boolean;\n IsLocationAllowBlankReceiptEnabled?: boolean;\n IsLocationBlankIssueAllowed?: boolean;\n HasSerialNumber?: boolean;\n IsSerialNumberBlankReceiptAllowed?: boolean;\n IsSerialNumberDuplicateCheckEnabled?: boolean;\n ProductDimensions?: ProductDimension[];\n SerialNumberLines?: InventoryDocumentSourceSerialNumberLine[];\n TrackingDimensionLines?: InventoryDocumentSourceTrackingDimensionLine[];\n StatusValue?: number;\n ToProductId?: number;\n ToLocationId?: string;\n InventoryDimensionId?: string;\n ToInventoryDimensionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineFilterCriteria entity interface.\n */\n export interface InventoryDocumentLineFilterCriteria {\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentUpdateLinesAction entity interface.\n */\n export interface InventoryDocumentUpdateLinesAction {\n Quantity?: number;\n ActionTypeValue?: number;\n LocationId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineOperationResultSettings entity interface.\n */\n export interface InventoryDocumentLineOperationResultSettings {\n ModeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentLineSearchCriteria entity interface.\n */\n export interface InventoryDocumentLineSearchCriteria {\n SourceDocumentId?: string;\n SourceDocumentTypeValue?: number;\n WorkDocumentId?: string;\n ProductId?: number;\n ItemIds?: string[];\n AvailableSerializedLineOnly?: boolean;\n DocumentLineIds?: string[];\n DocumentOperationTypeValue?: number;\n OperationTypeValue?: number;\n LocationId?: string;\n ToLocationId?: string;\n AdjustmentTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSearchCriteria entity interface.\n */\n export interface InventoryDocumentSearchCriteria {\n DocumentId?: string;\n TransferFromWarehouse?: string;\n ShipFromWarehouse?: string;\n TransferToWarehouse?: string;\n Description?: string;\n DocumentTypeIds?: string[];\n DocumentStateValue?: number;\n DocumentTypeValues?: number[];\n CustomFilters?: SearchFilter[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLineSearchCriteria entity interface.\n */\n export interface InventoryDocumentSerialNumberLineSearchCriteria {\n DocumentLineId?: string;\n SerialNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLineUpdateAction entity interface.\n */\n export interface InventoryDocumentSerialNumberLineUpdateAction {\n DocumentLineId?: string;\n LineId?: string;\n SerialNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSerialNumberLineResetAction entity interface.\n */\n export interface InventoryDocumentSerialNumberLineResetAction {\n DocumentLineId?: string;\n LineId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult entity interface.\n */\n export interface InventoryInboundOutboundDocumentUpdateLinesByCriteriaResult {\n UpdatedLines?: InventoryInboundOutboundDocumentLine[];\n TotalLinesUpdated?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * WarehouseLocationSearchCriteria entity interface.\n */\n export interface WarehouseLocationSearchCriteria {\n WarehouseIds?: string[];\n IsLocationProfileRequired?: boolean;\n SearchText?: string;\n }\n \n /**\n * InventoryDocumentSerialNumberLine entity interface.\n */\n export interface InventoryDocumentSerialNumberLine {\n WorkDocumentId?: string;\n WorkDocumentLineId?: string;\n SourceLineId?: string;\n LineId?: string;\n Quantity?: number;\n SerialNumber?: string;\n StatusValue?: number;\n ProductId?: number;\n ModifiedDateTime?: Date;\n SourceDocumentRecordId?: number;\n SourceDocumentTypeValue?: number;\n SourceDocumentLineRecordId?: number;\n SourceLine?: InventoryDocumentSourceSerialNumberLine;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationCategoryResultsSummary entity interface.\n */\n export interface InventoryDocumentValidationCategoryResultsSummary {\n CategoryName?: string;\n SeverityValue?: number;\n TotalValidationResultCount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationResultSummary entity interface.\n */\n export interface InventoryDocumentValidationResultSummary {\n DocumentId?: string;\n DocumentVersion?: number;\n CategorySummaries?: InventoryDocumentValidationCategoryResultsSummary[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationResultLine entity interface.\n */\n export interface InventoryDocumentValidationResultLine {\n DocumentValidationResultLineId?: string;\n CategoryName?: string;\n SeverityValue?: number;\n ErrorCode?: number;\n ErrorMessage?: string;\n DocumentId?: string;\n DocumentLongVersion?: number;\n DocumentLineId?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentValidationResultSearchCriteria entity interface.\n */\n export interface InventoryDocumentValidationResultSearchCriteria {\n DocumentId?: string;\n DocumentVersion?: number;\n SeverityValue?: number;\n Categories?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionValueInventoryAvailability entity interface.\n */\n export interface ProductDimensionValueInventoryAvailability {\n DimensionTypeValue?: number;\n DimensionValue?: ProductDimensionValue;\n ProductIds?: number[];\n TotalAvailableInventoryLevelLabel?: string;\n TotalAvailableInventoryLevelCode?: string;\n PhysicalAvailableInventoryLevelLabel?: string;\n PhysicalAvailableInventoryLevelCode?: string;\n }\n \n /**\n * UnitOfMeasureSearchCriteria entity interface.\n */\n export interface UnitOfMeasureSearchCriteria {\n IncludeQuantityLimitRules?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimension entity interface.\n */\n export interface ProductDimension {\n DimensionTypeValue: number;\n DimensionValue?: ProductDimensionValue;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionValue entity interface.\n */\n export interface ProductDimensionValue {\n RecordId: number;\n Value?: string;\n DimensionId?: string;\n ColorHexCode?: string;\n ImageUrl?: string;\n RefinerGroup?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionCombination entity interface.\n */\n export interface ProductDimensionCombination {\n ProductDimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchRefiner entity interface.\n */\n export interface SearchRefiner {\n RecordId?: number;\n KeyName?: string;\n DataTypeValue?: number;\n RefinerTypeValue?: number;\n DisplayTemplateValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchRefinerValue entity interface.\n */\n export interface SearchRefinerValue {\n RefinerRecordId?: number;\n DataTypeValue?: number;\n LeftValueBoundString?: string;\n RightValueBoundString?: string;\n UnitText?: string;\n RowNumber?: number;\n Count?: number;\n LeftValueBoundLocalizedString?: string;\n RightValueBoundLocalizedString?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductRefiner entity interface.\n */\n export interface ProductRefiner extends SearchRefiner {\n SourceValue?: number;\n Values?: ProductRefinerValue[];\n IsDimension?: boolean;\n }\n \n /**\n * ProductRefinerValue entity interface.\n */\n export interface ProductRefinerValue extends SearchRefinerValue {\n RefinerSourceValue?: number;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n }\n \n /**\n * ClientBookRefiner entity interface.\n */\n export interface ClientBookRefiner extends SearchRefiner {\n SourceValue?: number;\n Values?: ClientBookRefinerValue[];\n }\n \n /**\n * ClientBookRefinerValue entity interface.\n */\n export interface ClientBookRefinerValue extends SearchRefinerValue {\n RefinerSourceValue?: number;\n }\n \n /**\n * ProductRelationType entity interface.\n */\n export interface ProductRelationType {\n Name?: string;\n RecordId: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ComponentInSlotRelation entity interface.\n */\n export interface ComponentInSlotRelation {\n ComponentId: number;\n SlotId: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductRules entity interface.\n */\n export interface ProductRules {\n HasLinkedProducts: boolean;\n IsSerialized: boolean;\n IsActiveInSalesProcess: boolean;\n IsBlocked: boolean;\n DateOfBlocking: Date;\n DateToActivate: Date;\n DateToBlock: Date;\n DefaultUnitOfMeasure?: string;\n PriceKeyingRequirementValue: number;\n QuantityKeyingRequirementValue: number;\n MustKeyInComment: boolean;\n CanQuantityBecomeNegative: boolean;\n MustScaleItem: boolean;\n CanPriceBeZero: boolean;\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LocalizedString entity interface.\n */\n export interface LocalizedString {\n RecordId?: number;\n LanguageId?: string;\n TextId?: number;\n Text?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyCard entity interface.\n */\n export interface LoyaltyCard {\n CardNumber?: string;\n CardTenderTypeValue?: number;\n CustomerAccount?: string;\n LoyaltyGroups?: LoyaltyGroup[];\n RewardPoints?: LoyaltyRewardPoint[];\n LoyaltyEnrollmentDate?: Date;\n LoyaltyEnrollmentDateLocal?: Date;\n LoyaltyEnrollmentTime?: number;\n LoyaltyEnrollmentTimeLocal?: number;\n OmOperatingUnitId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductComponent entity interface.\n */\n export interface ProductComponent {\n ProductId: number;\n SlotId: number;\n Product?: SimpleProduct;\n AdditionalChargeForComponent?: number;\n Behavior?: ProductBehavior;\n Description?: string;\n Dimensions?: ProductDimension[];\n ItemId?: string;\n Name?: string;\n ProductTypeValue?: number;\n Quantity?: number;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SimpleProduct entity interface.\n */\n export interface SimpleProduct {\n RecordId: number;\n ItemId?: string;\n Name?: string;\n Description?: string;\n ProductTypeValue: number;\n DefaultUnitOfMeasure?: string;\n BasePrice: number;\n Price: number;\n AdjustedPrice: number;\n MasterProductId?: number;\n Components?: ProductComponent[];\n IsGiftCard?: boolean;\n ProductNumber?: string;\n Dimensions?: ProductDimension[];\n Behavior?: ProductBehavior;\n LinkedProducts?: SimpleLinkedProduct[];\n PrimaryImageUrl?: string;\n ItemTypeValue?: number;\n ItemServiceTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductBehavior entity interface.\n */\n export interface ProductBehavior {\n HasSerialNumber: boolean;\n IsDiscountAllowed: boolean;\n IsManualDiscountAllowed: boolean;\n IsKitDisassemblyAllowed: boolean;\n IsNegativeQuantityAllowed: boolean;\n IsReturnAllowed: boolean;\n IsSaleAtPhysicalStoresAllowed: boolean;\n IsZeroSalePriceAllowed: boolean;\n KeyInPriceValue: number;\n KeyInQuantityValue: number;\n MustKeyInComment: boolean;\n MustPrintIndividualShelfLabelsForVariants: boolean;\n MustPromptForSerialNumberOnlyAtSale: boolean;\n MustWeighProductAtSale: boolean;\n ValidFromDateForSaleAtPhysicalStores: Date;\n ValidToDateForSaleAtPhysicalStores: Date;\n IsStorageDimensionGroupLocationActive: boolean;\n IsStorageDimensionGroupLocationAllowBlankReceiptEnabled: boolean;\n AllowNegativePhysicalInventory: boolean;\n IsStockedProduct: boolean;\n IsBlankSerialNumberAllowed?: boolean;\n IsBlankSerialNumberReceiptAllowed?: boolean;\n IsSerialNumberControlEnabled?: boolean;\n IsStorageDimensionGroupLocationBlankIssueAllowed?: boolean;\n IsSerialNumberRequired?: boolean;\n DefaultQuantity?: number;\n MaximumQuantity?: number;\n MinimumQuantity?: number;\n MultipleOfQuantity?: number;\n InventoryLocationId?: string;\n IsSaleAtSelfCheckoutRegistersAllowed?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SimpleLinkedProduct entity interface.\n */\n export interface SimpleLinkedProduct {\n RecordId: number;\n ItemId?: string;\n Name?: string;\n Description?: string;\n ProductTypeValue: number;\n DefaultUnitOfMeasure?: string;\n BasePrice: number;\n Price: number;\n AdjustedPrice: number;\n Quantity: number;\n Behavior?: ProductBehavior;\n Dimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductSearchResult entity interface.\n */\n export interface ProductSearchResult {\n ItemId?: string;\n Name?: string;\n Price: number;\n PrimaryImageUrl?: string;\n RecordId: number;\n ProductNumber?: string;\n TrackingId?: string;\n AverageRating?: number;\n TotalRatings?: number;\n Description?: string;\n BasePrice?: number;\n MinVariantPrice?: number;\n MaxVariantPrice?: number;\n DisplayOrder?: number;\n AttributeValues?: AttributeValue[];\n IsMasterProduct?: boolean;\n MasterProductId?: number;\n DefaultUnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SearchSuggestion entity interface.\n */\n export interface SearchSuggestion {\n Value?: string;\n Value2?: CommerceProperty;\n Value3?: CommerceProperty;\n Value4?: CommerceProperty;\n SuggestionType?: string;\n Id?: string;\n ImageUrl?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyPointRedemptionEstimate entity interface.\n */\n export interface LoyaltyPointRedemptionEstimate {\n MaxCurrencyValueOfLoyaltyPoints?: number;\n RewardPointToRedeemList?: LoyaltyRewardPointLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyGroup entity interface.\n */\n export interface LoyaltyGroup {\n Description?: string;\n Name?: string;\n RecordId: number;\n LoyaltyTiers?: LoyaltyTier[];\n LoyaltyCardTiers?: LoyaltyCardTier[];\n HighestActiveLoyaltyCardTier?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyTier entity interface.\n */\n export interface LoyaltyTier {\n Description?: string;\n RecordId: number;\n TierId?: string;\n TierLevel: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyCardTier entity interface.\n */\n export interface LoyaltyCardTier {\n RecordId: number;\n TierId?: string;\n LoyaltyTierRecordId: number;\n ValidFrom: Date;\n ValidTo: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyRewardPoint entity interface.\n */\n export interface LoyaltyRewardPoint {\n IsRedeemable: boolean;\n RewardPointCurrency?: string;\n RewardPointTypeValue: number;\n Description?: string;\n RewardPointId?: string;\n IssuedPoints?: number;\n UsedPoints?: number;\n ExpiredPoints?: number;\n ActivePoints?: number;\n PointsExpiringSoon?: number;\n UnvestedPoints?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyCardTransaction entity interface.\n */\n export interface LoyaltyCardTransaction {\n ChannelName?: string;\n EntryDateTime: Date;\n EntryTypeValue: number;\n ExpirationDate: Date;\n RewardPointAmountQuantity: number;\n TransactionId?: string;\n }\n \n /**\n * GiftCard entity interface.\n */\n export interface GiftCard {\n Id?: string;\n Balance?: number;\n BalanceCurrencyCode?: string;\n BalanceInCardCurrency?: number;\n CardCurrencyCode?: string;\n GiftCardIssueAmount?: number;\n GiftCardActiveFrom?: Date;\n GiftCardExpireDate?: Date;\n GiftCardHistoryDetails?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OperationPermission entity interface.\n */\n export interface OperationPermission {\n OperationName?: string;\n OperationId?: number;\n CheckUserAccess?: boolean;\n AllowAnonymousAccess?: boolean;\n AllowCustomerAccess?: boolean;\n AllowApplicationAccess?: boolean;\n IsEnabledForTaskManagement?: boolean;\n Permissions?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StateProvinceInfo entity interface.\n */\n export interface StateProvinceInfo {\n CountryRegionId?: string;\n StateId?: string;\n StateName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TransactionLog entity interface.\n */\n export interface TransactionLog extends Transaction {\n }\n \n /**\n * KitTransaction entity interface.\n */\n export interface KitTransaction extends TransactionLog {\n KitTransactionLines?: KitTransactionLine[];\n }\n \n /**\n * SalesTaxGroup entity interface.\n */\n export interface SalesTaxGroup {\n RecordId: number;\n TaxGroup?: string;\n TaxGroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductProperty entity interface.\n */\n export interface ProductProperty {\n ValueString?: string;\n UnitText?: string;\n PropertyTypeValue?: number;\n KeyName?: string;\n FriendlyName?: string;\n RecordId?: number;\n IsDimensionProperty?: boolean;\n AttributeValueId?: number;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n GroupId?: number;\n GroupTypeValue?: number;\n GroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n ProductId?: number;\n CatalogId?: number;\n }\n \n /**\n * ProductCompositionInformation entity interface.\n */\n export interface ProductCompositionInformation {\n VariantInformation?: ProductVariantInformation;\n KitDefinition?: KitDefinition;\n }\n \n /**\n * ProductVariantInformation entity interface.\n */\n export interface ProductVariantInformation {\n ActiveVariantProductId: number;\n Variants?: ProductVariant[];\n Dimensions?: ProductDimensionSet[];\n ItemId?: string;\n MasterProductId?: number;\n }\n \n /**\n * ProductChangeTrackingInformation entity interface.\n */\n export interface ProductChangeTrackingInformation {\n ModifiedDateTime: Date;\n ChangeActionValue?: number;\n RequestedActionValue?: number;\n }\n \n /**\n * ProductDimensionSet entity interface.\n */\n export interface ProductDimensionSet {\n DimensionKey?: string;\n DimensionValues?: ProductDimensionValueSet[];\n }\n \n /**\n * ProductDimensionValueSet entity interface.\n */\n export interface ProductDimensionValueSet {\n DimensionId?: string;\n DimensionValue?: string;\n VariantSet?: number[];\n Language?: string;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n SwatchRefinerGroupValue?: string;\n SwatchRefinerGroupTranslation?: string;\n SwatchRefinerGroupImageUrl?: string;\n SwatchRefinerGroupColorHexCode?: string;\n }\n \n /**\n * RichMediaLocations entity interface.\n */\n export interface RichMediaLocations {\n Items?: RichMediaLocationsRichMediaLocation[];\n }\n \n /**\n * RichMediaLocationsRichMediaLocation entity interface.\n */\n export interface RichMediaLocationsRichMediaLocation {\n Url?: string;\n AltText?: string;\n IsSelfHosted?: boolean;\n IsDefault?: boolean;\n Priority?: number;\n }\n \n /**\n * KitDefinition entity interface.\n */\n export interface KitDefinition {\n DisassembleAtRegister: boolean;\n KitLineDefinitions?: KitLineDefinition[];\n KitLineProductToVariantMap?: ComponentKitVariantSet[];\n KitVariantToComponentMap?: KitVariantContent[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ComponentKitVariantSet entity interface.\n */\n export interface ComponentKitVariantSet {\n KitLineProductId: number;\n KitVariantIdList?: number[];\n }\n \n /**\n * KitLineDefinition entity interface.\n */\n export interface KitLineDefinition {\n ComponentProductId: number;\n KitLineIdentifier: number;\n SubstituteProductIds?: number[];\n ComponentProperties?: KitLineProductProperty[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitLineProductProperty entity interface.\n */\n export interface KitLineProductProperty {\n KitLineIdentifier: number;\n ProductId: number;\n Unit?: string;\n Quantity: number;\n Charge: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitComponentKey entity interface.\n */\n export interface KitComponentKey {\n KitLineIdentifier: number;\n DistinctProductId: number;\n }\n \n /**\n * KitVariantContent entity interface.\n */\n export interface KitVariantContent {\n KitVariantId: number;\n KitComponentKeyList?: KitComponentKey[];\n }\n \n /**\n * ProductLookupClause entity interface.\n */\n export interface ProductLookupClause {\n ItemId?: string;\n InventDimensionId?: string;\n Barcode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductAssortmentInterval entity interface.\n */\n export interface ProductAssortmentInterval {\n ProductId?: number;\n ValidFrom?: Date;\n ValidTo?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitLocation entity interface.\n */\n export interface OrgUnitLocation {\n Contacts?: OrgUnitContact[];\n ChannelId?: number;\n Latitude?: number;\n Longitude?: number;\n OrgUnitName?: string;\n OrgUnitNumber?: string;\n Address?: string;\n Street?: string;\n StreetNumber?: string;\n City?: string;\n DistrictName?: string;\n BuildingCompliment?: string;\n Postbox?: string;\n Zip?: string;\n County?: string;\n CountyName?: string;\n State?: string;\n StateName?: string;\n Country?: string;\n Distance?: number;\n InventoryLocationId?: string;\n InventorySiteId?: string;\n IsPickupLocation?: boolean;\n IsShippingLocation?: boolean;\n PostalAddressId?: number;\n OpenFrom?: number;\n OpenTo?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitContact entity interface.\n */\n export interface OrgUnitContact {\n ChannelId: number;\n Locator?: string;\n LocatorExtension?: string;\n ContactTypeValue: number;\n IsPrimary: boolean;\n IsPrivate: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesLineDeliveryOption entity interface.\n */\n export interface SalesLineDeliveryOption {\n SalesLineId?: string;\n DeliveryOptions?: DeliveryOption[];\n }\n \n /**\n * DeliveryOption entity interface.\n */\n export interface DeliveryOption {\n ChargeGroup?: string;\n Code?: string;\n Description?: string;\n RecordId: number;\n DeliveryChargeLines?: DeliveryChargeLine[];\n TotalChargeAmount?: number;\n ShippingChargeAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelDeliveryOption entity interface.\n */\n export interface ChannelDeliveryOption {\n ChannelId: number;\n DeliveryOptions?: DeliveryOption[];\n }\n \n /**\n * ChannelIdentity entity interface.\n */\n export interface ChannelIdentity {\n ChannelType: ExtensibleRetailChannelType;\n Name?: string;\n OperatingUnitNumber?: string;\n DataAreaId?: string;\n RecordId: number;\n InventoryLocationId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensibleRetailChannelType entity interface.\n */\n export interface ExtensibleRetailChannelType extends ExtensibleEnumeration {\n }\n \n /**\n * ChannelProfileProperty entity interface.\n */\n export interface ChannelProfileProperty {\n Key: number;\n Value?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelConfiguration entity interface.\n */\n export interface ChannelConfiguration {\n RecordId: number;\n ChannelNaturalId?: string;\n MinimumDepositPercentage: number;\n QuoteExpirationDays: number;\n PickupDeliveryModeCode?: string;\n CarryoutDeliveryModeCode?: string;\n CancellationChargePercentage: number;\n InventLocation?: string;\n InventLocationDataAreaId?: string;\n BingMapsApiKey?: string;\n BingMapsEnabled: boolean;\n Currency?: string;\n CatalogDefaultImageTemplate?: string;\n CompanyCurrency?: string;\n PriceIncludesSalesTax: boolean;\n CountryRegionId?: string;\n ChannelCountryRegionISOCode?: string;\n DefaultLanguageId?: string;\n TimeZoneInfoId?: string;\n EmailDeliveryModeCode?: string;\n GiftCardItemId?: string;\n EnableProductRecommendations: boolean;\n RefundableShippingAmountWithoutApproval: number;\n RefundShippingCharges: boolean;\n ReceiptSettingsValue: number;\n CustomerAttributeGroupId: number;\n ClientBookAttributeGroupId: number;\n NotificationRefreshInterval: number;\n AllowExchangeOnReturnOrders?: boolean;\n FiscalRegistrationProcessId?: string;\n IsInventoryAutomaticValidationEnabled: boolean;\n HideSystemInventoryInStockCount: boolean;\n EnablePriceChangeTracking: boolean;\n ProfileProperties?: ChannelProfileProperty[];\n Properties?: ChannelProperty[];\n Languages?: ChannelLanguage[];\n UseAdvancedAutoCharges?: boolean;\n UseRTSForOnlineOrderCreation?: boolean;\n IsWarrantyAutoPromptEnabled?: boolean;\n EnableProductRatingsForRetailStores?: boolean;\n EnableFetchingPickingListsForPickingAndReceiving?: boolean;\n EnableReturnsForMultipleOrderInvoices?: boolean;\n EnableAnonymousOrderLookupByChannelReferenceId?: boolean;\n VoidSuspendedTransactionsOnCloseShift?: number;\n EnableOmniChannelPayments?: boolean;\n UseAdvancedCashManagement?: boolean;\n EnableFiscalRegistrationStorageBackup?: boolean;\n UseSalesReceiptAsDefaultReceiptTypeInJournal?: boolean;\n SalesOrderHeaderAttributeGroups?: number[];\n SalesOrderLinesAttributeGroups?: number[];\n CustomerAddressBooks?: StoreAddressBook[];\n EnableReturnPolicies?: boolean;\n InventAvailabilityCalculationMode?: string;\n IsPriceInclusiveTaxExemptCalculationEnabled?: boolean;\n EnableValidationOfSerialNumbersForInStoreReturns?: boolean;\n DisplayNonRetailOrdersInEcommerceOrderHistory?: boolean;\n EnableCopilotCustomerInsights?: boolean;\n EnableCopilotProductInsights?: boolean;\n EnableCopilotReportInsights?: boolean;\n EnableStoreCommerceCopilot?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelProperty entity interface.\n */\n export interface ChannelProperty {\n Name?: string;\n Value?: string;\n Channel?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelLanguage entity interface.\n */\n export interface ChannelLanguage {\n LanguageId?: string;\n IsDefault: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelDeliveryOptionConfiguration entity interface.\n */\n export interface ChannelDeliveryOptionConfiguration {\n PickupDeliveryModeCodes?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * NonSalesTransaction entity interface.\n */\n export interface NonSalesTransaction extends Transaction {\n ReasonCodeLines?: ReasonCodeLine[];\n Amount?: number;\n ForeignCurrency?: string;\n TenderTypeId?: string;\n OpenDrawer?: boolean;\n DenominationDetails?: DenominationDetail[];\n }\n \n /**\n * DropAndDeclareTransaction entity interface.\n */\n export interface DropAndDeclareTransaction extends Transaction {\n TenderDetails?: TenderDetail[];\n ReasonCodeLines?: ReasonCodeLine[];\n OpenDrawer?: boolean;\n }\n \n /**\n * ProductSearchCriteria entity interface.\n */\n export interface ProductSearchCriteria {\n Ids?: number[];\n CategoryIds?: number[];\n IncludeProductsFromDescendantCategories?: boolean;\n SearchCondition?: string;\n SkipVariantExpansion?: boolean;\n IncludeAttributes?: boolean;\n Barcodes?: string[];\n ItemIds?: ProductLookupClause[];\n Refinement?: ProductRefinerValue[];\n CustomerAccountNumber?: string;\n RecommendationListId?: string;\n DownloadProductData?: boolean;\n Context?: ProjectionDomain;\n Language?: string;\n IsOnline?: boolean;\n DataLevelValue?: number;\n }\n \n /**\n * ChangedProductsSearchCriteria entity interface.\n */\n export interface ChangedProductsSearchCriteria {\n SynchronizationToken?: string;\n Context?: ProjectionDomain;\n AsListings?: boolean;\n Session?: ReadChangedProductsSession;\n DataLevelValue?: number;\n }\n \n /**\n * EmployeeActivitySearchCriteria entity interface.\n */\n export interface EmployeeActivitySearchCriteria {\n FromDateTimeOffset?: Date;\n ToDateTimeOffset?: Date;\n StoreNumber?: string;\n EmployeeActivityTypeValues?: number[];\n DataLevelValue?: number;\n }\n \n /**\n * SearchSuggestionCriteria entity interface.\n */\n export interface SearchSuggestionCriteria {\n ProductSearchCriteria?: ProductSearchCriteria;\n CustomerSearchCriteria?: CustomerSearchCriteria;\n SuggestionType?: string;\n HitPrefix?: string;\n HitSuffix?: string;\n }\n \n /**\n * OrderOriginator entity interface.\n */\n export interface OrderOriginator {\n TransactionId?: string;\n SalesId?: string;\n StaffId?: string;\n StaffName?: string;\n CustomerId?: string;\n CustomerName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrderOriginatorSearchCriteria entity interface.\n */\n export interface OrderOriginatorSearchCriteria {\n TransactionIds?: string[];\n SalesIds?: string[];\n SearchLocationValue?: number;\n DataLevelValue?: number;\n }\n \n /**\n * SalesOrdersLookupCriteria entity interface.\n */\n export interface SalesOrdersLookupCriteria {\n SalesOrderLookups?: SalesOrderLookup[];\n }\n \n /**\n * CartLineDeliveryPreference entity interface.\n */\n export interface CartLineDeliveryPreference {\n LineId?: string;\n DeliveryPreferenceTypeValues?: number[];\n }\n \n /**\n * CartLinePromotion entity interface.\n */\n export interface CartLinePromotion {\n LineId?: string;\n Promotions?: string[];\n }\n \n /**\n * ProductVariant entity interface.\n */\n export interface ProductVariant {\n ItemId?: string;\n MasterProductId: number;\n InventoryDimensionId?: string;\n AdjustedPrice: number;\n BasePrice: number;\n Price: number;\n Color?: string;\n Style?: string;\n Size?: string;\n Configuration?: string;\n ColorId?: string;\n StyleId?: string;\n SizeId?: string;\n ConfigId?: string;\n VariantId?: string;\n Images?: RichMediaLocations[];\n DistinctProductVariantId?: number;\n ProductNumber?: string;\n PropertiesAsList?: ProductPropertyTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfilePrinter entity interface.\n */\n export interface HardwareProfilePrinter {\n ProfileId?: string;\n DeviceTypeValue?: number;\n DeviceName?: string;\n DeviceMake?: string;\n DeviceModel?: string;\n DeviceDescription?: string;\n CharacterSet?: number;\n ReceiptProfileId?: string;\n BinaryConversion?: boolean;\n DocInsertRemovalTimeout?: number;\n Logo?: string;\n LogoAlignment?: string;\n KeepConnectionOpen?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfileScanner entity interface.\n */\n export interface HardwareProfileScanner {\n ProfileId?: string;\n DeviceTypeValue?: number;\n DeviceName?: string;\n DeviceDescription?: string;\n DecodeData?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareProfileCashDrawer entity interface.\n */\n export interface HardwareProfileCashDrawer {\n ProfileId?: string;\n DeviceTypeValue?: number;\n DeviceName?: string;\n DeviceDescription?: string;\n DeviceMake?: string;\n DeviceModel?: string;\n IsSharedShiftDrawer?: boolean;\n DrawerKeepConnectionOpen?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TillLayout entity interface.\n */\n export interface TillLayout {\n CashChangerLayoutXml?: string;\n CustomerLayoutId?: string;\n CustomerLayoutXml?: string;\n Height?: number;\n LayoutId?: string;\n LayoutTypeValue?: number;\n LayoutXml?: string;\n LayoutXmlPortrait?: string;\n Name?: string;\n ReceiptId?: string;\n ReceiptItemsLayoutXml?: string;\n ReceiptPaymentLayoutXml?: string;\n TotalId?: string;\n TotalsLayoutXml?: string;\n Width?: number;\n RecordId?: number;\n StartScreen?: number;\n ButtonGridZones?: ButtonGridZone[];\n ImageZones?: ImageZone[];\n ReportZones?: ReportZone[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesInvoice entity interface.\n */\n export interface SalesInvoice {\n RecordId?: number;\n ChannelId?: number;\n Id?: string;\n SalesId?: string;\n SalesType?: string;\n InvoiceDate?: Date;\n DueDate?: Date;\n CurrencyCode?: string;\n InvoiceSubtotal?: number;\n TotalCharges?: number;\n TotalTaxAmount?: number;\n TotalLineDiscount?: number;\n TotalDiscount?: number;\n Amount?: number;\n AmountPaid?: number;\n AmountBalance?: number;\n Account?: string;\n Name?: string;\n TotalManualDiscountPercentage?: number;\n TotalManualDiscountAmount?: number;\n SalesInvoiceLine?: SalesInvoiceLine[];\n ChargeLines?: ChargeLine[];\n TenderLines?: TenderLine[];\n DeliveryModeChargeAmount?: number;\n OrderAccount?: string;\n OrderedByCustomerName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrderInvoice entity interface.\n */\n export interface OrderInvoice {\n Id?: string;\n CustomerAccountNumber?: string;\n CustomerName?: string;\n InvoiceDate?: Date;\n TotalAmount?: number;\n AmountPaid?: number;\n AmountBalance?: number;\n InvoiceTypeValue?: number;\n CurrencyCode?: string;\n InvoiceDueDate?: Date;\n InvoicePaidStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaxOverride entity interface.\n */\n export interface TaxOverride {\n Code?: string;\n SourceTaxGroup?: string;\n DestinationTaxGroup?: string;\n SourceItemTaxGroup?: string;\n DestinationItemTaxGroup?: string;\n ChannelId?: number;\n AdditionalDescription?: string;\n Status?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderType entity interface.\n */\n export interface TenderType {\n Function: number;\n TenderTypeId?: string;\n Name?: string;\n OperationId?: number;\n OperationName?: string;\n ChangeTenderTypeId?: string;\n AboveMinimumChangeAmount?: number;\n AboveMinimumChangeTenderTypeId?: string;\n OpenDrawer?: boolean;\n UseSignatureCaptureDevice?: boolean;\n MinimumSignatureCaptureAmount?: number;\n IsOvertenderAllowed?: boolean;\n IsUndertenderAllowed?: boolean;\n MaximumOvertenderAmount?: number;\n MaximumUndertenderAmount?: number;\n MaximumAmountPerTransaction?: number;\n MaximumAmountPerLine?: number;\n MinimumAmountPerTransaction?: number;\n MinimumAmountPerLine?: number;\n RoundOff?: number;\n CountingRequired?: number;\n TakenToBank?: number;\n TakenToSafe?: number;\n ConnectorId?: string;\n GiftCardItem?: string;\n GiftCardCashoutOutThreshold?: number;\n ChangeLineOnReceipt?: string;\n HideCardInputDetails?: boolean;\n CashDrawerLimitEnabled?: boolean;\n CashDrawerLimit?: number;\n RestrictReturnsWithoutReceipt?: boolean;\n HasTenderDiscount?: boolean;\n DefaultCardTypeId?: string;\n UseForDeclareStartAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReasonCode entity interface.\n */\n export interface ReasonCode {\n InputRequired: boolean;\n LinkedReasonCodeId?: string;\n MaximumLength: number;\n MaximumValue: number;\n MinimumLength: number;\n MinimumValue: number;\n OncePerTransaction: boolean;\n PrintInputNameOnReceipt: boolean;\n PrintInputToReceipt: boolean;\n PrintPromptToReceipt: boolean;\n Prompt?: string;\n RandomFactor: number;\n RetailUseReasonCode: boolean;\n ReasonCodeId?: string;\n Description?: string;\n InputTypeValue?: number;\n ActivityValue?: number;\n IsMultiLineText?: boolean;\n ReasonSubCodes?: ReasonSubCode[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReportDataSet entity interface.\n */\n export interface ReportDataSet {\n ReportId?: string;\n Parameters?: CommerceProperty[];\n Locale?: string;\n Output?: ReportRow[];\n HasTotalRow?: boolean;\n HasDisclaimer?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ZipCodeInfo entity interface.\n */\n export interface ZipCodeInfo {\n ZipPostalCode?: string;\n StreetName?: string;\n TimeZone?: number;\n CountryRegionId?: string;\n StateId?: string;\n CountyId?: string;\n CityName?: string;\n CityAlias?: string;\n District?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReasonCodeRequirement entity interface.\n */\n export interface ReasonCodeRequirement {\n ReasonCodeId?: string;\n SourceId?: string;\n TableRefTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * QueryResultSettings entity interface.\n */\n export interface QueryResultSettings {\n Paging?: PagingInfo;\n Sorting?: SortingInfo;\n }\n \n /**\n * SortingInfo entity interface.\n */\n export interface SortingInfo {\n Columns?: SortColumn[];\n }\n \n /**\n * SortColumn entity interface.\n */\n export interface SortColumn {\n ColumnName?: string;\n IsDescending?: boolean;\n }\n \n /**\n * PagingInfo entity interface.\n */\n export interface PagingInfo {\n NextPageToken?: string;\n Top?: number;\n Skip?: number;\n }\n \n /**\n * ProductPropertyTranslation entity interface.\n */\n export interface ProductPropertyTranslation {\n TranslationLanguage?: string;\n TranslatedProperties?: ProductProperty[];\n }\n \n /**\n * NumberSequenceSeedData entity interface.\n */\n export interface NumberSequenceSeedData {\n DataTypeValue?: number;\n DataValue?: number;\n LastTransactionDataValue?: number;\n LastTransactionCreatedDateTime?: Date;\n LastTransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptNumberResetInfo entity interface.\n */\n export interface ReceiptNumberResetInfo {\n ValidFrom?: Date;\n ValidTo?: Date;\n ResetDate?: Date;\n TypeValue?: number;\n Enabled?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DeviceActivationResult entity interface.\n */\n export interface DeviceActivationResult {\n Device?: Device;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PurchaseHistory entity interface.\n */\n export interface PurchaseHistory {\n DatePurchased?: Date;\n ImageUrl?: string;\n ItemId?: string;\n ProductId?: number;\n ProductName?: string;\n ReceiptId?: string;\n SalesId?: string;\n ChannelId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PurchaseHistorySearchCriteria entity interface.\n */\n export interface PurchaseHistorySearchCriteria {\n StartDate?: Date;\n EndDate?: Date;\n CustomerAccountNumber?: string;\n ItemId?: string;\n ProductNameFilter?: string;\n ReceiptId?: string;\n }\n \n /**\n * Node entity interface.\n */\n export interface Node {\n ParentScopeId?: string;\n ParentSequence?: number;\n Id?: string;\n Sequence?: number;\n Description?: string;\n ScreenshotUri?: string;\n }\n \n /**\n * Line entity interface.\n */\n export interface Line {\n ChildrenIds?: number[];\n Id?: number;\n Name?: string;\n Description?: string;\n IsLinked?: boolean;\n LineMetadataId?: number;\n Artifacts?: ArtifactSummary[];\n MetadataPropertyValues?: MetadataPropertyValue[];\n }\n \n /**\n * MetadataText entity interface.\n */\n export interface MetadataText {\n Id?: string;\n Text?: string;\n }\n \n /**\n * MetadataHypertextLink entity interface.\n */\n export interface MetadataHypertextLink {\n Id?: string;\n DisplayName?: string;\n Url?: string;\n }\n \n /**\n * Scope entity interface.\n */\n export interface Scope extends Node {\n Name?: string;\n ScopeTypeValue: number;\n Children?: Node[];\n ActiveCount: number;\n IsForm?: boolean;\n }\n \n /**\n * Framework entity interface.\n */\n export interface Framework {\n Lines?: Line[];\n Id?: number;\n Name?: string;\n Access?: string;\n Hierarchy?: Line[];\n Publisher?: string;\n }\n \n /**\n * UserAction entity interface.\n */\n export interface UserAction extends Node {\n SystemGenerated?: boolean;\n GlobalId?: string;\n Annotations?: Annotation[];\n }\n \n /**\n * TaskUserAction entity interface.\n */\n export interface TaskUserAction extends UserAction {\n UserActionTypeValue: number;\n Name?: string;\n Comment?: string;\n TaskId?: string;\n }\n \n /**\n * FormUserAction entity interface.\n */\n export interface FormUserAction extends UserAction {\n FormId?: string;\n ControlLabel?: string;\n }\n \n /**\n * CommandUserAction entity interface.\n */\n export interface CommandUserAction extends FormUserAction {\n ReturnTypeValue: number;\n CommandName?: string;\n ControlName?: string;\n ControlType?: string;\n Arguments?: CommandArgument[];\n LabelId?: string;\n ReturnValue?: string;\n }\n \n /**\n * Annotation entity interface.\n */\n export interface Annotation {\n Description?: string;\n }\n \n /**\n * Recording entity interface.\n */\n export interface Recording {\n Scopes?: Scope[];\n FormContextEntries?: FormContextDictionaryEntry[];\n RootScope?: Scope;\n Name?: string;\n Description?: string;\n }\n \n /**\n * FormContextDictionaryEntry entity interface.\n */\n export interface FormContextDictionaryEntry {\n FormId?: string;\n FormContext?: FormContext;\n }\n \n /**\n * ProductVariantResolutionContext entity interface.\n */\n export interface ProductVariantResolutionContext {\n }\n \n /**\n * ProductVariantResolutionOnKitSelectionContext entity interface.\n */\n export interface ProductVariantResolutionOnKitSelectionContext extends ProductVariantResolutionContext {\n SelectedComponents?: ComponentInSlotRelation[];\n SlotId?: number;\n }\n \n /**\n * WarehouseLocation entity interface.\n */\n export interface WarehouseLocation {\n LocationId?: string;\n IsLicensePlateControlled: boolean;\n ProfileId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalTransaction entity interface.\n */\n export interface FiscalTransaction {\n CreatedDateTime?: Date;\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n TransDateTime?: Date;\n LineNumber?: number;\n RegisterResponse?: string;\n ReceiptCopy?: boolean;\n RecordGUID?: string;\n RegisterStoreId?: string;\n RegisterTerminalId?: string;\n StaffId?: string;\n RegistrationStatusValue?: number;\n RegistrationProcessId?: string;\n ConnectorGroup?: string;\n ConnectorName?: string;\n ConnectorFunctionalityProfileId?: string;\n RegisterInfo?: string;\n DocumentNumber?: string;\n RegistrationTypeValue?: number;\n ServiceName?: string;\n CountryRegionIsoCode?: string;\n TenderLineAdjustments?: FiscalTransactionTenderLineAdjustment[];\n SalesLineAdjustments?: FiscalTransactionSalesLineAdjustment[];\n ReasonCodeLines?: ReasonCodeLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLine entity interface.\n */\n export interface FulfillmentLine {\n SalesId?: string;\n SalesPersonStoreId?: string;\n SalesPersonId?: string;\n SalesPersonFirstName?: string;\n SalesPersonLastName?: string;\n SalesLineNumber?: number;\n ReceiptId?: string;\n ChannelReferenceId?: string;\n CustomerId?: string;\n CustomerName?: string;\n EmailAddress?: string;\n DeliveryModeCode?: string;\n DocumentStatusValue?: number;\n FulfillmentDeliveryType?: FulfillmentLineDeliveryType;\n DeliveryTypeValue?: number;\n QuantityOrdered?: number;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n QuantityInvoiced?: number;\n QuantityNotInvoiced?: number;\n QuantityNotPacked?: number;\n QuantityNotPicked?: number;\n StoreInventoryTotalQuantity?: number;\n StoreInventoryReservedQuantity?: number;\n StoreInventoryOrderedQuantity?: number;\n ItemId?: string;\n ProductId?: number;\n ProductVariant?: string;\n ItemName?: string;\n SerialNumber?: string;\n FulfillmentStatus?: FulfillmentLineStatus;\n FulfillmentStatusValue?: number;\n UnitOfMeasureSymbol?: string;\n RequestedShipDate?: Date;\n RequestedDeliveryDate?: Date;\n RequestedReceiptDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n CreatedDate?: Date;\n TotalAmount?: number;\n Balance?: number;\n ShippingAddress?: Address;\n DetailedOrderStatusValue?: number;\n DetailedLineStatusValue?: number;\n ChannelTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLineSearchCriteria entity interface.\n */\n export interface FulfillmentLineSearchCriteria {\n CustomerId?: string;\n CustomerName?: string;\n EmailAddress?: string;\n SalesId?: string;\n OrderCreatedStartDate?: Date;\n OrderCreatedEndDate?: Date;\n ReceiptId?: string;\n StoreId?: string;\n ChannelReferenceId?: string;\n RequestedReceiptStartDate?: Date;\n RequestedReceiptEndDate?: Date;\n RequestedDeliveryStartDate?: Date;\n RequestedDeliveryEndDate?: Date;\n FulfillmentStatusValues?: number[];\n DeliveryModeCode?: string;\n WarehouseId?: string;\n LoyaltyCardNumber?: string;\n CustomerPhoneNumber?: string;\n DeliveryTypeValue?: number;\n CustomFilters?: SearchFilter[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Comment entity interface.\n */\n export interface Comment {\n RecordId?: number;\n AuthorStaffId?: string;\n AuthorName?: string;\n Text?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AddressPurpose entity interface.\n */\n export interface AddressPurpose {\n RecordId: number;\n AddressType: number;\n Name?: string;\n Description?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DeliveryChargeLine entity interface.\n */\n export interface DeliveryChargeLine {\n ChargeCode?: string;\n CurrencyCode?: string;\n CalculatedAmount: number;\n Description?: string;\n IsRefundable: boolean;\n IsShipping: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensionPackageDefinition entity interface.\n */\n export interface ExtensionPackageDefinition {\n Name?: string;\n Publisher?: string;\n IsEnabled: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReturnPolicy entity interface.\n */\n export interface ReturnPolicy {\n RecordId: number;\n TenderTypePolicies?: TenderTypePolicy[];\n IsManagerOverrideEnabled: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderTypeAmount entity interface.\n */\n export interface TenderTypeAmount {\n TenderTypeId?: string;\n Amount: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FeatureState entity interface.\n */\n export interface FeatureState {\n Name?: string;\n IsEnabled?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Warranty entity interface.\n */\n export interface Warranty extends SimpleProduct {\n DurationUnitValue?: number;\n Duration?: number;\n ApplicablePriceRangeBaseTypeValue?: number;\n ApplicablePriceRangeMin?: number;\n ApplicablePriceRangeMax?: number;\n }\n \n /**\n * RecallInvoicedSalesLineLookup entity interface.\n */\n export interface RecallInvoicedSalesLineLookup {\n InvoicedLineId: number;\n Quantity: number;\n SerialNumber?: string;\n IgnoreSerialNumberMismatch: boolean;\n ReasonCodeLines?: ReasonCodeLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * WarrantyGroup entity interface.\n */\n export interface WarrantyGroup {\n Warranties?: Warranty[];\n RecordId?: number;\n GroupName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarrantiesMapping entity interface.\n */\n export interface ProductWarrantiesMapping {\n WarrantyGroups?: WarrantyGroup[];\n WarrantableProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLineContextualOperationsMap entity interface.\n */\n export interface FulfillmentLineContextualOperationsMap {\n FulfillmentLine?: FulfillmentLine;\n ApplicableOperationsValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UserAlert entity interface.\n */\n export interface UserAlert {\n AlertSourceIdValue?: number;\n LocalizedMessage?: string;\n IsBlocking?: boolean;\n }\n \n /**\n * CartLineUserAlerts entity interface.\n */\n export interface CartLineUserAlerts {\n LineIndex?: number;\n LineNumber?: number;\n UserAlerts?: UserAlert[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FulfillmentLineUserAlerts entity interface.\n */\n export interface FulfillmentLineUserAlerts {\n SalesId?: string;\n SalesLineNumber?: number;\n UserAlerts?: UserAlert[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerProspect entity interface.\n */\n export interface BusinessPartnerProspect {\n FirstName?: string;\n LastName?: string;\n CompanyName?: string;\n Address?: Address;\n JobTitle?: string;\n Department?: string;\n CompanySize?: number;\n Comments?: string;\n LastOperationId?: string;\n ProspectTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelSearchCriteria entity interface.\n */\n export interface ChannelSearchCriteria {\n SearchLocationValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerOperation entity interface.\n */\n export interface BusinessPartnerOperation {\n TypeValue?: number;\n StatusValue?: number;\n Value?: string;\n Description?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerOperationRequest entity interface.\n */\n export interface BusinessPartnerOperationRequest {\n TypeValue?: number;\n StatusValue?: number;\n CreatedDateTime?: Date;\n Details?: BusinessPartnerOperationRequestDetails;\n UserId?: string;\n UserFirstName?: string;\n UserLastName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptTypesByFormatType entity interface.\n */\n export interface ReceiptTypesByFormatType {\n ReceiptOutputFormatType?: ReceiptOutputFormatType;\n ReceiptTypesValues?: number[];\n }\n \n /**\n * InventoryJournalNameSearchCriteria entity interface.\n */\n export interface InventoryJournalNameSearchCriteria {\n JournalNameIds?: string[];\n DocumentTypeValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AssortedProductIdentity entity interface.\n */\n export interface AssortedProductIdentity {\n ProductId?: number;\n IsRemoteProduct?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductExistenceId entity interface.\n */\n export interface ProductExistenceId {\n ProductId?: number;\n LanguageId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductExistenceCriteria entity interface.\n */\n export interface ProductExistenceCriteria {\n ChannelId?: number;\n CatalogId?: number;\n Ids?: ProductExistenceId[];\n }\n \n /**\n * CountryRegion entity interface.\n */\n export interface CountryRegion {\n CountryRegionId?: string;\n IsoCode?: string;\n ShortName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessVerticalsIndia entity interface.\n */\n export interface BusinessVerticalsIndia {\n RecId: number;\n Name?: string;\n EntityCode?: string;\n Description?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AddressTaxInformationIndia entity interface.\n */\n export interface AddressTaxInformationIndia {\n RecId?: number;\n Name?: string;\n RegistrationLocation?: number;\n Tin?: number;\n Gstin?: number;\n TinRegistrationNumber?: TaxRegistrationNumberIndia;\n GstinRegistrationNumber?: TaxRegistrationNumberIndia;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerTaxInformation entity interface.\n */\n export interface CustomerTaxInformation {\n CustomerId?: string;\n DataAreaId?: string;\n IsForeign?: boolean;\n IsPreferential?: boolean;\n NatureOfAssessee?: string;\n PanNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaxRegistrationNumberIndia entity interface.\n */\n export interface TaxRegistrationNumberIndia {\n RecId?: number;\n RegistrationNumber?: string;\n RegistrationType?: number;\n TaxType?: number;\n Type?: number;\n BusinessVerticals?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChecklistTask entity interface.\n */\n export interface ChecklistTask {\n Version?: string;\n InstructionsVersion?: string;\n AssignedToPersonnelNumbers?: string[];\n AssignedToExternalSubId?: string;\n Id?: string;\n Name?: string;\n Description?: string;\n DueDateTime?: Date;\n DeepLinkTypeValue?: number;\n DeepLink?: string;\n DeepLinkPosOperationName?: string;\n ContactPersonPersonnelNumber?: string;\n Instructions?: string;\n StatusValue?: number;\n CompletionDateTime?: Date;\n ResolvedByPersonnelNumber?: string;\n ChecklistId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * MediaLocation entity interface.\n */\n export interface MediaLocation {\n Uri?: string;\n AltText?: string;\n IsDefault?: boolean;\n IsSelfHosted?: boolean;\n Priority?: number;\n IsAdditionalMedia?: boolean;\n MediaTypeValue?: number;\n DisplayOrder?: number;\n MediaPurpose?: string;\n IsApplicableForChildEntities?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * EmployeeActivity entity interface.\n */\n export interface EmployeeActivity {\n StaffId?: string;\n StaffName?: string;\n Activity?: string;\n ActivityDateTimeOffset?: Date;\n StoreNumber?: string;\n EmployeeActivityTypeValue?: number;\n BreakCategory?: string;\n RecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerRefiner entity interface.\n */\n export interface CustomerRefiner extends SearchRefiner {\n SourceValue?: number;\n Values?: CustomerRefinerValue[];\n }\n \n /**\n * TokenizedPaymentCard entity interface.\n */\n export interface TokenizedPaymentCard {\n IsSwipe?: boolean;\n TenderType?: string;\n CardTokenInfo?: CardTokenInfo;\n Phone?: string;\n Country?: string;\n House?: string;\n Address1?: string;\n Address2?: string;\n City?: string;\n State?: string;\n Zip?: string;\n NameOnCard?: string;\n CardTypeId?: string;\n ExpirationMonth?: number;\n ExpirationYear?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDimensionAvailabilitySearchCriteria entity interface.\n */\n export interface ProductDimensionAvailabilitySearchCriteria {\n RequestedDimensionTypeValue?: number;\n RequestedDimensionTypeValues?: number[];\n MatchingDimensionValues?: ProductDimension[];\n DefaultWarehouseOnly?: boolean;\n FilterByChannelFulfillmentGroup?: boolean;\n DeliveryModeTypeFilterValue?: number;\n CatalogId?: number;\n InventoryAccuracyValue?: number;\n }\n \n /**\n * LineShippingAddress entity interface.\n */\n export interface LineShippingAddress {\n LineId?: string;\n ShippingAddress?: Address;\n }\n \n /**\n * CartDeliveryPreferences entity interface.\n */\n export interface CartDeliveryPreferences {\n HeaderDeliveryPreferenceTypeValues?: number[];\n CartLineDeliveryPreferences?: CartLineDeliveryPreference[];\n }\n \n /**\n * LineDeliverySpecification entity interface.\n */\n export interface LineDeliverySpecification {\n LineId?: string;\n DeliverySpecification?: DeliverySpecification;\n }\n \n /**\n * DeliverySpecification entity interface.\n */\n export interface DeliverySpecification {\n DeliveryModeId?: string;\n DeliveryPreferenceTypeValue?: number;\n DeliveryAddress?: Address;\n RequestedDeliveryDate?: Date;\n PickUpStoreId?: string;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n ElectronicDeliveryEmailAddress?: string;\n ElectronicDeliveryEmailContent?: string;\n ShipFromStoreId?: string;\n ShipFromWarehouseId?: string;\n }\n \n /**\n * OrderSearchCriteria entity interface.\n */\n export interface OrderSearchCriteria {\n CustomerAccountNumber?: string;\n CustomerName?: string;\n EmailAddress?: string;\n LoyaltyCardNumber?: string;\n CustomerPhoneNumber?: string;\n SalesId?: string;\n ReceiptId?: string;\n OrderStatusValues?: number[];\n DocumentStatusValues?: number[];\n StartDateTime?: Date;\n EndDateTime?: Date;\n ChannelReferenceId?: string;\n StoreId?: string;\n OrderType?: number;\n CustomFilters?: SearchFilter[];\n FulfillmentTypeValues?: number[];\n DeliveryMode?: string;\n PickupStartDate?: Date;\n PickupEndDate?: Date;\n PickupTimeslotStartTime?: number;\n PickupTimeslotEndTime?: number;\n BusinessPartnerId?: string;\n ChannelIds?: number[];\n CustomerRequisition?: string;\n SearchOnlyRetailOrders?: boolean;\n }\n \n /**\n * ChecklistSearchCriteria entity interface.\n */\n export interface ChecklistSearchCriteria {\n ChannelId?: number;\n PersonnelNumber?: string;\n ChecklistIds?: string[];\n StatusValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaskSearchCriteria entity interface.\n */\n export interface TaskSearchCriteria {\n ChannelId?: number;\n PersonnelNumber?: string;\n TaskIds?: string[];\n StatusValues?: number[];\n FilterMyTasks: boolean;\n FilterOverdueTasks: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChecklistTaskTeamsIntegrationConfiguration entity interface.\n */\n export interface ChecklistTaskTeamsIntegrationConfiguration {\n IsEnabled?: boolean;\n MicrosoftGraphResource?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReturnCartLine entity interface.\n */\n export interface ReturnCartLine {\n Description?: string;\n ItemId?: string;\n ProductId?: number;\n Quantity?: number;\n ReturnLineNumber?: number;\n ReturnTransactionId?: string;\n SerialNumber?: string;\n IgnoreSerialNumberMismatch?: boolean;\n ReasonCodeLines?: ReasonCodeLine[];\n Price?: number;\n IsPriceKeyedIn?: boolean;\n }\n \n /**\n * TenderDiscountLine entity interface.\n */\n export interface TenderDiscountLine {\n DiscountAmount?: number;\n PaymentAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReceiptRetrievalCriteria entity interface.\n */\n export interface ReceiptRetrievalCriteria {\n IsCopy?: boolean;\n IsRemoteTransaction?: boolean;\n IsPreview?: boolean;\n QueryBySalesId?: boolean;\n ReceiptTypeValue?: number;\n ShiftId?: number;\n ShiftTerminalId?: string;\n HardwareProfileId?: string;\n }\n \n /**\n * CartSearchCriteria entity interface.\n */\n export interface CartSearchCriteria {\n CartId?: string;\n ExpectedCartVersion?: number;\n CustomerAccountNumber?: string;\n IncludeAnonymous?: boolean;\n SuspendedOnly?: boolean;\n CartTypeValue?: number;\n LastModifiedDateTimeFrom?: Date;\n LastModifiedDateTimeTo?: Date;\n }\n \n /**\n * RetrievePaymentResultSettings entity interface.\n */\n export interface RetrievePaymentResultSettings {\n ReturnUrl?: string;\n PaymentConnectorId?: string;\n }\n \n /**\n * SearchReceiptCriteria entity interface.\n */\n export interface SearchReceiptCriteria {\n TransactionId?: string;\n ReceiptTypeValue?: number;\n ReceiptTypesByFormatTypeCollection?: ReceiptTypesByFormatType[];\n IsCopy?: boolean;\n GiftReceiptLineNumbers?: number[];\n }\n \n /**\n * ElectronicAddress entity interface.\n */\n export interface ElectronicAddress {\n AddressTypeValue?: number;\n ExtensibleEAddressType?: ExtensibleElectronicAddressType;\n Address?: string;\n }\n \n /**\n * ChannelReferenceLookupCriteria entity interface.\n */\n export interface ChannelReferenceLookupCriteria {\n ChannelReferenceId?: string;\n SearchLocationValue?: number;\n ChannelReferenceAdditionalLookupCriteria?: ChannelReferenceAdditionalLookupCriteria[];\n }\n \n /**\n * FulfillmentLineParameter entity interface.\n */\n export interface FulfillmentLineParameter {\n SalesId?: string;\n SalesLineNumber?: number;\n Quantity?: number;\n SerialNumber?: string;\n InvoiceDate?: Date;\n PackingDate?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShipFulfillmentLine entity interface.\n */\n export interface ShipFulfillmentLine extends FulfillmentLineParameter {\n ProductId?: number;\n }\n \n /**\n * RejectFulfillmentLine entity interface.\n */\n export interface RejectFulfillmentLine extends FulfillmentLineParameter {\n RejectedQuantity?: number;\n InfoCodeId?: string;\n SubInfoCodeId?: string;\n }\n \n /**\n * ReadChangedProductsSession entity interface.\n */\n export interface ReadChangedProductsSession {\n Id?: string;\n TotalNumberOfProducts?: number;\n NumberOfProductsRead?: number;\n NumberOfProductsReadInCurrentPage?: number;\n NextSynchronizationToken?: string;\n IsInitialSync?: boolean;\n }\n \n /**\n * DeletedListingsResult entity interface.\n */\n export interface DeletedListingsResult {\n HasMorePublishedListings?: boolean;\n DeletedListings?: ListingIdentity[];\n }\n \n /**\n * ProductRating entity interface.\n */\n export interface ProductRating {\n ProductId?: number;\n AverageRating?: number;\n TotalRatings?: number;\n RatingDistribution?: ProductRatingCount[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductDeliveryOptions entity interface.\n */\n export interface ProductDeliveryOptions {\n ProductId?: number;\n DeliveryOptions?: DeliveryOption[];\n }\n \n /**\n * ListingPublishStatus entity interface.\n */\n export interface ListingPublishStatus {\n PublishStatusValue?: number;\n ListingModifiedDateTime?: Date;\n ChannelListingId?: string;\n ChannelId?: number;\n CatalogId?: number;\n ProductId?: number;\n LanguageId?: string;\n AppliedActionValue?: number;\n StatusMessage?: string;\n Tag?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * MediaLocationSearchCriteria entity interface.\n */\n export interface MediaLocationSearchCriteria {\n ProductId: number;\n ChannelId: number;\n CatalogId: number;\n MediaUsageTypeValue: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitLocationSearchCriteria entity interface.\n */\n export interface OrgUnitLocationSearchCriteria {\n OrgUnitNumber?: string;\n OrgUnitName?: string;\n InventoryLocationIds?: string[];\n DeliveryModeTypeFilterValue?: number;\n }\n \n /**\n * StoreHours entity interface.\n */\n export interface StoreHours {\n RegularStoreHours?: RegularStoreHours;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RecallOrderSearchCriteria entity interface.\n */\n export interface RecallOrderSearchCriteria {\n TransactionId?: string;\n Id?: string;\n SearchLocationValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CartPromotions entity interface.\n */\n export interface CartPromotions {\n HeaderPromotions?: string[];\n CartLinePromotions?: CartLinePromotion[];\n }\n \n /**\n * CartPromotionLine entity interface.\n */\n export interface CartPromotionLine {\n LineId?: string;\n Promotion?: Promotion;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemUnit entity interface.\n */\n export interface ItemUnit {\n ItemId?: string;\n VariantInventoryDimensionId?: string;\n Product?: number;\n DistinctProductVariant?: number;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductAvailableQuantity entity interface.\n */\n export interface ProductAvailableQuantity {\n ProductId?: number;\n AvailableQuantity?: number;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OrgUnitAvailabilitySearchCriteria entity interface.\n */\n export interface OrgUnitAvailabilitySearchCriteria {\n OrgUnitName?: string;\n OrgUnitNumber?: string;\n }\n \n /**\n * AffiliationSearchCriteria entity interface.\n */\n export interface AffiliationSearchCriteria {\n FilterTypeValue?: number;\n AffiliationTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InvoiceSearchCriteria entity interface.\n */\n export interface InvoiceSearchCriteria {\n BusinessPartnerId?: string;\n CustomerId?: string;\n InvoiceIds?: string[];\n InvoiceTypeValues?: number[];\n InvoicePaidStatusValues?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InvoiceDetailsSearchCriteria entity interface.\n */\n export interface InvoiceDetailsSearchCriteria {\n InvoiceId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InvoicedSalesLinesSearchCriteria entity interface.\n */\n export interface InvoicedSalesLinesSearchCriteria {\n SalesIds?: string[];\n InvoiceIds?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickAndPackSalesLineParameter entity interface.\n */\n export interface PickAndPackSalesLineParameter {\n SalesLineNumber?: number;\n Quantity?: number;\n }\n \n /**\n * ProductListSearchCriteria entity interface.\n */\n export interface ProductListSearchCriteria {\n CustomerId?: string;\n ProductListId?: string;\n ProductListType?: string;\n }\n \n /**\n * ProjectionDomain entity interface.\n */\n export interface ProjectionDomain {\n ChannelId?: number;\n CatalogId?: number;\n }\n \n /**\n * AffiliationLoyaltyTier entity interface.\n */\n export interface AffiliationLoyaltyTier {\n AffiliationId?: number;\n LoyaltyTierId?: number;\n AffiliationTypeValue?: number;\n ReasonCodeLines?: ReasonCodeLine[];\n CustomerId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PriceLookupContext entity interface.\n */\n export interface PriceLookupContext {\n HeaderContext?: PriceLookupHeaderContext;\n LineContexts?: PriceLookupLineContext[];\n }\n \n /**\n * ProductPromotion entity interface.\n */\n export interface ProductPromotion {\n ProductId?: number;\n ProductDiscounts?: Promotion[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookCustomerSearchCriteria entity interface.\n */\n export interface ClientBookCustomerSearchCriteria {\n FilterByCurrentEmployee?: boolean;\n Refinement?: ClientBookRefinerValue[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookCustomer entity interface.\n */\n export interface ClientBookCustomer {\n CustomerId?: string;\n Name?: string;\n Phone?: string;\n Email?: string;\n StaffId?: string;\n ImageUris?: MediaLocation[];\n Attributes?: CustomerAttribute[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ClientBookChanges entity interface.\n */\n export interface ClientBookChanges {\n Changes?: ClientBookChange[];\n }\n \n /**\n * ChargeCode entity interface.\n */\n export interface ChargeCode {\n Code?: string;\n ModuleTypeValue?: number;\n Description?: string;\n ItemTaxGroupId?: string;\n IsRefundable?: boolean;\n IsShipping?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PaymentMerchantInformation entity interface.\n */\n export interface PaymentMerchantInformation {\n PaymentConnectorPropertiesXml?: string;\n MerchantPropertiesHashValue?: string;\n ServiceAccountId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StoreSafe entity interface.\n */\n export interface StoreSafe {\n SafeNumber?: string;\n Name?: string;\n StoreNumber?: string;\n SafeBalance?: number;\n LastUpdatedTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentReceiptSearchCriteria entity interface.\n */\n export interface InventoryDocumentReceiptSearchCriteria {\n SourceDocumentId?: string;\n SourceDocumentTypeValue?: number;\n WorkDocumentId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria entity interface.\n */\n export interface InventoryDocumentSourceDocumentLineCommitRecordSearchCriteria {\n SourceDocumentRecordId?: number;\n SourceDocumentTypeValue?: number;\n SourceDocumentLineRecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSourceDocumentLineCommitRecord entity interface.\n */\n export interface InventoryDocumentSourceDocumentLineCommitRecord {\n WorkDocumentId?: string;\n LineId?: string;\n SourceDocumentRecordId?: number;\n SourceDocumentTypeValue?: number;\n SourceDocumentLineRecordId?: number;\n StaffId?: string;\n UpdateNowQuantity?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CreateHardwareStationTokenResult entity interface.\n */\n export interface CreateHardwareStationTokenResult {\n HardwareStationToken?: string;\n PairingKey?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ValidateHardwareStationTokenResult entity interface.\n */\n export interface ValidateHardwareStationTokenResult {\n PairingKey?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * MediaBlob entity interface.\n */\n export interface MediaBlob {\n MediaType?: string;\n Content?: string;\n IsDefault?: boolean;\n AltText?: string;\n PictureId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OnlineChannel entity interface.\n */\n export interface OnlineChannel {\n OnlineStoreCustomerTypeValue?: number;\n OnlineChannelName?: string;\n CurrencyCode?: string;\n OnlineStoreAzureB2CProfile?: number;\n CountryRegions?: CountryRegion[];\n EventNotificationProfileId?: string;\n RecordId?: number;\n OMOperatingUnitNumber?: string;\n OrgUnitTypeValue?: number;\n Name?: string;\n DefaultCustomerAccount?: string;\n CategoryHierarchyId?: number;\n InventoryLocationId?: string;\n ChannelProfile?: ChannelProfile;\n ChannelProperties?: ChannelProperty[];\n ChannelLanguages?: ChannelLanguage[];\n Contacts?: OrgUnitContact[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TerminalDataDownloadRequestInfo entity interface.\n */\n export interface TerminalDataDownloadRequestInfo {\n TerminalId?: string;\n RequiresDataInitialization?: boolean;\n HasBeenInitializedBefore?: boolean;\n }\n \n /**\n * DataDownloadParameters entity interface.\n */\n export interface DataDownloadParameters {\n DownloadInterval?: number;\n DownloadSessions?: DownloadSession[];\n FeatureControlList?: RetailSharedConfigurationParameter[];\n DataStore?: CDXDataStore;\n }\n \n /**\n * TerminalDataUploadRequestInfo entity interface.\n */\n export interface TerminalDataUploadRequestInfo {\n TerminalId?: string;\n }\n \n /**\n * DataUploadParameters entity interface.\n */\n export interface DataUploadParameters {\n UploadInterval?: number;\n UploadJobPackageRequests?: UploadJobPackageRequest[];\n FeatureControlList?: RetailSharedConfigurationParameter[];\n DataStore?: CDXDataStore;\n }\n \n /**\n * DownloadSession entity interface.\n */\n export interface DownloadSession {\n Id?: number;\n JobId?: string;\n JobDescription?: string;\n FileSize?: number;\n RowsAffected?: number;\n Checksum?: string;\n DateDownloaded?: string;\n DateRequested?: string;\n DataStoreName?: string;\n StatusValue?: number;\n Message?: string;\n DownloadLink?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OfflineTerminalState entity interface.\n */\n export interface OfflineTerminalState {\n TerminalId?: string;\n State?: string;\n }\n \n /**\n * LoyaltyRewardPointActivity entity interface.\n */\n export interface LoyaltyRewardPointActivity {\n ActivityDate?: Date;\n LoyaltyRewardPointTimelineEntryType?: string;\n ExtensibleLoyaltyRewardPointActivityEntryTypeValue?: number;\n LoyaltyPoints?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CurrencyRequest entity interface.\n */\n export interface CurrencyRequest {\n AmountToConvert?: number;\n CurrencyCode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareStationProfile entity interface.\n */\n export interface HardwareStationProfile {\n RecordId?: number;\n HardwareStationId?: string;\n HardwareStationTypeValue?: number;\n HardwareProfileId?: string;\n HardwareStationName?: string;\n HardwareStationDescription?: string;\n HardwareStationUrl?: string;\n HardwareStationHostName?: string;\n HardwareStationEftTerminalId?: string;\n HardwareConfigurations?: HardwareConfigurations;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyCardSearchCriteria entity interface.\n */\n export interface LoyaltyCardSearchCriteria {\n ChannelId: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * NameValuePair entity interface.\n */\n export interface NameValuePair {\n Name?: string;\n Value?: string;\n }\n \n /**\n * LinkToExistingCustomerResult entity interface.\n */\n export interface LinkToExistingCustomerResult {\n EmailAddress?: string;\n ExternalIdentityProvider?: string;\n ExternalIdentityLinkRecordId?: number;\n }\n \n /**\n * OfflineSyncStatsLine entity interface.\n */\n export interface OfflineSyncStatsLine {\n IsUploadJob?: boolean;\n JobDescription?: string;\n LastSyncDateTime?: Date;\n Status?: string;\n FileSize?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StorageAccessToken entity interface.\n */\n export interface StorageAccessToken {\n Url?: string;\n SasKey?: string;\n }\n \n /**\n * TaskGuidesSearchResult entity interface.\n */\n export interface TaskGuidesSearchResult {\n Lines?: Line[];\n FrameworkPublisherName?: string;\n FrameworkName?: string;\n }\n \n /**\n * AuditEvent entity interface.\n */\n export interface AuditEvent {\n EventId?: number;\n EventIdString?: string;\n Channel?: number;\n Store?: string;\n Terminal?: string;\n UploadTypeValue?: number;\n EventTypeValue?: number;\n EventDateTime?: Date;\n DurationInMilliseconds?: number;\n Source?: string;\n EventMessage?: string;\n LogLevel?: string;\n LogLevelValue?: number;\n Staff?: string;\n ShiftId?: number;\n ClosedShiftId?: number;\n ReferenceId?: number;\n RefChannel?: number;\n RefStore?: string;\n RefTerminal?: string;\n RefTransactionId?: string;\n AuditEventTypeValue?: number;\n FiscalTransactions?: AuditEventFiscalTransaction[];\n FiscalRegistrationLines?: AuditEventFiscalRegistrationLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ItemAvailability entity interface.\n */\n export interface ItemAvailability {\n ItemId?: string;\n VariantInventoryDimensionId?: string;\n InventoryLocationId?: string;\n ProductId?: number;\n AvailableQuantity?: number;\n OrderedSum?: number;\n PhysicalReserved?: number;\n UnitOfMeasure?: string;\n InventoryUnitOfMeasure?: string;\n InventoryUnitOfMeasureDescription?: string;\n ProductDimensions?: ProductDimension[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryAvailableToPromise entity interface.\n */\n export interface InventoryAvailableToPromise extends ItemAvailability {\n Date?: string;\n }\n \n /**\n * NotificationItem entity interface.\n */\n export interface NotificationItem {\n Action?: number;\n ActionName?: string;\n NotificationDetails?: NotificationDetail[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationDocumentRetrievalCriteria entity interface.\n */\n export interface FiscalIntegrationDocumentRetrievalCriteria {\n TransactionId?: string;\n IsRemoteTransaction?: boolean;\n QueryBySalesId?: boolean;\n FiscalRegistrationEventTypeValue?: number;\n ShiftId?: number;\n ShiftTerminalId?: string;\n DocumentContext?: FiscalIntegrationDocumentContext;\n }\n \n /**\n * FiscalIntegrationDocument entity interface.\n */\n export interface FiscalIntegrationDocument {\n Document?: string;\n DocumentGenerationResultTypeValue?: number;\n FiscalConnectorTechnicalProfile?: FiscalIntegrationTechnicalProfile;\n DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n SequentialSignatureDataContext?: FiscalIntegrationSignatureDataContext;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationRegistrationResult entity interface.\n */\n export interface FiscalIntegrationRegistrationResult {\n TransactionID?: string;\n AuditEventId?: string;\n Response?: string;\n SubmittedDocument?: string;\n RegisterInfo?: string;\n RegistrationStatusValue?: number;\n FiscalRegistrationEventTypeValue?: number;\n DocumentAdjustment?: FiscalIntegrationDocumentAdjustment;\n ReasonCodeLines?: ReasonCodeLine[];\n SequentialSignatureData?: FiscalIntegrationSequentialSignatureData;\n }\n \n /**\n * FiscalIntegrationRegistrationProcess entity interface.\n */\n export interface FiscalIntegrationRegistrationProcess {\n RecordId?: number;\n RegistrationProcessId?: string;\n Description?: string;\n ModeValue?: number;\n RegistrationProcessLines?: FiscalIntegrationRegistrationProcessLine[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationSupportedEvents entity interface.\n */\n export interface FiscalIntegrationSupportedEvents {\n FunctionalityProfileGroupId?: string;\n SupportedFiscalEventTypes?: number[];\n SupportedNonFiscalEventTypes?: number[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationTechnicalProfile entity interface.\n */\n export interface FiscalIntegrationTechnicalProfile {\n ProfileId?: string;\n Description?: string;\n ConnectorName?: string;\n ConnectorTypeValue?: number;\n ConnectorLocationValue?: number;\n TechnicalProfile?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummary entity interface.\n */\n export interface FiscalIntegrationFiscalRegistrationProcessSummary {\n RegistrationProcessId?: string;\n FiscalRegistrationProcessSummaryLines?: FiscalIntegrationFiscalRegistrationProcessSummaryLine[];\n ErrorCode?: number;\n }\n \n /**\n * FiscalIntegrationTechnicalProfileSearchCriteria entity interface.\n */\n export interface FiscalIntegrationTechnicalProfileSearchCriteria {\n ExcludeOptionalProcessLines?: boolean;\n FunctionalityProfileGroupIds?: string[];\n }\n \n /**\n * FiscalIntegrationServiceInfo entity interface.\n */\n export interface FiscalIntegrationServiceInfo {\n ServiceName?: string;\n ServiceProperties?: string;\n }\n \n /**\n * FiscalIntegrationServiceStatus entity interface.\n */\n export interface FiscalIntegrationServiceStatus {\n IsReady?: boolean;\n }\n \n /**\n * FiscalIntegrationServiceCommunicationResult entity interface.\n */\n export interface FiscalIntegrationServiceCommunicationResult {\n Response?: string;\n CommunicationResultTypeValue?: number;\n FailureDetails?: FiscalIntegrationServiceFailureDetails;\n FiscalIntegrationServiceInfo?: string;\n UserNotificationMessage?: string;\n }\n \n /**\n * FiscalIntegrationSequentialSignatureData entity interface.\n */\n export interface FiscalIntegrationSequentialSignatureData {\n LastRegisterResponse?: string;\n SequenceKey?: string;\n IsOffline?: boolean;\n SequentialNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DiscountsSearchCriteria entity interface.\n */\n export interface DiscountsSearchCriteria {\n ChannelId?: number;\n Keyword?: string;\n IsDiscountCodeRequired?: boolean;\n StartDate?: Date;\n EndDate?: Date;\n IncludeDisabledDiscount?: boolean;\n ExcludeTenderDiscount?: boolean;\n DiscountOfferTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Promotion entity interface.\n */\n export interface Promotion {\n OfferId?: string;\n OfferName?: string;\n PeriodicDiscountTypeValue?: number;\n IsDiscountCodeRequired?: boolean;\n ValidationPeriodId?: string;\n AdditionalRestrictions?: string;\n Description?: string;\n ValidFromDate?: Date;\n ValidToDate?: Date;\n ValidationPeriod?: ValidationPeriod;\n CouponCodes?: string[];\n DateValidationTypeValue?: number;\n AreCouponsActiveOnSameDate?: boolean;\n AreCouponsExpiredOnSameDate?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CategoryPathLookup entity interface.\n */\n export interface CategoryPathLookup {\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CategoryPathResult entity interface.\n */\n export interface CategoryPathResult {\n ProductId?: number;\n CategoryPath?: CategoryPath[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PickupTimeslotAvailabilitySearchCriteria entity interface.\n */\n export interface PickupTimeslotAvailabilitySearchCriteria {\n DeliveryModeCode?: string;\n StoreId?: string;\n StartDate?: Date;\n EndDate?: Date;\n SearchOptionValue?: number;\n }\n \n /**\n * PickupTimeslotAvailability entity interface.\n */\n export interface PickupTimeslotAvailability {\n AvailableCapacity?: number;\n StartDateTime?: Date;\n EndDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CheckInForOrderPickupConfirmation entity interface.\n */\n export interface CheckInForOrderPickupConfirmation {\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesOrderConfirmedShipDateChange entity interface.\n */\n export interface SalesOrderConfirmedShipDateChange {\n SalesId?: string;\n ConfirmedShipDate?: Date;\n LineChanges?: SalesLineConfirmedShipDateChange[];\n }\n \n /**\n * OrderCancellationResult entity interface.\n */\n export interface OrderCancellationResult {\n DocumentOperationCommitResultValue?: number;\n DocumentOperationCommitResultCodeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * VendorSearchCriteria entity interface.\n */\n export interface VendorSearchCriteria {\n SearchText?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Vendor entity interface.\n */\n export interface Vendor {\n RecordId?: number;\n AccountNumber?: string;\n PartyId?: number;\n DataAreaId?: string;\n Name?: string;\n NameAlias?: string;\n PartyNumber?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * VendorValidationResult entity interface.\n */\n export interface VendorValidationResult {\n Message?: string;\n VendorValidationResultLevelValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CopilotResponse entity interface.\n */\n export interface CopilotResponse {\n Content?: string;\n Disclaimer?: string;\n LastRefreshDatetime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * OnlineChannelAzureB2CConfiguration entity interface.\n */\n export interface OnlineChannelAzureB2CConfiguration {\n Name?: string;\n Description?: string;\n TenantName?: string;\n SignInSignupPolicyId?: string;\n PasswordResetPolicyId?: string;\n SignUpPolicyId?: string;\n EditProfilePolicyId?: string;\n LoginDomainName?: string;\n Scope?: string;\n ApplicationId?: string;\n ApplicationSecret?: string;\n IsDefault?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensionProfile entity interface.\n */\n export interface ExtensionProfile {\n ExtensionServiceUrl?: string;\n AttachedServices?: AttachedService[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelInventoryConfiguration entity interface.\n */\n export interface ChannelInventoryConfiguration {\n RecordId?: number;\n ChannelId?: string;\n AllowTransferOrderOverDelivery?: boolean;\n AllowTransferOrderUnderDelivery?: boolean;\n UserLocationProfileId?: string;\n InventoryProductAttributeRecordId?: number;\n InventoryOutOfStockAttributeValueText?: string;\n ProductAvailabilitySortableAttributeRecordId?: number;\n SkipQuantityInputWhenScanBarcode?: boolean;\n UseInventoryVisibilityServiceAsDataSource?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelMerchandisingConfiguration entity interface.\n */\n export interface ChannelMerchandisingConfiguration {\n RecordId?: number;\n ChannelId?: string;\n EnableMultipleUnitsOfMeasure?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelPurchaseConfiguration entity interface.\n */\n export interface ChannelPurchaseConfiguration {\n RecordId?: number;\n ChannelId?: string;\n AllowOverDelivery?: boolean;\n AllowSubDelivery?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryJournalName entity interface.\n */\n export interface InventoryJournalName {\n RecordId?: number;\n JournalNameId?: string;\n InventoryJournalTypeValue?: number;\n Description?: string;\n DefaultAdjustmentTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ShiftRetrievalCriteria entity interface.\n */\n export interface ShiftRetrievalCriteria {\n ShiftStatusValue?: number;\n FilterByUserRole?: boolean;\n IncludeAllShiftsForStore?: boolean;\n }\n \n /**\n * UserDefinedSecretCertificateResult entity interface.\n */\n export interface UserDefinedSecretCertificateResult {\n CertificateData?: string;\n }\n \n /**\n * TerminalInfo entity interface.\n */\n export interface TerminalInfo {\n TerminalId?: string;\n DeviceNumber?: string;\n Name?: string;\n DeviceType?: number;\n ActivationStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerTimelineItemTypeMap entity interface.\n */\n export interface CustomerTimelineItemTypeMap {\n EntityType?: string;\n Types?: CustomerTimelineItemType[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerTimelineRefiner entity interface.\n */\n export interface CustomerTimelineRefiner {\n RefinedResultsCount?: number;\n EntityType?: string;\n TypeId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerTitle entity interface.\n */\n export interface CustomerTitle {\n Text?: string;\n RecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarehouse entity interface.\n */\n export interface ProductWarehouse {\n ProductId?: number;\n InventLocationId?: string;\n DataAreaId?: string;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarehouseInventoryInformation entity interface.\n */\n export interface ProductWarehouseInventoryInformation {\n ProductWarehouseInventoryAvailabilities?: ProductWarehouseInventoryAvailability[];\n AggregatedProductInventoryAvailabilities?: ProductInventoryAvailability[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarehouseQuantity entity interface.\n */\n export interface ProductWarehouseQuantity {\n ProductId?: number;\n InventoryLocationId?: string;\n PhysicalInventory?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UpdateProductWarehouseAvailabilityResult entity interface.\n */\n export interface UpdateProductWarehouseAvailabilityResult {\n SuccessfulUpdates?: InventoryQuantity[];\n FailedUpdates?: InventoryQuantity[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryAvailabilitySearchCriteria entity interface.\n */\n export interface InventoryAvailabilitySearchCriteria {\n ProductIds?: number[];\n DefaultWarehouseOnly?: boolean;\n SearchArea?: SearchArea;\n FilterByChannelFulfillmentGroup?: boolean;\n DeliveryModeTypeFilterValue?: number;\n QuantityUnitTypeValue?: number;\n ProductUnits?: ProductUnit[];\n DataLevelValue?: number;\n }\n \n /**\n * ExtensibleEnumerationContainer entity interface.\n */\n export interface ExtensibleEnumerationContainer {\n TypeName?: string;\n ExtensibleEnumerations?: ExtensibleEnumeration[];\n }\n \n /**\n * PackingSlipData entity interface.\n */\n export interface PackingSlipData {\n PackingSlipId?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CartConfiguration entity interface.\n */\n export interface CartConfiguration {\n ValidateDefaultOrderSettingsPerLine?: boolean;\n IgnoreOrderSettings?: boolean;\n MaxQuantityPerItem?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * EmailReceiptSettings entity interface.\n */\n export interface EmailReceiptSettings {\n ReceiptTypeValue?: number;\n EmailBehaviorValue?: number;\n ReceiptTitle?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationComplianceResult entity interface.\n */\n export interface FiscalIntegrationComplianceResult {\n ErrorMessages?: string[];\n }\n \n /**\n * OrgUnitAddress entity interface.\n */\n export interface OrgUnitAddress extends Address {\n }\n \n /**\n * WarehouseDetails entity interface.\n */\n export interface WarehouseDetails extends Address {\n InventoryLocationId?: string;\n InventorySiteId?: string;\n Latitude?: number;\n Longitude?: number;\n }\n \n /**\n * AttributeSwatch entity interface.\n */\n export interface AttributeSwatch {\n SwatchValue?: string;\n SwatchImageUrl?: string;\n SwatchColorHexCode?: string;\n IsDefault?: boolean;\n ProductImageUrls?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AttributeBooleanValue entity interface.\n */\n export interface AttributeBooleanValue extends AttributeValueBase {\n Value?: boolean;\n }\n \n /**\n * AttributeCurrencyValue entity interface.\n */\n export interface AttributeCurrencyValue extends AttributeValueBase {\n CurrencyValue?: number;\n CurrencyCode?: string;\n }\n \n /**\n * AttributeDateTimeOffsetValue entity interface.\n */\n export interface AttributeDateTimeOffsetValue extends AttributeValueBase {\n Value?: Date;\n }\n \n /**\n * AttributeFloatValue entity interface.\n */\n export interface AttributeFloatValue extends AttributeValueBase {\n Value?: number;\n UnitSymbol?: string;\n }\n \n /**\n * AttributeIntValue entity interface.\n */\n export interface AttributeIntValue extends AttributeValueBase {\n Value?: number;\n UnitSymbol?: string;\n }\n \n /**\n * AttributeMediaLocationValue entity interface.\n */\n export interface AttributeMediaLocationValue extends AttributeValueBase {\n Value?: MediaLocation[];\n }\n \n /**\n * AttributeTextValue entity interface.\n */\n export interface AttributeTextValue extends AttributeValueBase {\n RecId?: number;\n TextValue?: string;\n TextValueTranslations?: TextValueTranslation[];\n }\n \n /**\n * ButtonGridButton entity interface.\n */\n export interface ButtonGridButton {\n Action?: number;\n ActionProperty?: string;\n BackColorAsARGB?: ARGBColor;\n BorderColorAsARGB?: ARGBColor;\n Column?: number;\n ColumnSpan?: number;\n DisplayText?: string;\n FontColorAsARGB?: ARGBColor;\n ButtonId?: number;\n Row?: number;\n RowSpan?: number;\n UseCustomLookAndFeel?: boolean;\n PictureId?: number;\n PictureAsBase64?: string;\n FontStyle?: number;\n FontSize?: number;\n EnableCustomFontForPOS?: boolean;\n HideButtonText?: boolean;\n Tooltip?: string;\n EnableLiveContent?: boolean;\n NotificationContentAlignment?: number;\n ImageAlignment?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ARGBColor entity interface.\n */\n export interface ARGBColor {\n A?: number;\n R?: number;\n G?: number;\n B?: number;\n }\n \n /**\n * PriceLine entity interface.\n */\n export interface PriceLine {\n RecordId?: number;\n Value?: number;\n PriceMethod?: string;\n OriginId?: string;\n PriceChangedByExtensions?: boolean;\n SaleLineNumber?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TradeAgreementPriceLine entity interface.\n */\n export interface TradeAgreementPriceLine extends PriceLine {\n }\n \n /**\n * AttributePricingTradeAgreementPriceLine entity interface.\n */\n export interface AttributePricingTradeAgreementPriceLine extends TradeAgreementPriceLine {\n CanApplyPriceAdjustments?: boolean;\n PricingPriorityNumber?: number;\n }\n \n /**\n * SalesAgreementPriceLine entity interface.\n */\n export interface SalesAgreementPriceLine extends PriceLine {\n SalesAgreementName?: string;\n UnitPrice?: number;\n DiscountAmount?: number;\n DiscountPercent?: number;\n SalesAgreementLineTypeValue?: number;\n PriceUnit?: number;\n EffectiveDate?: Date;\n ExpirationDate?: Date;\n CommittedQuantity?: number;\n RemainingQuantity?: number;\n CommittedAmount?: number;\n RemainingAmount?: number;\n }\n \n /**\n * PriceAdjustmentPriceLine entity interface.\n */\n export interface PriceAdjustmentPriceLine extends PriceLine {\n IsCompoundable?: boolean;\n Concurrency?: string;\n }\n \n /**\n * AttributePricingAdjustmentPriceLine entity interface.\n */\n export interface AttributePricingAdjustmentPriceLine extends PriceAdjustmentPriceLine {\n CanCompoundOnAdjustedPrice?: boolean;\n PricingPriorityNumber?: number;\n AdjustedAmount?: number;\n }\n \n /**\n * ManualPriceLine entity interface.\n */\n export interface ManualPriceLine extends PriceLine {\n ManualPrice?: number;\n UnitOfMeasureSymbol?: string;\n ManualPriceEntryTypeValue?: number;\n }\n \n /**\n * BasePriceLine entity interface.\n */\n export interface BasePriceLine extends PriceLine {\n }\n \n /**\n * ExtensiblePeriodicDiscountOfferType entity interface.\n */\n export interface ExtensiblePeriodicDiscountOfferType extends ExtensibleEnumeration {\n }\n \n /**\n * ChargeLineOverride entity interface.\n */\n export interface ChargeLineOverride {\n OriginalAmount?: number;\n OverrideAmount?: number;\n OverrideReasonDescription?: string;\n OverrideDateTime?: Date;\n UserId?: string;\n }\n \n /**\n * TaxLineGTE entity interface.\n */\n export interface TaxLineGTE extends TaxLine {\n TaxComponent?: string;\n }\n \n /**\n * TaxMeasure entity interface.\n */\n export interface TaxMeasure {\n Path?: string;\n Value?: number;\n DataAreaId?: string;\n SaleLineNumber?: number;\n StoreId?: string;\n TerminalId?: string;\n TransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DetailedLineStatus entity interface.\n */\n export interface DetailedLineStatus extends ExtensibleEnumeration {\n }\n \n /**\n * CardTokenInfo entity interface.\n */\n export interface CardTokenInfo {\n CardToken?: string;\n UniqueCardId?: string;\n ServiceAccountId?: string;\n MaskedCardNumber?: string;\n }\n \n /**\n * DataverseTenderLine entity interface.\n */\n export interface DataverseTenderLine extends TenderLine {\n }\n \n /**\n * PaymentError entity interface.\n */\n export interface PaymentError {\n Code?: string;\n Message?: string;\n IsLocalized?: boolean;\n }\n \n /**\n * ProductAttributeMetadataFlags entity interface.\n */\n export interface ProductAttributeMetadataFlags {\n IsSearchable?: boolean;\n IsRetrievable?: boolean;\n IsQueryable?: boolean;\n IsRefinable?: boolean;\n IsSortable?: boolean;\n IsMultiValue?: boolean;\n IsTokenNormalization?: boolean;\n IsCompleteMatch?: boolean;\n }\n \n /**\n * UnitOfMeasureConversion entity interface.\n */\n export interface UnitOfMeasureConversion {\n ItemId?: string;\n FromUnitOfMeasureId?: string;\n ToUnitOfMeasureId?: string;\n FromUnitOfMeasureSymbol?: string;\n ToUnitOfMeasureSymbol?: string;\n IsBackward?: boolean;\n RecordId?: number;\n ProductRecordId?: number;\n Factor?: number;\n Numerator?: number;\n Denominator?: number;\n InnerOffset?: number;\n OuterOffset?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReturnLabelContent entity interface.\n */\n export interface ReturnLabelContent {\n ReturnLocationText?: string;\n ReturnWarehouseText?: string;\n ReturnReasonText?: string;\n ReturnPalleteText?: string;\n ItemId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LoyaltyRewardPointLine entity interface.\n */\n export interface LoyaltyRewardPointLine {\n TransactionId?: string;\n SaleLineNumber?: number;\n LoyaltyGroupRecordId?: number;\n LoyaltyCardNumber?: string;\n CustomerAccount?: string;\n EntryDate?: Date;\n EntryTime?: number;\n EntryTypeValue?: number;\n ExpirationDate?: Date;\n LineNumber?: number;\n LoyaltyTierRecordId?: number;\n RewardPointRecordId?: number;\n RewardPointAmountQuantity?: number;\n RewardPointId?: string;\n RewardPointIsRedeemable?: boolean;\n RewardPointType?: string;\n RewardPointCurrency?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TrackingInfo entity interface.\n */\n export interface TrackingInfo {\n TrackingNumber?: string;\n ServiceType?: string;\n PackageWeight?: Weight;\n ShippedOnDate?: Date;\n Status?: string;\n DeliveredOnDate?: Date;\n EstimatedDeliveryDate?: Date;\n TrackingUrl?: string;\n PackagingType?: string;\n DestinationAddress?: Address;\n OriginAddress?: Address;\n ShipmentProgress?: ShipmentProgress[];\n ShippingCharge?: number;\n }\n \n /**\n * Weight entity interface.\n */\n export interface Weight {\n Value?: number;\n Unit?: string;\n }\n \n /**\n * ShipmentProgress entity interface.\n */\n export interface ShipmentProgress {\n Location?: Address;\n DateTime?: Date;\n Activity?: string;\n }\n \n /**\n * ShiftKey entity interface.\n */\n export interface ShiftKey {\n ShiftTerminalId?: string;\n ShiftId?: number;\n Store?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * LocalizedText entity interface.\n */\n export interface LocalizedText {\n RecordId?: number;\n LanguageId?: string;\n TextId?: string;\n Text?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AddressFormattingInfo entity interface.\n */\n export interface AddressFormattingInfo {\n AddressComponentNameValue?: number;\n LineNumber?: number;\n IsDataEntryOnly?: boolean;\n NewLine?: boolean;\n Expand?: boolean;\n Inactive?: boolean;\n Special?: boolean;\n NumberOfSpaces?: number;\n Separator?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareConfigurations entity interface.\n */\n export interface HardwareConfigurations {\n CashDrawerConfigurations?: HardwareConfiguration[];\n PrinterConfigurations?: HardwareConfiguration[];\n PinPadConfiguration?: HardwareConfiguration;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * HardwareConfiguration entity interface.\n */\n export interface HardwareConfiguration {\n RecordId?: number;\n HardwareStationRecordId?: number;\n TerminalId?: string;\n DeviceName?: string;\n IPAddress?: string;\n Port?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Printer entity interface.\n */\n export interface Printer {\n Name?: string;\n PrinterType?: number;\n Terminal?: number;\n PrintBehaviorValue?: number;\n ReceiptLayoutId?: string;\n HardwareProfileId?: string;\n ReceiptType?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductQuantityLimitRule entity interface.\n */\n export interface ProductQuantityLimitRule {\n DefaultQuantity?: number;\n MaximumQuantity?: number;\n MinimumQuantity?: number;\n MultipleOfQuantity?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerRefinerValue entity interface.\n */\n export interface CustomerRefinerValue extends SearchRefinerValue {\n RefinerSourceValue?: number;\n }\n \n /**\n * TransferOrderJournalLine entity interface.\n */\n export interface TransferOrderJournalLine {\n ItemId?: string;\n ItemName?: string;\n InventDimId?: string;\n TotalQuantityShipped?: number;\n QuantityShipped?: number;\n TransferQuantity?: number;\n UnitId?: string;\n ConfigId?: string;\n InventSizeId?: string;\n InventColorId?: string;\n InventStyleId?: string;\n ConfigValue?: string;\n SizeValue?: string;\n ColorValue?: string;\n StyleValue?: string;\n DeliveryMethod?: string;\n Barcode?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSourceSerialNumberLine entity interface.\n */\n export interface InventoryDocumentSourceSerialNumberLine {\n SourceDocumentTypeValue?: number;\n SourceDocumentId?: string;\n DocumentLineRecordId?: number;\n InventTransRecordId?: number;\n LineId?: string;\n Quantity?: number;\n SerialNumber?: string;\n StatusValue?: number;\n ProductId?: number;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentSourceTrackingDimensionLine entity interface.\n */\n export interface InventoryDocumentSourceTrackingDimensionLine {\n SourceDocumentTypeValue?: number;\n SourceDocumentId?: string;\n DocumentLineRecordId?: number;\n InventTransRecordId?: number;\n LineId?: string;\n Quantity?: number;\n SerialNumber?: string;\n BatchNumber?: string;\n StatusValue?: number;\n ProductId?: number;\n DataAreaId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryDocumentTrackingDimensionLine entity interface.\n */\n export interface InventoryDocumentTrackingDimensionLine {\n WorkDocumentId?: string;\n WorkDocumentLineId?: string;\n SourceLineId?: string;\n LineId?: string;\n Quantity?: number;\n SerialNumber?: string;\n BatchNumber?: string;\n StatusValue?: number;\n ProductId?: number;\n ModifiedDateTime?: Date;\n SourceDocumentRecordId?: number;\n SourceDocumentTypeValue?: number;\n SourceDocumentLineRecordId?: number;\n SourceLine?: InventoryDocumentSourceTrackingDimensionLine;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitTransactionLine entity interface.\n */\n export interface KitTransactionLine {\n ItemId?: string;\n Quantity?: number;\n InventoryDimensionId?: string;\n ProductId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * StoreAddressBook entity interface.\n */\n export interface StoreAddressBook {\n AddressBookId?: number;\n StoreId?: number;\n AddressBookTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TenderDetail entity interface.\n */\n export interface TenderDetail {\n LineNumber?: number;\n Amount?: number;\n AmountInForeignCurrency?: number;\n ForeignCurrencyExchangeRate?: number;\n ForeignCurrency?: string;\n BankBagNumber?: string;\n TenderTypeId?: string;\n TenderRecount?: number;\n DenominationDetails?: DenominationDetail[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DenominationDetail entity interface.\n */\n export interface DenominationDetail {\n Type?: number;\n Currency?: string;\n DenominationAmount?: number;\n QuantityDeclared?: number;\n AmountDeclared?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesOrderLookup entity interface.\n */\n export interface SalesOrderLookup {\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesOrderLookupByTransactionId entity interface.\n */\n export interface SalesOrderLookupByTransactionId extends SalesOrderLookup {\n TransactionId?: string;\n ChannelId?: number;\n StoreId?: string;\n TerminalId?: string;\n }\n \n /**\n * SalesOrderLookupBySalesId entity interface.\n */\n export interface SalesOrderLookupBySalesId extends SalesOrderLookup {\n SalesId?: string;\n }\n \n /**\n * ButtonGridZone entity interface.\n */\n export interface ButtonGridZone {\n ButtonGridId?: string;\n ZoneId?: string;\n ZoneName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ImageZone entity interface.\n */\n export interface ImageZone {\n PictureId?: number;\n PictureAsBase64?: string;\n ZoneId?: string;\n ZoneName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReportZone entity interface.\n */\n export interface ReportZone {\n ReportRecordId?: number;\n ZoneId?: string;\n ZoneName?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesInvoiceLine entity interface.\n */\n export interface SalesInvoiceLine {\n RecordId?: number;\n ItemId?: string;\n ProductId?: number;\n ProductName?: string;\n InventDimensionId?: string;\n InventTransactionId?: string;\n Quantity?: number;\n Price?: number;\n DiscountPercent?: number;\n DiscountAmount?: number;\n BatchId?: string;\n NetAmount?: number;\n Site?: string;\n Warehouse?: string;\n SerialId?: string;\n ColorId?: string;\n SizeId?: string;\n StyleId?: string;\n ConfigId?: string;\n ColorName?: string;\n SizeName?: string;\n StyleName?: string;\n ConfigName?: string;\n SalesTaxGroup?: string;\n ItemTaxGroup?: string;\n SalesMarkup?: number;\n TotalDiscount?: number;\n TotalPercentageDiscount?: number;\n LineDiscount?: number;\n PeriodicDiscount?: number;\n PeriodicPercentageDiscount?: number;\n LineManualDiscountPercentage?: number;\n LineManualDiscountAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ReportRow entity interface.\n */\n export interface ReportRow {\n RowData?: CommerceProperty[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FormAnnotation entity interface.\n */\n export interface FormAnnotation extends Annotation {\n MenuItemLabel?: string;\n MenuItemName?: string;\n MenuItemType?: string;\n }\n \n /**\n * TaskGuideAnnotation entity interface.\n */\n export interface TaskGuideAnnotation extends Annotation {\n RecordingValueType?: string;\n Title?: string;\n ExampleText?: string;\n Hidden?: boolean;\n GlobalId?: string;\n }\n \n /**\n * CommandArgument entity interface.\n */\n export interface CommandArgument {\n Value?: string;\n IsReference?: boolean;\n }\n \n /**\n * PropertyUserAction entity interface.\n */\n export interface PropertyUserAction extends FormUserAction {\n Value?: string;\n ValueLabel?: string;\n PropertyName?: string;\n ControlName?: string;\n ControlType?: string;\n UserActionType?: string;\n IsReference?: boolean;\n LabelId?: string;\n }\n \n /**\n * InfoUserAction entity interface.\n */\n export interface InfoUserAction extends UserAction {\n FormId?: string;\n ControlLabel?: string;\n ControlLabelId?: string;\n ControlName?: string;\n Text?: string;\n Notes?: string;\n }\n \n /**\n * MenuItemUserAction entity interface.\n */\n export interface MenuItemUserAction extends UserAction {\n MenuItemName?: string;\n MenuItemType?: string;\n NavigationPath?: string[];\n }\n \n /**\n * ValidationUserAction entity interface.\n */\n export interface ValidationUserAction extends UserAction {\n Name?: string;\n Comment?: string;\n }\n \n /**\n * ArtifactSummary entity interface.\n */\n export interface ArtifactSummary {\n ArtifactType?: string;\n LanguageTags?: string[];\n }\n \n /**\n * MetadataPropertyValue entity interface.\n */\n export interface MetadataPropertyValue {\n PropertyId?: string;\n SingleValue?: string;\n MultiValue?: MetadataText[];\n Tags?: string[];\n ComboBox?: string;\n MultiSelect?: string[];\n Links?: MetadataHypertextLink[];\n }\n \n /**\n * FormContext entity interface.\n */\n export interface FormContext {\n FormID?: string;\n FormName?: string;\n RecordingName?: string;\n HasMetadata?: boolean;\n Sequence?: number;\n Annotations?: Annotation[];\n }\n \n /**\n * ExtensibleFiscalRegistrationType entity interface.\n */\n export interface ExtensibleFiscalRegistrationType extends ExtensibleEnumeration {\n }\n \n /**\n * FiscalTransactionTenderLineAdjustment entity interface.\n */\n export interface FiscalTransactionTenderLineAdjustment {\n TenderLineNumber?: number;\n AdjustmentAmount?: number;\n RecordGuid?: string;\n TransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalTransactionSalesLineAdjustment entity interface.\n */\n export interface FiscalTransactionSalesLineAdjustment {\n SalesLineNumber?: number;\n Exclude?: boolean;\n RecordGuid?: string;\n TransactionId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DetailedOrderStatus entity interface.\n */\n export interface DetailedOrderStatus extends ExtensibleEnumeration {\n }\n \n /**\n * LineValidationResult entity interface.\n */\n export interface LineValidationResult {\n LineId?: string;\n ValidationFailures?: DataValidationFailure[];\n }\n \n /**\n * SalesAffiliationLoyaltyTier entity interface.\n */\n export interface SalesAffiliationLoyaltyTier extends AffiliationLoyaltyTier {\n TransactionId?: string;\n ChannelId?: number;\n TerminalId?: string;\n ReceiptId?: string;\n StaffId?: string;\n }\n \n /**\n * TaxViewLine entity interface.\n */\n export interface TaxViewLine {\n TaxId?: string;\n TaxAmount?: number;\n }\n \n /**\n * Coupon entity interface.\n */\n export interface Coupon {\n CodeId?: string;\n Code?: string;\n DiscountOfferId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerAccountDepositLine entity interface.\n */\n export interface CustomerAccountDepositLine {\n Amount?: number;\n CustomerAccount?: string;\n Comment?: string;\n StoreNumber?: string;\n Terminal?: string;\n Shift?: string;\n TransactionStatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * Note entity interface.\n */\n export interface Note {\n Title?: string;\n Description?: string;\n StaffId?: string;\n RestrictionValue?: number;\n DocuRefRecId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CustomerAttribute entity interface.\n */\n export interface CustomerAttribute {\n AttributeValue?: CommercePropertyValue;\n Units?: string;\n RecordId?: number;\n Name?: string;\n KeyName?: string;\n DataTypeValue?: number;\n Attribute?: number;\n NameTranslations?: TextValueTranslation[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ContactInfo entity interface.\n */\n export interface ContactInfo {\n AddressTypeValue?: number;\n RecordId?: number;\n PartyLocationRecordId?: number;\n PartyRecordId?: number;\n PartyNumber?: string;\n Description?: string;\n Value?: string;\n ValueExtension?: string;\n LogisticsLocationId?: string;\n LogisticsLocationRecordId?: number;\n ParentLocation?: number;\n IsPrimary?: boolean;\n IsMobilePhone?: boolean;\n IsPrivate?: boolean;\n IsOptedInMarketing?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryQuantities entity interface.\n */\n export interface InventoryQuantities {\n UnitOfMeasure?: string;\n QuantityNotProcessed?: number;\n QuantityReserved?: number;\n QuantityPicked?: number;\n QuantityPacked?: number;\n QuantityInvoiced?: number;\n QuantityOrdered?: number;\n QuantityCanceled?: number;\n QuantityReturned?: number;\n }\n \n /**\n * DeliveryInformation entity interface.\n */\n export interface DeliveryInformation {\n DeliveryMode?: string;\n DeliveryAddress?: Address;\n DeliveryDate?: Date;\n PickupTimeslotStartDateTime?: Date;\n PickupTimeslotEndDateTime?: Date;\n }\n \n /**\n * ShiftTaxLine entity interface.\n */\n export interface ShiftTaxLine {\n TaxCode?: string;\n TaxAmount?: number;\n TaxRate?: number;\n NetAmount?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * TaxRegistration entity interface.\n */\n export interface TaxRegistration {\n RecordId?: number;\n Name?: string;\n CountryRegionId?: string;\n IsRegistrationNumberUnique?: boolean;\n IsPrimaryAddressRestricted?: boolean;\n TypeApplicabilityRuleRecordId?: number;\n TypeValue?: number;\n Description?: string;\n DirPartyLocationRecordId?: number;\n RegistrationNumber?: string;\n ValidFrom?: Date;\n ValidTo?: Date;\n Issuer?: string;\n IssueDate?: Date;\n Section?: string;\n DirectoryPartyRecordId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelTaxRegistration entity interface.\n */\n export interface ChannelTaxRegistration extends TaxRegistration {\n ChannelId?: number;\n }\n \n /**\n * LinkedProduct entity interface.\n */\n export interface LinkedProduct {\n ProductRecordId?: number;\n LinkedProductRecordId?: number;\n Quantity?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * DisplayOrderInCategory entity interface.\n */\n export interface DisplayOrderInCategory {\n CategoryRecordId?: number;\n DisplayOrder?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RelatedProduct entity interface.\n */\n export interface RelatedProduct {\n ProductRecordId?: number;\n RelatedProductRecordId?: number;\n CatalogId?: number;\n RelationName?: string;\n IsExcludedRelation?: boolean;\n IsDirectRelation?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * KitComponent entity interface.\n */\n export interface KitComponent {\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ChannelReferenceAdditionalLookupCriteria entity interface.\n */\n export interface ChannelReferenceAdditionalLookupCriteria {\n OrderLookupAdditionalCriteriaTypeValue?: number;\n OrderLookupAdditionalCriteriaTypeParameterValue?: string;\n }\n \n /**\n * UserAlertFulfillmentLineParameter entity interface.\n */\n export interface UserAlertFulfillmentLineParameter extends FulfillmentLineParameter {\n ItemId?: string;\n ProductId?: number;\n UnitOfMeasure?: string;\n SerialNumberInLatestFulfillmentTransaction?: string;\n LatestFulfillmentTransactionOperationTypeValue?: number;\n }\n \n /**\n * ListingIdentity entity interface.\n */\n export interface ListingIdentity {\n ProductId?: number;\n LanguageId?: string;\n CatalogId?: number;\n Tag?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductRatingCount entity interface.\n */\n export interface ProductRatingCount {\n Rating?: number;\n Count?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RegularStoreHours entity interface.\n */\n export interface RegularStoreHours {\n MondayOpenTime?: number;\n MondayCloseTime?: number;\n IsClosedOnMonday?: boolean;\n TuesdayOpenTime?: number;\n TuesdayCloseTime?: number;\n IsClosedOnTuesday?: boolean;\n WednesdayOpenTime?: number;\n WednesdayCloseTime?: number;\n IsClosedOnWednesday?: boolean;\n ThursdayOpenTime?: number;\n ThursdayCloseTime?: number;\n IsClosedOnThursday?: boolean;\n FridayOpenTime?: number;\n FridayCloseTime?: number;\n IsClosedOnFriday?: boolean;\n SaturdayOpenTime?: number;\n SaturdayCloseTime?: number;\n IsClosedOnSaturday?: boolean;\n SundayOpenTime?: number;\n SundayCloseTime?: number;\n IsClosedOnSunday?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ValidationPeriod entity interface.\n */\n export interface ValidationPeriod {\n RecordId?: number;\n PeriodId?: string;\n Description?: string;\n ValidFrom?: Date;\n ValidTo?: Date;\n StartingTime?: number;\n EndingTime?: number;\n IsTimeBounded?: number;\n MondayStartingTime?: number;\n MondayEndingTime?: number;\n IsMondayTimeBounded?: number;\n TuesdayStartingTime?: number;\n TuesdayEndingTime?: number;\n IsTuesdayTimeBounded?: number;\n WednesdayStartingTime?: number;\n WednesdayEndingTime?: number;\n IsWednesdayTimeBounded?: number;\n ThursdayStartingTime?: number;\n ThursdayEndingTime?: number;\n IsThursdayTimeBounded?: number;\n FridayStartingTime?: number;\n FridayEndingTime?: number;\n IsFridayTimeBounded?: number;\n SaturdayStartingTime?: number;\n SaturdayEndingTime?: number;\n IsSaturdayTimeBounded?: number;\n SundayStartingTime?: number;\n SundayEndingTime?: number;\n IsSundayTimeBounded?: number;\n IsEndTimeAfterMidnight?: number;\n IsMondayEndTimeAfterMidnight?: number;\n IsTuesdayEndTimeAfterMidnight?: number;\n IsWednesdayEndTimeAfterMidnight?: number;\n IsThursdayEndTimeAfterMidnight?: number;\n IsFridayEndTimeAfterMidnight?: number;\n IsSaturdayEndTimeAfterMidnight?: number;\n IsSundayEndTimeAfterMidnight?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * PriceLookupHeaderContext entity interface.\n */\n export interface PriceLookupHeaderContext {\n CustomerAccountNumber?: string;\n AffiliationLoyaltyTierLines?: AffiliationLoyaltyTier[];\n SalesOrderProperties?: AttributeValueBase[];\n ChannelId?: number;\n }\n \n /**\n * PriceLookupLineContext entity interface.\n */\n export interface PriceLookupLineContext {\n ProductRecordId?: number;\n UnitOfMeasureSymbol?: string;\n InventorySiteId?: string;\n InventoryLocationId?: string;\n DeliveryMode?: string;\n CatalogId?: number;\n SalesLineProperties?: AttributeValueBase[];\n }\n \n /**\n * ClientBookChange entity interface.\n */\n export interface ClientBookChange {\n FromStaffId?: string;\n ToStaffId?: string;\n CustomerId?: string;\n }\n \n /**\n * ChannelProfile entity interface.\n */\n export interface ChannelProfile {\n ProfileProperties?: ChannelProfileProperty[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * RetailSharedConfigurationParameter entity interface.\n */\n export interface RetailSharedConfigurationParameter {\n RecordId?: number;\n Name?: string;\n Value?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CDXDataStore entity interface.\n */\n export interface CDXDataStore {\n Name?: string;\n RecId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * UploadJobPackageRequest entity interface.\n */\n export interface UploadJobPackageRequest {\n JobId?: string;\n RerunUploadSessionId?: number;\n TargetStorage?: string;\n UploadJobDefintion?: string;\n UploadUrl?: string;\n }\n \n /**\n * ExtensibleAuditEventType entity interface.\n */\n export interface ExtensibleAuditEventType extends ExtensibleEnumeration {\n }\n \n /**\n * AuditEventFiscalTransaction entity interface.\n */\n export interface AuditEventFiscalTransaction {\n EventId?: number;\n LineNumber?: number;\n RegisterResponse?: string;\n Store?: string;\n TransDateTime?: Date;\n Terminal?: string;\n UploadType?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AuditEventFiscalRegistrationLine entity interface.\n */\n export interface AuditEventFiscalRegistrationLine {\n EventId?: number;\n RegisterResponse?: string;\n StoreId?: string;\n TransactionDateTime?: Date;\n TerminalId?: string;\n UploadType?: string;\n UploadTypeValue?: number;\n StaffId?: string;\n RecordGuid?: string;\n RegistrationStatusValue?: number;\n RegistrationProcessId?: string;\n ConnectorGroup?: string;\n ConnectorName?: string;\n ConnectorFunctionalityProfileId?: string;\n RegisterInfo?: string;\n CreatedDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * NotificationDetail entity interface.\n */\n export interface NotificationDetail {\n ActionProperty?: string;\n ItemCount?: number;\n DisplayText?: string;\n IsNew?: boolean;\n LastUpdatedDateTimeStr?: string;\n IsSuccess?: boolean;\n IsLiveContentOnly?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationDocumentContext entity interface.\n */\n export interface FiscalIntegrationDocumentContext {\n AuditEvent?: AuditEvent;\n SignatureData?: FiscalIntegrationSequentialSignatureData[];\n }\n \n /**\n * FiscalIntegrationDocumentAdjustment entity interface.\n */\n export interface FiscalIntegrationDocumentAdjustment {\n TenderLineAdjustments?: FiscalTransactionTenderLineAdjustment[];\n SalesLineAdjustments?: FiscalTransactionSalesLineAdjustment[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationSignatureDataContext entity interface.\n */\n export interface FiscalIntegrationSignatureDataContext {\n SequentialSignatureKey?: string;\n SequentialNumber?: number;\n }\n \n /**\n * FiscalIntegrationRegistrationProcessLine entity interface.\n */\n export interface FiscalIntegrationRegistrationProcessLine {\n RegistrationProcessId?: string;\n SequenceNumber?: number;\n Priority?: number;\n ConnectorTypeValue?: number;\n FunctionalityProfileGroupId?: string;\n AllowSkip?: boolean;\n AllowMarkAsRegistered?: boolean;\n AllowPostpone?: boolean;\n Optional?: boolean;\n RegistrationSettings?: FiscalIntegrationRegistrationSettings;\n SupportedFiscalEventTypes?: number[];\n SupportedNonFiscalEventTypes?: number[];\n SequentialKeys?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * FiscalIntegrationRegistrationSettings entity interface.\n */\n export interface FiscalIntegrationRegistrationSettings {\n SkipReasonCode?: string;\n MarkAsRegisteredReasonCode?: string;\n PostponeReasonCode?: string;\n }\n \n /**\n * FiscalIntegrationFiscalRegistrationProcessSummaryLine entity interface.\n */\n export interface FiscalIntegrationFiscalRegistrationProcessSummaryLine {\n RegistrationProcessLine?: FiscalIntegrationRegistrationProcessLine;\n ConnectorName?: string;\n ConnectorTypeValue?: number;\n ConnectorLocationValue?: number;\n ConnectionProperties?: FiscalIntegrationConfigurationProperty[];\n ErrorCode?: number;\n }\n \n /**\n * FiscalIntegrationConfigurationProperty entity interface.\n */\n export interface FiscalIntegrationConfigurationProperty {\n LabelName?: string;\n Value?: string;\n }\n \n /**\n * FiscalIntegrationServiceFailureDetails entity interface.\n */\n export interface FiscalIntegrationServiceFailureDetails {\n FailureTypeValue?: number;\n IsRetryAllowed?: boolean;\n ErrorCode?: string;\n ErrorMessage?: string;\n }\n \n /**\n * CategoryPath entity interface.\n */\n export interface CategoryPath {\n Segments?: CategoryPathSegment[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * CategoryPathSegment entity interface.\n */\n export interface CategoryPathSegment {\n CategoryName?: string;\n CategoryId?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * SalesLineConfirmedShipDateChange entity interface.\n */\n export interface SalesLineConfirmedShipDateChange {\n LineNumber?: number;\n ConfirmedShipDate?: Date;\n }\n \n /**\n * AttachedService entity interface.\n */\n export interface AttachedService {\n BaseUrl?: string;\n ServiceId?: string;\n StatusValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ExtensibleInventoryJournalType entity interface.\n */\n export interface ExtensibleInventoryJournalType extends ExtensibleEnumeration {\n }\n \n /**\n * CustomerTimelineItemType entity interface.\n */\n export interface CustomerTimelineItemType {\n Description?: string;\n TypeId?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductWarehouseInventoryAvailability entity interface.\n */\n export interface ProductWarehouseInventoryAvailability {\n ProductId?: number;\n InventLocationId?: string;\n DataAreaId?: string;\n PhysicalInventory?: number;\n PhysicalReserved?: number;\n TotalAvailable?: number;\n TotalAvailableInventoryLevelLabel?: string;\n TotalAvailableInventoryLevelCode?: string;\n OrderedInTotal?: number;\n PhysicalAvailable?: number;\n PhysicalAvailableInventoryLevelLabel?: string;\n PhysicalAvailableInventoryLevelCode?: string;\n LastInventoryTransactionId?: number;\n UnpostedOnlineOrderedQuantity?: number;\n UnpostedFulfilledQuantity?: number;\n IsInventoryAvailabilityQuantityReturned?: boolean;\n UnprocessedQuantity?: number;\n QuantityUnitTypeValue?: number;\n UnitOfMeasure?: string;\n MaximumPurchasablePhysicalAvailableQuantity?: number;\n MaximumPurchasableTotalAvailableQuantity?: number;\n SumUncountedTransactions?: number;\n IgnoreQuantityUnitType?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * QuantityUnitType entity interface.\n */\n export interface QuantityUnitType extends ExtensibleEnumeration {\n }\n \n /**\n * ProductInventoryAvailability entity interface.\n */\n export interface ProductInventoryAvailability {\n ProductId?: number;\n DataAreaId?: string;\n TotalAvailableQuantity?: number;\n TotalAvailableInventoryLevelLabel?: string;\n TotalAvailableInventoryLevelCode?: string;\n PhysicalAvailableQuantity?: number;\n PhysicalAvailableInventoryLevelLabel?: string;\n PhysicalAvailableInventoryLevelCode?: string;\n QuantityUnitTypeValue?: number;\n UnitOfMeasure?: string;\n MaximumPurchasablePhysicalAvailableQuantity?: number;\n MaximumPurchasableTotalAvailableQuantity?: number;\n IgnoreQuantityUnitType?: boolean;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * InventoryQuantity entity interface.\n */\n export interface InventoryQuantity {\n ProductId: number;\n ItemId?: string;\n DataAreaId?: string;\n ColorId?: string;\n SizeId?: string;\n StyleId?: string;\n ConfigurationId?: string;\n InventoryLocationId?: string;\n InventorySiteId?: string;\n TotalAvailable: number;\n PhysicalAvailable: number;\n PhysicalInventory: number;\n PhysicalReserved: number;\n OrderedInTotal: number;\n }\n \n /**\n * ProductUnit entity interface.\n */\n export interface ProductUnit {\n ProductId?: number;\n UnitOfMeasure?: string;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ParameterSet entity interface.\n */\n export interface ParameterSet {\n }\n \n /**\n * CartLineValidationResults entity interface.\n */\n export interface CartLineValidationResults {\n ValidationResultsByLineId?: CartLineValidationResultsByLineId;\n ValidationFailuresByCartLines?: LineDataValidationFailure[];\n }\n \n /**\n * CommerceException entity interface.\n */\n export interface CommerceException {\n LocalizedMessage?: string;\n ErrorResourceId?: string;\n }\n \n /**\n * DataValidationException entity interface.\n */\n export interface DataValidationException extends CommerceException {\n ValidationResults?: DataValidationFailure[];\n }\n \n /**\n * MissingRequiredReasonCodeException entity interface.\n */\n export interface MissingRequiredReasonCodeException extends DataValidationException {\n RequiredReasonCodes?: ReasonCode[];\n TransactionRequiredReasonCodeIds?: string[];\n ReasonCodeRequirements?: ReasonCodeRequirement[];\n }\n \n /**\n * SecurityException entity interface.\n */\n export interface SecurityException extends CommerceException {\n }\n \n /**\n * DeviceAuthenticationException entity interface.\n */\n export interface DeviceAuthenticationException extends SecurityException {\n }\n \n /**\n * HeadquarterTransactionServiceException entity interface.\n */\n export interface HeadquarterTransactionServiceException extends CommerceException {\n }\n \n /**\n * UserAuthenticationException entity interface.\n */\n export interface UserAuthenticationException extends SecurityException {\n }\n \n /**\n * UserAuthorizationException entity interface.\n */\n export interface UserAuthorizationException extends SecurityException {\n }\n \n /**\n * FeatureNotSupportedException entity interface.\n */\n export interface FeatureNotSupportedException extends CommerceException {\n }\n \n /**\n * CartValidationException entity interface.\n */\n export interface CartValidationException extends DataValidationException {\n }\n \n /**\n * TenderValidationException entity interface.\n */\n export interface TenderValidationException extends DataValidationException {\n TenderTypeId?: string;\n }\n \n /**\n * CommerceDataExchangeException entity interface.\n */\n export interface CommerceDataExchangeException extends CommerceException {\n }\n \n /**\n * ExtensibleEnumerationException entity interface.\n */\n export interface ExtensibleEnumerationException extends CommerceException {\n }\n \n /**\n * TaskManagementException entity interface.\n */\n export interface TaskManagementException extends CommerceException {\n TaskManagementErrors?: TaskManagementError[];\n }\n \n /**\n * TaskManagementServerException entity interface.\n */\n export interface TaskManagementServerException extends TaskManagementException {\n }\n \n /**\n * TaskManagementClientException entity interface.\n */\n export interface TaskManagementClientException extends TaskManagementException {\n }\n \n /**\n * RemoteServiceNotAvailableException entity interface.\n */\n export interface RemoteServiceNotAvailableException extends CommerceException {\n }\n \n /**\n * PaymentException entity interface.\n */\n export interface PaymentException extends CommerceException {\n AdditionalContext?: string;\n PaymentSdkErrors?: PaymentError[];\n }\n \n /**\n * DataValidationFailure entity interface.\n */\n export interface DataValidationFailure {\n ErrorContext?: string;\n ErrorResourceId?: string;\n MemberNames?: string[];\n LocalizedMessage?: string;\n }\n \n /**\n * ItemDiscontinuedException entity interface.\n */\n export interface ItemDiscontinuedException extends CommerceException {\n RemovedUnavailableItemIds?: string;\n }\n \n /**\n * InventoryDocumentLockedByOtherTerminalException entity interface.\n */\n export interface InventoryDocumentLockedByOtherTerminalException extends DataValidationException {\n WorkingTerminalId?: string;\n CurrentTerminalId?: string;\n }\n \n /**\n * InventoryDocumentExceedMaximumQuantityException entity interface.\n */\n export interface InventoryDocumentExceedMaximumQuantityException extends DataValidationException {\n MaximumQuantity: number;\n AllowOverDelivery: boolean;\n }\n \n /**\n * ProductPricingConfigurationException entity interface.\n */\n export interface ProductPricingConfigurationException extends CommerceException {\n ProductPricingConfigurationErrors?: ProductPricingConfigurationError[];\n }\n \n /**\n * CartLineValidationResultsByLineId entity interface.\n */\n export interface CartLineValidationResultsByLineId {\n LineIdToProductBehaviorMap?: KeyValuePair_2OfString_ProductBehavior[];\n ValidationResultsPairs?: LineValidationResult[];\n }\n \n /**\n * CommerceRuntimeCompositionException entity interface.\n */\n export interface CommerceRuntimeCompositionException extends CommerceException {\n }\n \n /**\n * ChecklistTaskValidationException entity interface.\n */\n export interface ChecklistTaskValidationException extends DataValidationException {\n }\n \n /**\n * InsufficientCredentialLengthException entity interface.\n */\n export interface InsufficientCredentialLengthException extends DataValidationException {\n ActualLength?: number;\n MinLength?: number;\n }\n \n /**\n * ExtensibleEnumerationCacheException entity interface.\n */\n export interface ExtensibleEnumerationCacheException extends CommerceException {\n }\n \n /**\n * ExtensionConfigurationException entity interface.\n */\n export interface ExtensionConfigurationException extends CommerceException {\n }\n \n /**\n * StaffPasswordExpiredException entity interface.\n */\n export interface StaffPasswordExpiredException extends UserAuthenticationException {\n StaffId?: string;\n }\n \n /**\n * ChannelConfigurationNotFoundException entity interface.\n */\n export interface ChannelConfigurationNotFoundException extends CommerceException {\n }\n \n /**\n * CopilotServiceException entity interface.\n */\n export interface CopilotServiceException extends CommerceException {\n }\n \n /**\n * PaymentConfigurationException entity interface.\n */\n export interface PaymentConfigurationException extends CommerceException {\n PaymentConfigurationSdkErrors?: string[];\n }\n \n /**\n * SecretConfigurationNotFoundException entity interface.\n */\n export interface SecretConfigurationNotFoundException extends CommerceException {\n }\n \n /**\n * TenderTypePolicy entity interface.\n */\n export interface TenderTypePolicy {\n OriginalTenderType?: string;\n AllowedReturnTenderTypes?: string[];\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * AccountStatementRequest entity interface.\n */\n export interface AccountStatementRequest {\n RequestedUserId?: string;\n IsForFullOrganization?: boolean;\n FromDate?: Date;\n ToDate?: Date;\n RequestingUserEmail?: string;\n DeliveryTypeValue?: number;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * BusinessPartnerOperationRequestDetails entity interface.\n */\n export interface BusinessPartnerOperationRequestDetails {\n InvoiceId?: string;\n AccountStatementStartDateTime?: Date;\n AccountStatementEndDateTime?: Date;\n ExtensionProperties?: CommerceProperty[];\n }\n \n /**\n * ProductPricingConfigurationError entity interface.\n */\n export interface ProductPricingConfigurationError {\n ProductId?: string;\n ErrorResourceId?: string;\n }\n \n /**\n * TaskManagementError entity interface.\n */\n export interface TaskManagementError {\n ErrorResourceId?: string;\n LocalizedMessage?: string;\n TaskId?: string;\n }\n \n /**\n * LineDataValidationFailure entity interface.\n */\n export interface LineDataValidationFailure {\n DataValidationFailure?: DataValidationFailure;\n LineIndex?: number;\n }\n \n /**\n * WrongEndpointException entity interface.\n */\n export interface WrongEndpointException extends CommerceException {\n RedirectUri?: string;\n }\n \n /**\n * BadRequestException entity interface.\n */\n export interface BadRequestException extends CommerceException {\n }\n \n /**\n * ChargeTaxMeasure entity interface.\n */\n export interface ChargeTaxMeasure extends TaxMeasure {\n MarkupLineNumber?: number;\n }\n \n /**\n * KeyValuePair_2OfString_ProductBehavior entity interface.\n */\n export interface KeyValuePair_2OfString_ProductBehavior {\n }\n \n /**\n * CompilationFailedException entity interface.\n */\n export interface CompilationFailedException extends CommerceException {\n }\n \n /**\n * FranceExtensibleAuditEventType entity interface.\n */\n export interface FranceExtensibleAuditEventType extends ExtensibleAuditEventType {\n }\n \n /**\n * AustriaExtensibleAuditEventType entity interface.\n */\n export interface AustriaExtensibleAuditEventType extends ExtensibleAuditEventType {\n }\n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AsyncResult } from './async-result';\nimport { IDataServiceRequest } from './Interfaces';\n\n/**\n * Calls the Retail action\n */\nexport function retailAction(input: IDataServiceRequest, callerContext: unknown): Promise {\n return input.execute(callerContext);\n}\n\nretailAction.prototype = {\n isAction: true,\n isObservable: true\n};\n\nexport function callActionOrExecute(request: IDataServiceRequest, callerContext: any): AsyncResult {\n return callerContext.chainAction ? callerContext.chainAction(retailAction, request) : request.execute(callerContext);\n}\n\nexport function executeAction(request: IDataServiceRequest, context: any): AsyncResult {\n if (!context) {\n throw new Error('context is undefined while executing action');\n }\n\n if (context.callerContext && context.callerContext.chainAction) {\n context.bypassCache && request.overrideCacheType(context.bypassCache);\n context.clientTimeoutInMs && request.setClientTimeoutInMs(context.clientTimeoutInMs);\n return context.callerContext.chainAction(retailAction, request);\n } else if (context.chainAction) {\n return context.chainAction(retailAction, request);\n }\n\n return new AsyncResult((resolve, reject) => {\n request\n .execute(context)\n .then(result => {\n resolve(result);\n })\n .catch(error => {\n reject(error);\n });\n });\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { DataServiceRequest } from './DataServiceRequest';\nimport { IDataServiceOptions, IDataServiceQueryInternal, IDataServiceRequest, IQueryResultSettings } from './Interfaces';\n\n/**\n * Represents a data service query object.\n */\nexport class DataServiceQuery {\n private _query: IDataServiceQueryInternal;\n\n /**\n * Creates a new instance of DataServiceQuery.\n * @param {IDataServiceRequestFactory} dataServiceRequestFactory The data service request factory.\n * @param {string} [entitySet] The entity set name.\n * @param {string} [entityType] The entity type name.\n * @param {any} [returntype] The return type of query.\n * @param {any} [key] Entity key.\n */\n constructor(entitySet?: string, entityType?: string, returnType?: any, key?: any) {\n this._query = {\n entitySet,\n entityType,\n key,\n returnType,\n tokens: {},\n // by default all action will skip reading from cache before making execute call\n options: { bypassCache: 'get', returnEntity: entityType },\n resultSettings: { Paging: {}, Sorting: {} }\n };\n }\n\n /**\n * Query result settings.\n *\n * @param {string} value The value of query result settings.\n */\n public resultSettings(value: IQueryResultSettings): DataServiceQuery {\n if (!value) {\n value = {};\n }\n\n this._query.resultSettings = {};\n this._query.resultSettings.Paging = value.Paging || {};\n this._query.resultSettings.Sorting = value.Sorting || {};\n this._query.resultSettings.count = value.count;\n\n return this;\n }\n\n /**\n * Filter Clause.\n * @param {string} value The filter value.\n */\n public filter(value: string): DataServiceQuery {\n this._query.filterSettings = value;\n\n return this;\n }\n\n /**\n * Top clause\n * @param {string} value The number of top rows to select.\n */\n public top(value: number): DataServiceQuery {\n this._query.resultSettings.Paging.Top = value;\n\n return this;\n }\n\n /**\n * Skip clause\n * @param {string} value The number of rows to skip\n */\n public skip(value: number): DataServiceQuery {\n this._query.resultSettings.Paging.Skip = value;\n\n return this;\n }\n\n /**\n * Expand clause\n * @param {string} propertyName The property name to expand.\n */\n public expand(propertyName: string): DataServiceQuery {\n if (this._query.expands == null) {\n this._query.expands = [];\n }\n\n this._query.expands.push(propertyName);\n return this;\n }\n\n /**\n * Request number of total row available.\n */\n public inlineCount(): DataServiceQuery {\n this._query.inlineCount = true;\n\n return this;\n }\n\n /**\n * Order by clause.\n * @param {string} value The field name for ordering.\n */\n public orderBy(value: string): DataServiceQuery {\n if (!this._query.resultSettings.Sorting.Columns) {\n this._query.resultSettings.Sorting.Columns = [];\n }\n\n this._query.resultSettings.Sorting.Columns.push({ ColumnName: value });\n\n return this;\n }\n\n /**\n * Transforms the request into a create request.\n * @param {string} object The object.\n * @return {IDataServiceRequest} The data service request.\n */\n public create(object: any): IDataServiceRequest {\n this._query.action = 'Create';\n this._query.data = this._createODataParameters(object);\n this._query.options.bypassCache = 'none';\n return this._createRequest();\n }\n\n /**\n * Transforms the request into a read request.\n * @return {IDataServiceRequest} The data service request.\n */\n public read(): IDataServiceRequest {\n if (this._query.key || (this._query.entitySet === 'Customers' && this._query.key !== null && this._query.key !== undefined)) {\n this._query.action = 'Read';\n } else {\n this._query.action = 'ReadAll';\n this._query.isReturnTypeACollection = true;\n }\n\n this._query.options.bypassCache = 'none';\n return this._createRequest();\n }\n\n /**\n * Transforms the request into an update request.\n * @param {string} object The object.\n * @return {IDataServiceRequest} The data service request.\n */\n public update(object: any): IDataServiceRequest {\n this._query.action = 'Update';\n this._query.data = this._createODataParameters(object);\n\n return this._createRequest();\n }\n\n /**\n * Transforms the request into a delete request.\n * @return {DataServiceRequest} The data service request.\n */\n public delete(): IDataServiceRequest {\n this._query.action = 'Delete';\n\n return this._createRequest();\n }\n\n public setGetAllRecords(): void {\n this._query.resultSettings.Paging.Top = -1;\n }\n\n public isGetAllRecords(): boolean {\n return this._query.resultSettings.Paging.Top === -1;\n }\n\n public createDataServiceRequestForOperation(\n operationName: string,\n isAction: boolean,\n returnType: any,\n isReturnTypeACollection: string,\n options: IDataServiceOptions,\n data?: unknown\n ): IDataServiceRequest {\n this._query.returnType = returnType;\n this._query.isAction = isAction;\n this._query.isReturnTypeACollection = isReturnTypeACollection === 'true';\n this._query.action = operationName;\n this._query.data = this._createODataParameters(data);\n this._query.options = { ...{ bypassCache: 'get', returnEntity: 'CUSTOM-ENTITY' }, ...options };\n\n if (this._query.isReturnTypeACollection && !this._query.resultSettings.Paging.Top) {\n // for paginated requests, where we didn't specify page size, set to fetch all records\n this.setGetAllRecords();\n }\n\n return this._createRequest();\n }\n\n private _createODataParameters(data: unknown) {\n return data ? { parameters: data } : undefined;\n }\n\n private _createRequest(): IDataServiceRequest {\n return new DataServiceRequest(this._query);\n }\n}\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { ProductList, ProductListSearchCriteria, ProductListLine } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function productListsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"ProductLists\", \"ProductList\", \"ProductListClass\", key);\n }\n \n export function createCreateInput(entity: ProductList): IDataServiceRequest {\n return productListsQuery().create(entity);\n }\n\n export function createProductListAsync(context: IContext, entity: ProductList): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: ProductList): IDataServiceRequest {\n return productListsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: ProductList): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: ProductList): IDataServiceRequest {\n return productListsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: ProductList): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return productListsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return productListsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, searchCriteria?: ProductListSearchCriteria | null): IDataServiceRequest { \n const query = productListsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, \n 'ProductListClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductList'}, {searchCriteria: searchCriteria });\n } \n \n export function searchAsync(context: IContext, searchCriteria?: ProductListSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, searchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, searchText?: string | null): IDataServiceRequest { \n const query = productListsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductListLines', true, \n 'ProductListLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductListLine'}, {searchText: searchText });\n } \n \n export function getProductListLinesAsync(context: IContext, id: string, searchText?: string | null):AsyncResult {\n const request = createGetProductListLinesInput(context.queryResultSettings, id, searchText);\n return executeAction(request, context);\n } \n \n export function createAddProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest { \n const query = productListsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('AddProductListLines', true, \n 'ProductListLineClass'\n , 'true', {bypassCache: 'get', returnEntity: 'ProductListLine'}, {productListLines: productListLines });\n } \n \n export function addProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult {\n const request = createAddProductListLinesInput(context.queryResultSettings, id, productListLines);\n return executeAction(request, context);\n } \n \n export function createUpdateProductListLinesInput(queryResultSettings: IQueryResultSettings, id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest { \n const query = productListsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('UpdateProductListLines', true, \n 'ProductListLineClass'\n , 'true', {bypassCache: 'get', returnEntity: 'ProductListLine'}, {productListLines: productListLines });\n } \n \n export function updateProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult {\n const request = createUpdateProductListLinesInput(context.queryResultSettings, id, productListLines);\n return executeAction(request, context);\n } \n \n export function createRemoveProductListLinesInput(id: string, productListLines?: ProductListLine[] | null): IDataServiceRequest { \n const query = productListsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveProductListLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {productListLines: productListLines });\n } \n \n export function removeProductListLinesAsync(context: IContext, id: string, productListLines?: ProductListLine[] | null):AsyncResult {\n const request = createRemoveProductListLinesInput(id, productListLines);\n return executeAction(request, context);\n } \n \n export function createCopyCartToProductListInput(id: string, cartId?: string | null, isRewrite?: boolean | null, isQuantityAggregate?: boolean | null): IDataServiceRequest { \n const query = productListsQuery(id);\n return query.createDataServiceRequestForOperation('CopyCartToProductList', true, \n 'ProductListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'ProductList'}, {cartId: cartId, isRewrite: isRewrite, isQuantityAggregate: isQuantityAggregate });\n } \n \n export function copyCartToProductListAsync(context: IContext, id: string, cartId?: string | null, isRewrite?: boolean | null, isQuantityAggregate?: boolean | null):AsyncResult {\n const request = createCopyCartToProductListInput(id, cartId, isRewrite, isQuantityAggregate);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { OrgUnit, TillLayout, SearchStoreCriteria, SearchArea, OrgUnitLocation, OrgUnitLocationSearchCriteria, ChannelConfiguration, StoreHours, ChannelDeliveryOption, OrgUnitAvailability, ItemUnit, ProductDimensionCombination, OrgUnitAvailabilitySearchCriteria, AffiliationSearchCriteria, Affiliation, TerminalInfo } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function orgUnitsQuery(orgUnitNumber?: string): DataServiceQuery {\n var key = (orgUnitNumber) ? { OrgUnitNumber: orgUnitNumber } : null;\n return new DataServiceQuery(\"OrgUnits\", \"OrgUnit\", \"OrgUnitClass\", key);\n }\n \n export function createCreateInput(entity: OrgUnit): IDataServiceRequest {\n return orgUnitsQuery().create(entity);\n }\n\n export function createOrgUnitAsync(context: IContext, entity: OrgUnit): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: OrgUnit): IDataServiceRequest {\n return orgUnitsQuery(entity.OrgUnitNumber).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: OrgUnit): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: OrgUnit): IDataServiceRequest {\n return orgUnitsQuery(entity.OrgUnitNumber).delete();\n }\n\n export function deleteAsync(context: IContext, entity: OrgUnit): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(orgUnitNumber: string): IDataServiceRequest {\n return orgUnitsQuery(orgUnitNumber).read();\n }\n\n export function readAsync(context: IContext, orgUnitNumber: string): AsyncResult {\n const request = createReadAsync(orgUnitNumber);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return orgUnitsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetTillLayoutInput(height?: number | null, width?: number | null, includeImage?: boolean | null): IDataServiceRequest { \n const query = orgUnitsQuery();\n return query.createDataServiceRequestForOperation('GetTillLayout', true, \n 'TillLayoutClass'\n , 'false', {bypassCache: 'none', returnEntity: 'TillLayout'}, {height: height, width: width, includeImage: includeImage });\n } \n \n export function getTillLayoutAsync(context: IContext, height?: number | null, width?: number | null, includeImage?: boolean | null):AsyncResult {\n const request = createGetTillLayoutInput(height, width, includeImage);\n return executeAction(request, context);\n } \n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, storeSearchCriteria?: SearchStoreCriteria | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, \n 'OrgUnitClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnit'}, {storeSearchCriteria: storeSearchCriteria });\n } \n \n export function searchAsync(context: IContext, storeSearchCriteria?: SearchStoreCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, storeSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetOrgUnitLocationsByAreaInput(queryResultSettings: IQueryResultSettings, searchArea?: SearchArea | null, deliveryModeTypeFilter?: number | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrgUnitLocationsByArea', true, \n 'OrgUnitLocationClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitLocation'}, {searchArea: searchArea, deliveryModeTypeFilter: deliveryModeTypeFilter });\n } \n \n export function getOrgUnitLocationsByAreaAsync(context: IContext, searchArea?: SearchArea | null, deliveryModeTypeFilter?: number | null):AsyncResult {\n const request = createGetOrgUnitLocationsByAreaInput(context.queryResultSettings, searchArea, deliveryModeTypeFilter);\n return executeAction(request, context);\n } \n \n export function createSearchOrgUnitLocationsInput(queryResultSettings: IQueryResultSettings, orgUnitLocationSearchCriteria?: OrgUnitLocationSearchCriteria | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchOrgUnitLocations', true, \n 'OrgUnitLocationClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitLocation'}, {orgUnitLocationSearchCriteria: orgUnitLocationSearchCriteria });\n } \n \n export function searchOrgUnitLocationsAsync(context: IContext, orgUnitLocationSearchCriteria?: OrgUnitLocationSearchCriteria | null):AsyncResult {\n const request = createSearchOrgUnitLocationsInput(context.queryResultSettings, orgUnitLocationSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetOrgUnitConfigurationInput(): IDataServiceRequest { \n const query = orgUnitsQuery();\n return query.createDataServiceRequestForOperation('GetOrgUnitConfiguration', true, \n 'ChannelConfigurationClass'\n , 'false', {bypassCache: 'none', returnEntity: 'ChannelConfiguration'}, { });\n } \n \n export function getOrgUnitConfigurationAsync(context: IContext, ):AsyncResult {\n const request = createGetOrgUnitConfigurationInput();\n return executeAction(request, context);\n } \n \n export function createGetStoreHoursInput(storeNumber?: string | null): IDataServiceRequest { \n const query = orgUnitsQuery();\n return query.createDataServiceRequestForOperation('GetStoreHours', false, \n 'StoreHoursClass'\n , 'false', {bypassCache: 'none', returnEntity: 'StoreHours'}, {storeNumber: storeNumber });\n } \n \n export function getStoreHoursAsync(context: IContext, storeNumber?: string | null):AsyncResult {\n const request = createGetStoreHoursInput(storeNumber);\n return executeAction(request, context);\n } \n \n export function createGetChannelDeliveryOptionsInput(queryResultSettings: IQueryResultSettings, channelIds: number[], filterOption?: number | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChannelDeliveryOptions', true, \n 'ChannelDeliveryOptionClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ChannelDeliveryOption'}, {channelIds: channelIds, filterOption: filterOption });\n } \n \n export function getChannelDeliveryOptionsAsync(context: IContext, channelIds: number[], filterOption?: number | null):AsyncResult {\n const request = createGetChannelDeliveryOptionsInput(context.queryResultSettings, channelIds, filterOption);\n return executeAction(request, context);\n } \n \n export function createGetAvailableInventoryInput(queryResultSettings: IQueryResultSettings, itemId?: string | null, variantId?: string | null, barcode?: string | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailableInventory', true, \n 'OrgUnitAvailabilityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {itemId: itemId, variantId: variantId, barcode: barcode });\n } \n \n export function getAvailableInventoryAsync(context: IContext, itemId?: string | null, variantId?: string | null, barcode?: string | null):AsyncResult {\n const request = createGetAvailableInventoryInput(context.queryResultSettings, itemId, variantId, barcode);\n return executeAction(request, context);\n } \n \n export function createGetAvailableInventoryNearbyInput(queryResultSettings: IQueryResultSettings, itemIds?: ItemUnit[] | null, searchArea?: SearchArea | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAvailableInventoryNearby', true, \n 'OrgUnitAvailabilityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {itemIds: itemIds, searchArea: searchArea });\n } \n \n export function getAvailableInventoryNearbyAsync(context: IContext, itemIds?: ItemUnit[] | null, searchArea?: SearchArea | null):AsyncResult {\n const request = createGetAvailableInventoryNearbyInput(context.queryResultSettings, itemIds, searchArea);\n return executeAction(request, context);\n } \n \n export function createGetProductAvailabilityByDimensionsInput(queryResultSettings: IQueryResultSettings, inventLocationIds: string[] | null, productId: number, productDimensionCombinations?: ProductDimensionCombination[] | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAvailabilityByDimensions', true, \n 'OrgUnitAvailabilityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {inventLocationIds: inventLocationIds, productId: productId, productDimensionCombinations: productDimensionCombinations });\n } \n \n export function getProductAvailabilityByDimensionsAsync(context: IContext, inventLocationIds: string[] | null, productId: number, productDimensionCombinations?: ProductDimensionCombination[] | null):AsyncResult {\n const request = createGetProductAvailabilityByDimensionsInput(context.queryResultSettings, inventLocationIds, productId, productDimensionCombinations);\n return executeAction(request, context);\n } \n \n export function createSearchProductAvailabilityInput(queryResultSettings: IQueryResultSettings, productId: number, orgUnitAvailabilitySearchCriteria?: OrgUnitAvailabilitySearchCriteria | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchProductAvailability', true, \n 'OrgUnitAvailabilityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {productId: productId, orgUnitAvailabilitySearchCriteria: orgUnitAvailabilitySearchCriteria });\n } \n \n export function searchProductAvailabilityAsync(context: IContext, productId: number, orgUnitAvailabilitySearchCriteria?: OrgUnitAvailabilitySearchCriteria | null):AsyncResult {\n const request = createSearchProductAvailabilityInput(context.queryResultSettings, productId, orgUnitAvailabilitySearchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchAffiliationsInput(queryResultSettings: IQueryResultSettings, affiliationSearchCriteria?: AffiliationSearchCriteria | null): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchAffiliations', true, \n 'AffiliationClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Affiliation'}, {affiliationSearchCriteria: affiliationSearchCriteria });\n } \n \n export function searchAffiliationsAsync(context: IContext, affiliationSearchCriteria?: AffiliationSearchCriteria | null):AsyncResult {\n const request = createSearchAffiliationsInput(context.queryResultSettings, affiliationSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetTerminalInfoInput(queryResultSettings: IQueryResultSettings, orgUnitNumber: string, deviceType: number): IDataServiceRequest { \n const query = orgUnitsQuery(orgUnitNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTerminalInfo', false, \n 'TerminalInfoClass'\n , 'true', {bypassCache: 'none', returnEntity: 'TerminalInfo'}, {deviceType: deviceType });\n } \n \n export function getTerminalInfoAsync(context: IContext, orgUnitNumber: string, deviceType: number):AsyncResult {\n const request = createGetTerminalInfoInput(context.queryResultSettings, orgUnitNumber, deviceType);\n return executeAction(request, context);\n } \n \n export function createGetProductAvailabilityInput(queryResultSettings: IQueryResultSettings, productId: number): IDataServiceRequest { \n const query = orgUnitsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetProductAvailability', false, \n 'OrgUnitAvailabilityClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrgUnitAvailability'}, {productId: productId });\n } \n \n export function getProductAvailabilityAsync(context: IContext, productId: number):AsyncResult {\n const request = createGetProductAvailabilityInput(context.queryResultSettings, productId);\n return executeAction(request, context);\n } \n \n ","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\nvar toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar internalSort = require('../internals/array-sort');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar FF = require('../internals/environment-ff-version');\nvar IE_OR_EDGE = require('../internals/environment-is-ie-or-edge');\nvar V8 = require('../internals/environment-v8-version');\nvar WEBKIT = require('../internals/environment-webkit-version');\n\nvar test = [];\nvar nativeSort = uncurryThis(test.sort);\nvar push = uncurryThis(test.push);\n\n// IE8-\nvar FAILS_ON_UNDEFINED = fails(function () {\n test.sort(undefined);\n});\n// V8 bug\nvar FAILS_ON_NULL = fails(function () {\n test.sort(null);\n});\n// Old WebKit\nvar STRICT_METHOD = arrayMethodIsStrict('sort');\n\nvar STABLE_SORT = !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 70;\n if (FF && FF > 3) return;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 603;\n\n var result = '';\n var code, chr, value, index;\n\n // generate an array with more 512 elements (Chakra and old V8 fails only in this case)\n for (code = 65; code < 76; code++) {\n chr = String.fromCharCode(code);\n\n switch (code) {\n case 66: case 69: case 70: case 72: value = 3; break;\n case 68: case 71: value = 4; break;\n default: value = 2;\n }\n\n for (index = 0; index < 47; index++) {\n test.push({ k: chr + index, v: value });\n }\n }\n\n test.sort(function (a, b) { return b.v - a.v; });\n\n for (index = 0; index < test.length; index++) {\n chr = test[index].k.charAt(0);\n if (result.charAt(result.length - 1) !== chr) result += chr;\n }\n\n return result !== 'DGBEFHACIJK';\n});\n\nvar FORCED = FAILS_ON_UNDEFINED || !FAILS_ON_NULL || !STRICT_METHOD || !STABLE_SORT;\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (y === undefined) return -1;\n if (x === undefined) return 1;\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n return toString(x) > toString(y) ? 1 : -1;\n };\n};\n\n// `Array.prototype.sort` method\n// https://tc39.es/ecma262/#sec-array.prototype.sort\n$({ target: 'Array', proto: true, forced: FORCED }, {\n sort: function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n\n var array = toObject(this);\n\n if (STABLE_SORT) return comparefn === undefined ? nativeSort(array) : nativeSort(array, comparefn);\n\n var items = [];\n var arrayLength = lengthOfArrayLike(array);\n var itemsLength, index;\n\n for (index = 0; index < arrayLength; index++) {\n if (index in array) push(items, array[index]);\n }\n\n internalSort(items, getSortCompare(comparefn));\n\n itemsLength = lengthOfArrayLike(items);\n index = 0;\n\n while (index < itemsLength) array[index] = items[index++];\n while (index < arrayLength) deletePropertyOrThrow(array, index++);\n\n return array;\n }\n});\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Customer, CustomerSearchCriteria, GlobalCustomer, CustomerSearchByFieldCriteria, CustomerTimelineItem, CustomerRefiner, SalesOrder, OrderShipments, PurchaseHistory, CustomerSearchField, CustomerTimelineItemTypeMap, CustomerTimelineRefiner, CustomerTitle } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function customersQuery(accountNumber?: string): DataServiceQuery {\n var key = (accountNumber !== null && accountNumber !== undefined) ? { AccountNumber: accountNumber } : null;\n return new DataServiceQuery(\"Customers\", \"Customer\", \"CustomerClass\", key);\n }\n \n export function createCreateInput(entity: Customer): IDataServiceRequest {\n return customersQuery().create(entity);\n }\n\n export function createCustomerAsync(context: IContext, entity: Customer): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Customer): IDataServiceRequest {\n return customersQuery(entity.AccountNumber).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Customer): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Customer): IDataServiceRequest {\n return customersQuery(entity.AccountNumber).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Customer): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(accountNumber: string): IDataServiceRequest {\n return customersQuery(accountNumber).read();\n }\n\n export function readAsync(context: IContext, accountNumber: string): AsyncResult {\n const request = createReadAsync(accountNumber);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return customersQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, customerSearchCriteria?: CustomerSearchCriteria | null): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, \n 'GlobalCustomerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'GlobalCustomer'}, {customerSearchCriteria: customerSearchCriteria });\n } \n \n export function searchAsync(context: IContext, customerSearchCriteria?: CustomerSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, customerSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchByFieldsInput(queryResultSettings: IQueryResultSettings, customerSearchByFieldCriteria?: CustomerSearchByFieldCriteria | null): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchByFields', true, \n 'GlobalCustomerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'GlobalCustomer'}, {CustomerSearchByFieldCriteria: customerSearchByFieldCriteria });\n } \n \n export function searchByFieldsAsync(context: IContext, customerSearchByFieldCriteria?: CustomerSearchByFieldCriteria | null):AsyncResult {\n const request = createSearchByFieldsInput(context.queryResultSettings, customerSearchByFieldCriteria);\n return executeAction(request, context);\n } \n \n export function createGetByAccountNumbersInput(queryResultSettings: IQueryResultSettings, accountNumbers: string[] | null, searchLocationValue: number): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByAccountNumbers', true, \n 'CustomerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Customer'}, {accountNumbers: accountNumbers, searchLocationValue: searchLocationValue });\n } \n \n export function getByAccountNumbersAsync(context: IContext, accountNumbers: string[] | null, searchLocationValue: number):AsyncResult {\n const request = createGetByAccountNumbersInput(context.queryResultSettings, accountNumbers, searchLocationValue);\n return executeAction(request, context);\n } \n \n export function createCreateCustomerTimelineItemInput(customerTimelineItem?: CustomerTimelineItem | null): IDataServiceRequest { \n const query = customersQuery();\n return query.createDataServiceRequestForOperation('CreateCustomerTimelineItem', true, \n 'CustomerTimelineItemClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CustomerTimelineItem'}, {customerTimelineItem: customerTimelineItem });\n } \n \n export function createCustomerTimelineItemAsync(context: IContext, customerTimelineItem?: CustomerTimelineItem | null):AsyncResult {\n const request = createCreateCustomerTimelineItemInput(customerTimelineItem);\n return executeAction(request, context);\n } \n \n export function createUpdateCustomerTimelineItemInput(customerTimelineItem?: CustomerTimelineItem | null): IDataServiceRequest { \n const query = customersQuery();\n return query.createDataServiceRequestForOperation('UpdateCustomerTimelineItem', true, \n 'CustomerTimelineItemClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CustomerTimelineItem'}, {customerTimelineItem: customerTimelineItem });\n } \n \n export function updateCustomerTimelineItemAsync(context: IContext, customerTimelineItem?: CustomerTimelineItem | null):AsyncResult {\n const request = createUpdateCustomerTimelineItemInput(customerTimelineItem);\n return executeAction(request, context);\n } \n \n export function createGetRefinersInput(queryResultSettings: IQueryResultSettings, searchCriteria: CustomerSearchCriteria | null, refinerSourceTypes: number[]): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetRefiners', true, \n 'CustomerRefinerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CustomerRefiner'}, {searchCriteria: searchCriteria, refinerSourceTypes: refinerSourceTypes });\n } \n \n export function getRefinersAsync(context: IContext, searchCriteria: CustomerSearchCriteria | null, refinerSourceTypes: number[]):AsyncResult {\n const request = createGetRefinersInput(context.queryResultSettings, searchCriteria, refinerSourceTypes);\n return executeAction(request, context);\n } \n \n export function createGetOrderHistoryInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderHistory', true, \n 'SalesOrderClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, { });\n } \n \n export function getOrderHistoryAsync(context: IContext, accountNumber: string):AsyncResult {\n const request = createGetOrderHistoryInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n } \n \n export function createGetOrderShipmentsHistoryInput(queryResultSettings: IQueryResultSettings, accountNumber: string, nextPageToken?: string | null): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderShipmentsHistory', true, \n 'OrderShipmentsClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrderShipments'}, {nextPageToken: nextPageToken });\n } \n \n export function getOrderShipmentsHistoryAsync(context: IContext, accountNumber: string, nextPageToken?: string | null):AsyncResult {\n const request = createGetOrderShipmentsHistoryInput(context.queryResultSettings, accountNumber, nextPageToken);\n return executeAction(request, context);\n } \n \n export function createPostNonTransactionalActivityLoyaltyPointsInput(loyaltyCardId: string | null, channelId: number, affiliationId: number, activityTypeId?: string | null): IDataServiceRequest { \n const query = customersQuery();\n return query.createDataServiceRequestForOperation('PostNonTransactionalActivityLoyaltyPoints', true, '', '', {bypassCache: 'get', returnEntity: ''}, {loyaltyCardId: loyaltyCardId, channelId: channelId, affiliationId: affiliationId, activityTypeId: activityTypeId });\n } \n \n export function postNonTransactionalActivityLoyaltyPointsAsync(context: IContext, loyaltyCardId: string | null, channelId: number, affiliationId: number, activityTypeId?: string | null):AsyncResult {\n const request = createPostNonTransactionalActivityLoyaltyPointsInput(loyaltyCardId, channelId, affiliationId, activityTypeId);\n return executeAction(request, context);\n } \n \n export function createGetPurchaseHistoryInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPurchaseHistory', false, \n 'PurchaseHistoryClass'\n , 'true', {bypassCache: 'none', returnEntity: 'PurchaseHistory'}, { });\n } \n \n export function getPurchaseHistoryAsync(context: IContext, accountNumber: string):AsyncResult {\n const request = createGetPurchaseHistoryInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n } \n \n export function createGetCustomerSearchFieldsInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerSearchFields', false, \n 'CustomerSearchFieldClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CustomerSearchField'}, { });\n } \n \n export function getCustomerSearchFieldsAsync(context: IContext, ):AsyncResult {\n const request = createGetCustomerSearchFieldsInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetCustomerTimelineItemTypesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerTimelineItemTypes', false, \n 'CustomerTimelineItemTypeMapClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CustomerTimelineItemTypeMap'}, { });\n } \n \n export function getCustomerTimelineItemTypesAsync(context: IContext, ):AsyncResult {\n const request = createGetCustomerTimelineItemTypesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetCustomerTimelineItemsInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerTimelineItems', false, \n 'CustomerTimelineItemClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CustomerTimelineItem'}, { });\n } \n \n export function getCustomerTimelineItemsAsync(context: IContext, accountNumber: string):AsyncResult {\n const request = createGetCustomerTimelineItemsInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n } \n \n export function createGetCustomerTimelineRefinersInput(queryResultSettings: IQueryResultSettings, accountNumber: string, ): IDataServiceRequest { \n const query = customersQuery(accountNumber).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCustomerTimelineRefiners', false, \n 'CustomerTimelineRefinerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CustomerTimelineRefiner'}, { });\n } \n \n export function getCustomerTimelineRefinersAsync(context: IContext, accountNumber: string):AsyncResult {\n const request = createGetCustomerTimelineRefinersInput(context.queryResultSettings, accountNumber);\n return executeAction(request, context);\n } \n \n export function createGetTitlesInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = customersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetTitles', false, \n 'CustomerTitleClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CustomerTitle'}, { });\n } \n \n export function getTitlesAsync(context: IContext, ):AsyncResult {\n const request = createGetTitlesInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { BusinessPartnerUser, AccountStatementRequest, BusinessPartnerOperationRequest } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function businessPartnerUsersQuery(b2BUserId?: string): DataServiceQuery {\n var key = (b2BUserId) ? { B2BUserId: b2BUserId } : null;\n return new DataServiceQuery(\"BusinessPartnerUsers\", \"BusinessPartnerUser\", \"BusinessPartnerUserClass\", key);\n }\n \n export function createCreateInput(entity: BusinessPartnerUser): IDataServiceRequest {\n return businessPartnerUsersQuery().create(entity);\n }\n\n export function createBusinessPartnerUserAsync(context: IContext, entity: BusinessPartnerUser): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: BusinessPartnerUser): IDataServiceRequest {\n return businessPartnerUsersQuery(entity.B2BUserId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: BusinessPartnerUser): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: BusinessPartnerUser): IDataServiceRequest {\n return businessPartnerUsersQuery(entity.B2BUserId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: BusinessPartnerUser): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(b2BUserId: string): IDataServiceRequest {\n return businessPartnerUsersQuery(b2BUserId).read();\n }\n\n export function readAsync(context: IContext, b2BUserId: string): AsyncResult {\n const request = createReadAsync(b2BUserId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return businessPartnerUsersQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createRequestAccountStatementInput(b2BUserId: string, accountStatementParameters?: AccountStatementRequest | null): IDataServiceRequest { \n const query = businessPartnerUsersQuery(b2BUserId);\n return query.createDataServiceRequestForOperation('RequestAccountStatement', true, '', '', {bypassCache: 'get', returnEntity: ''}, {accountStatementParameters: accountStatementParameters });\n } \n \n export function requestAccountStatementAsync(context: IContext, b2BUserId: string, accountStatementParameters?: AccountStatementRequest | null):AsyncResult {\n const request = createRequestAccountStatementInput(b2BUserId, accountStatementParameters);\n return executeAction(request, context);\n } \n \n export function createRequestInvoiceCopyInput(b2BUserId: string, invoiceId: string | null, deliveryType: number): IDataServiceRequest { \n const query = businessPartnerUsersQuery(b2BUserId);\n return query.createDataServiceRequestForOperation('RequestInvoiceCopy', true, '', '', {bypassCache: 'get', returnEntity: ''}, {invoiceId: invoiceId, deliveryType: deliveryType });\n } \n \n export function requestInvoiceCopyAsync(context: IContext, b2BUserId: string, invoiceId: string | null, deliveryType: number):AsyncResult {\n const request = createRequestInvoiceCopyInput(b2BUserId, invoiceId, deliveryType);\n return executeAction(request, context);\n } \n \n export function createGetOperationRequestsInput(queryResultSettings: IQueryResultSettings, b2BUserId: string, startDateTime: Date, endDateTime: Date): IDataServiceRequest { \n const query = businessPartnerUsersQuery(b2BUserId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOperationRequests', true, \n 'BusinessPartnerOperationRequestClass'\n , 'true', {bypassCache: 'none', returnEntity: 'BusinessPartnerOperationRequest'}, {startDateTime: startDateTime, endDateTime: endDateTime });\n } \n \n export function getOperationRequestsAsync(context: IContext, b2BUserId: string, startDateTime: Date, endDateTime: Date):AsyncResult {\n const request = createGetOperationRequestsInput(context.queryResultSettings, b2BUserId, startDateTime, endDateTime);\n return executeAction(request, context);\n } \n \n export function createGetCurrentInput(): IDataServiceRequest { \n const query = businessPartnerUsersQuery();\n return query.createDataServiceRequestForOperation('GetCurrent', false, \n 'BusinessPartnerUserClass'\n , 'false', {bypassCache: 'none', returnEntity: 'BusinessPartnerUser'}, { });\n } \n \n export function getCurrentAsync(context: IContext, ):AsyncResult {\n const request = createGetCurrentInput();\n return executeAction(request, context);\n } \n \n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n ActionPostHook,\n ActionPostReaderHook,\n ActionPreHook,\n ActionPreReaderHook,\n IAnyAction,\n msdyn365Commerce\n} from '@msdyn365-commerce/core-internal';\nimport { LogLevel, StaticTelemetry } from '@msdyn365-commerce/telemetry-internal';\n\nconst DEPRECATED_HOOK_TYPES = ['pre', 'post', 'preRead', 'postRead'];\n\nexport namespace ActionRegistrar {\n type ActionHook = ActionPreHook | ActionPostHook;\n\n export type ActionRegistration = {\n action?: IAnyAction;\n pre?: Set;\n post?: Set>;\n preRead?: Set;\n postRead?: Set>;\n preReader?: Set;\n postReader?: Set>;\n };\n\n interface IActionDictionary {\n [actionKey: string]: ActionRegistration;\n }\n\n const dataActionRegister: IActionDictionary = {};\n\n export const getRegistration = (id?: string): ActionRegistration | undefined => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if ((msdyn365Commerce).getPartnerOverrideAction && id) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const partnerDataAction = (msdyn365Commerce).getPartnerOverrideAction(id);\n if (partnerDataAction && partnerDataAction.default) {\n dataActionRegister[id].action = partnerDataAction.default;\n } else if (partnerDataAction && partnerDataAction.prototype && partnerDataAction.prototype.Action) {\n dataActionRegister[id].action = partnerDataAction;\n }\n }\n\n if (id) {\n return dataActionRegister[id];\n }\n\n return undefined;\n };\n\n export const unwrapAction = (action: IAnyAction): IAnyAction => {\n if (action && action.prototype && !action.prototype.isAction) {\n // registered action is an action wrapper. Unwrap it.\n return >action.prototype.Action;\n }\n return action;\n };\n /**\n * Gets the action registered with id\n * @param id - ID to look up action\n */\n export const getAction = (id?: string): IAnyAction | undefined => {\n if (!id) {\n return;\n }\n const registeredAction = getRegistration(id);\n if (registeredAction) {\n return >registeredAction.action;\n }\n return;\n };\n\n /**\n * registers action. Does nothing if action is already registered\n * @param id - ID to register action with\n * @param action - action to register\n */\n export const registerAction = (id: string, dataAction: IAnyAction): IAnyAction | undefined => {\n if (!id || !dataAction) {\n // unable to register no id or action\n return;\n }\n\n const actionRegister = dataActionRegister;\n\n if (actionRegister[id]) {\n const registration = actionRegister[id];\n registration.action = dataAction;\n return >actionRegister[id].action;\n } else {\n const registration = { action: dataAction };\n actionRegister[id] = registration;\n return dataAction;\n }\n };\n\n const registerHook = (\n hookType: 'pre' | 'post' | 'preRead' | 'postRead' | 'preReader' | 'postReader'\n ) => (id: string, hook: HookType) => {\n // deprecate read only hook\n if (!msdyn365Commerce.isBrowser && DEPRECATED_HOOK_TYPES.indexOf(hookType) > -1) {\n StaticTelemetry.log(\n LogLevel.Warning,\n `Data action hooks are deprecated and will be removed in later versions. Please use data action overrides to extend data actions. The related action of this ${hookType} hook is - ${id}`\n );\n }\n\n const registration = getRegistration(id);\n // coerce hook into an iterable\n const hooks = Array.isArray(hook) ? hook : [hook];\n if (!registration) {\n // If the registration does not exist init one with just the hooks\n const newRegistration: { [id: string]: unknown } = {};\n newRegistration[hookType] = new Set(hooks);\n dataActionRegister[id] = newRegistration;\n } else {\n // If the registration does exist merge new hooks with existing hooks\n const hookRegistration = registration[hookType] || new Set();\n hooks.forEach(h => {\n hookRegistration.add(h);\n });\n // @ts-ignore\n registration[hookType] = hookRegistration;\n }\n return hook;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export const registerPostHook = registerHook | ActionPostHook[]>('post');\n export const registerPreHook = registerHook('pre');\n export const registerPreReadOnlyHook = registerHook('preRead');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export const registerPostReadOnlyHook = registerHook | ActionPostHook[]>('postRead');\n export const registerPreReaderHook = registerHook('preReader');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n export const registerPostReaderHook = registerHook | ActionPostReaderHook[]>('postReader');\n\n export const getPreHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.pre;\n };\n\n export const getPostHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.post;\n };\n\n export const getPreReadHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.preRead;\n };\n\n export const getPostReadHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.postRead;\n };\n\n export const getPreReaderHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.preReader;\n };\n export const getPostReaderHooks = (id: string) => {\n const actionRegistration = getRegistration(id);\n return actionRegistration && actionRegistration.postReader;\n };\n\n /**\n * Resolves the action and returns first action in action chain. Registers action if not yet registered\n * @param id - Action id to look up or register under\n * @param action - Action function\n */\n export const resolveAction = (id: string, action: IAnyAction): IAnyAction | undefined => {\n return getAction(id) || >registerAction(id, action) || action;\n };\n\n export const resolveRegistration = (\n id: string,\n action: IAnyAction,\n preHooks?: ActionPreHook[],\n postHooks?: ActionPostHook[],\n preReadHooks?: ActionPreHook[],\n postReadHooks?: ActionPostHook[],\n preReaderHooks?: ActionPreReaderHook[],\n postReaderHooks?: ActionPostReaderHook[]\n ) => {\n const resolvedAction = resolveAction(id, action);\n if (!resolvedAction) {\n return;\n }\n preHooks && registerPreHook(id, preHooks);\n postHooks && registerPostHook(id, postHooks);\n preReadHooks && registerPreReadOnlyHook(id, preReadHooks);\n postReadHooks && registerPostReadOnlyHook(id, postReadHooks);\n preReaderHooks && registerPreReaderHook(id, preReaderHooks);\n postReaderHooks && registerPostReaderHook(id, postReaderHooks);\n return getRegistration(id);\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext, IActionInput, IActionWrapperPrototype, IObservableAction } from '@msdyn365-commerce/core-internal';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { dataActionOptions, wrapDataAction } from './wrap-data-action';\n\n/**\n * Higher order function which exposes the current method as an action\n * @param action The action method\n * @param isBatched If the service call can handle batched requests efficiently\n * @param input Optional parameter of a single instance or an array of IActionInputs that will be passed to the action method.\n */\nexport const createObservableDataAction = (options: dataActionOptions): IObservableAction => {\n const wrappedAction = wrapDataAction(\n options,\n (arg1: IActionInput | IActionInput[], arg2: IActionContext): AsyncResult => {\n return new AsyncResult((resolve, reject) => {\n arg2.chainAction(options.action, arg1)\n .then(result => {\n resolve(result);\n })\n .catch(error => {\n reject(error);\n });\n });\n }\n );\n (wrappedAction.prototype).setProperty('isObservable', true);\n return >wrappedAction;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IAction, IActionInput, IObservableAction } from '@msdyn365-commerce/core-internal';\nimport { ActionRegistrar } from './action-registrar';\n\nexport type dataActionOptions = {\n action: IAction;\n isBatched?: boolean;\n id?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n input?: (...args: any[]) => IActionInput | IActionInput[];\n};\n\ntype IActionWrap = IAction | IObservableAction;\n\n/**\n * Wraps a data action with the associated action wrap.\n * @param options\n * @param actionWrap\n */\nexport const wrapDataAction = (options: dataActionOptions, actionWrap: IActionWrap): IActionWrap => {\n if (!options) {\n throw new Error('wrapDataAction called with invalid options. Options should have atleast action defined');\n }\n\n if (!options.action) {\n throw new Error(\n `Received invalid actions when attempting to parse options. Input name: ${options.input ? options.input.name : 'undefined'}`\n );\n }\n\n let inputFunc = options.input!;\n let id = options.id;\n let isBatched = options.isBatched!;\n options.action.prototype = {\n id,\n isBatched,\n isAction: true\n };\n\n actionWrap.prototype = {\n id,\n isAction: false,\n _action: options.action,\n set RegistrationId(registrationId: string) {\n options.action.prototype.RegistrationId = registrationId;\n },\n get RegistrationId(): string {\n return options.action.prototype.RegistrationId || '';\n },\n set inputFunc(func: Function) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (inputFunc) = func;\n },\n get inputFunc(): Function {\n return inputFunc;\n },\n get isBatched(): boolean {\n return isBatched;\n },\n set isBatched(_isBatched: boolean) {\n isBatched = _isBatched;\n },\n get Action(): IAction {\n return options.action;\n },\n set Action(newAction: IAction) {\n // There are no getter/setters on the action function prototype so this behaves as expected.\n inputFunc = newAction.prototype.input || inputFunc;\n id = newAction.prototype.id || id;\n isBatched = newAction.prototype.isBatched || isBatched;\n newAction.prototype = { ...newAction.prototype, ...options.action.prototype };\n options.action = newAction;\n },\n setProperty: (propertyName: string, value: unknown) => {\n options.action.prototype[propertyName] = value;\n actionWrap.prototype[propertyName] = options.action.prototype[propertyName];\n }\n };\n if (actionWrap.prototype.id) {\n ActionRegistrar.registerAction(actionWrap.prototype.id, actionWrap);\n }\n\n return actionWrap;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ActionPostHook, ActionPostReaderHook, ActionPreHook, ActionPreReaderHook } from '@msdyn365-commerce/core-internal';\nimport { ActionRegistrar } from './action-registrar';\n\ntype dataActionHook = {\n actionId: string;\n preHook?: ActionPreHook;\n postHook?: ActionPostHook;\n preReadonlyHook?: ActionPreHook;\n postReadonlyHook?: ActionPostHook;\n preReaderHook?: ActionPreReaderHook;\n postReaderHook?: ActionPostReaderHook;\n};\n\nexport const createDataActionHook = (options: dataActionHook): void => {\n options.preHook && ActionRegistrar.registerPreHook(options.actionId, options.preHook);\n options.postHook && ActionRegistrar.registerPostHook(options.actionId, options.postHook);\n options.preReadonlyHook && ActionRegistrar.registerPreReadOnlyHook(options.actionId, options.preReadonlyHook);\n options.postReadonlyHook && ActionRegistrar.registerPostReadOnlyHook(options.actionId, options.postReadonlyHook);\n options.preReaderHook && ActionRegistrar.registerPreReaderHook(options.actionId, options.preReaderHook);\n options.postReaderHook && ActionRegistrar.registerPostReaderHook(options.actionId, options.postReaderHook);\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/**\n * Known action error failure states\n */\nexport const enum ActionErrorStatus {\n Timeout = 'Timeout',\n HookTimeout = 'Hook Timeout',\n ServiceUnavailable = 'Service Unavailable'\n}\n\n/**\n * Action Error Wrapper\n */\nexport class ActionError extends Error {\n public static readonly Name: string = 'ActionError';\n\n public error?: unknown;\n public status?: ActionErrorStatus;\n\n /**\n * Checks if an object is an action error\n */\n public static isActionError(error: unknown): boolean {\n return error instanceof Error && (error).name === ActionError.Name;\n }\n\n public static isTimeoutError(error: unknown): boolean {\n return error && (error).status === ActionErrorStatus.Timeout;\n }\n\n public static isServiceUnavailable(error: unknown): boolean {\n return error && (error).status === ActionErrorStatus.ServiceUnavailable;\n }\n\n /**\n * Action Errors\n * @param error Original Error\n */\n constructor(error: ActionErrorStatus | Error);\n constructor(error: Error) {\n super();\n this.name = ActionError.Name;\n if (error instanceof Error) {\n this.message = error.message;\n this.error = error;\n } else {\n if (error === ActionErrorStatus.Timeout) {\n this.status = error;\n this.message = 'Action Timeout';\n } else if (error === ActionErrorStatus.HookTimeout) {\n this.status = error;\n this.message = 'Action hook Timeout';\n } else if (error === ActionErrorStatus.ServiceUnavailable) {\n this.status = error;\n this.message = 'Action failed due to service unavailable';\n } else if (typeof error === 'string') {\n this.message = error;\n } else {\n this.error = error;\n }\n }\n\n // As of Typescript 2.1 if we extend the Error object the prototype must be set explicitly\n // See: https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\n Object.setPrototypeOf(this, ActionError.prototype);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AppCache, ICache } from '@msdyn365-commerce/cache-internal';\nimport { IActionInput } from '@msdyn365-commerce/core-internal';\n\n/**\n * Method to indicate if the action should look in app cache for data\n * @param input ActionInput\n */\nexport const shouldReadFromAppCache = (input: IActionInput, appCache: ICache | null): boolean => {\n return !!appCache && input && input.dataCacheType !== undefined && input.dataCacheType() !== 'none';\n};\n\n/**\n * Method to indicate if the action should write in app cache\n * @param input ActionInput\n */\nexport const shouldWriteToAppCache = (input: IActionInput, appCache: ICache | null): boolean => {\n return isAppCacheData(input, appCache);\n};\n\n/**\n * Method to indicate if the action's cache type is application\n * @param input ActionInput\n */\nexport const isAppCacheData = (input: IActionInput, appCache: ICache | null): boolean => {\n if (!appCache) {\n return false;\n }\n\n if (input) {\n if (input.dataCacheType !== undefined && input.dataCacheType() === 'application') {\n return true;\n }\n\n // if an entity has a cache setting defined, we cache that entity - caching retail proxy actions\n return (appCache).hasCacheSetting(input.getCacheObjectType());\n }\n\n return false;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheSource } from '@msdyn365-commerce/cache-internal';\nimport { IActionInput, IRequestContext, msdyn365Commerce, verboseLogger } from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { IInternalTelemetry, ITelemetry } from '@msdyn365-commerce/telemetry-internal';\n\nconst GET_FROM_RETURNIDENTIFIER: string = '___GET__FROM__RETURNIDENTIIER___';\n\nexport const addLocaleInformation = (inputs: IActionInput | IActionInput[], locale: string): void => {\n const isArray = Array.isArray(inputs);\n if (isArray) {\n const actionInputs = (inputs || []) as IActionInput[];\n actionInputs.forEach(input => {\n if (input instanceof DataServiceRequest && !input.getCacheKey().endsWith(`-${locale}`)) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const tmp = input._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n input._cacheKeyFromInput = `${tmp}-${locale}`;\n }\n });\n } else {\n if (inputs instanceof DataServiceRequest && !inputs.getCacheKey().endsWith(`-${locale}`)) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const tmp = inputs._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n inputs._cacheKeyFromInput = `${tmp}-${locale}`;\n }\n }\n};\n\nconst _resolveCacheEntryReference = (\n dataServiceRequest: DataServiceRequest,\n item: any,\n requestCache: ICache,\n appCache: ICache,\n shouldReadFromAppCache?: boolean,\n isWrappingPromise?: boolean,\n isObservable: boolean = true\n) => {\n const cacheValueAsArray = (item.key as string[])\n .map(key => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n const value = requestCache.get({ typeName: cacheObjectType, key });\n if (!value && shouldReadFromAppCache && appCache) {\n appCache.copyTo({ typeName: cacheObjectType, key }, requestCache, isObservable);\n }\n\n if (!value || !value.item) {\n return undefined;\n }\n\n const valueItem: any = value.item;\n\n if (isAsyncResult(valueItem)) {\n return valueItem.result;\n }\n\n return valueItem;\n })\n .filter(data => data !== undefined && data !== null);\n\n if ((item.key as string[]).length > cacheValueAsArray.length) {\n return;\n }\n\n // If we are returning a Promise that represents a future collection, we need to unwrap it\n // @ts-ignore -- accessing a private class variable (_query) which is a valid JS\n const isReturnTypeACollection = dataServiceRequest._query.isReturnTypeACollection;\n\n return cacheValueAsArray && cacheValueAsArray.length > 0\n ? isReturnTypeACollection && !isWrappingPromise\n ? cacheValueAsArray\n : cacheValueAsArray[0]\n : undefined;\n};\n\nconst logTelemetrySource = (\n cacheValue: ICacheItem,\n dataServiceRequest: DataServiceRequest,\n cacheKey: string,\n context: IRequestContext,\n telemetry?: ITelemetry | IInternalTelemetry\n) => {\n if (!telemetry) {\n return;\n }\n if (!msdyn365Commerce.isBrowser) {\n switch (cacheValue.s!) {\n case ICacheSource.AppCache: {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}', {\n values: [cacheObjectType, cacheKey, 'AppCache']\n });\n break;\n }\n case ICacheSource.RequestCache: {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}', {\n values: [cacheObjectType, cacheKey, 'RequestCache']\n });\n break;\n }\n default: {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType || 'none';\n\n verboseLogger(context, telemetry, 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}', {\n values: [cacheObjectType, cacheKey, 'Default']\n });\n break;\n }\n }\n }\n};\n\nconst readCacheEntriesBasedOnCacheKeyFromReturnType = (\n dataServiceRequest: DataServiceRequest,\n requestCache: ICache,\n appCache: ICache,\n shouldReadFromAppCache: boolean,\n context: IRequestContext,\n telemetry?: ITelemetry | IInternalTelemetry,\n isObservable: boolean = true\n): any => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromReturnType = dataServiceRequest._cacheKeyFromReturnType;\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n if (cacheKeyFromReturnType.length === 0) {\n return { entry: null, shouldRefresh: false };\n }\n let shouldRefreshAll = true;\n const cacheEntries = cacheKeyFromReturnType\n .map((entry: any) => {\n const key = `${cacheKeyIdentifierFromReturnType}-${entry}`;\n\n let cacheValue = requestCache.get({ typeName: cacheObjectType, key });\n\n if (!cacheValue && shouldReadFromAppCache && appCache) {\n cacheValue = appCache.copyTo({ typeName: cacheObjectType, key }, requestCache, isObservable);\n }\n\n if (!cacheValue || !cacheValue.item) {\n return null;\n }\n // according to the logic, will treat the entries to shouldRefresh when all entries have shouldRefresh.\n if (!cacheValue.shouldRefresh) {\n shouldRefreshAll = false;\n }\n logTelemetrySource(cacheValue, dataServiceRequest, key, context, telemetry);\n\n return cacheValue.item;\n })\n .filter(Boolean);\n\n // @ts-ignore -- accessing a private class variable (_query) which is a valid JS\n const isReturnTypeACollection = dataServiceRequest._query.isReturnTypeACollection;\n const cacheEntriesReturn = cacheEntries && cacheEntries.length > 0 ? (isReturnTypeACollection ? cacheEntries : cacheEntries[0]) : null;\n return { entry: cacheEntriesReturn, shouldRefresh: shouldRefreshAll };\n};\n\nexport const readCacheEntries = (\n dataServiceRequest: DataServiceRequest,\n requestCache: ICache,\n appCache: ICache,\n shouldReadFromAppCache: boolean = false,\n context: IRequestContext,\n telemetry?: ITelemetry | IInternalTelemetry,\n isObservable: boolean = true\n): any => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromReturnType = dataServiceRequest._cacheKeyFromReturnType;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n if (!requestCache || (!dataServiceRequest.getCacheKey() && cacheKeyFromReturnType.length === 0) || !cacheObjectType) {\n return { entry: null, shouldRefresh: false };\n }\n\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n\n if (cacheKeyFromInput === GET_FROM_RETURNIDENTIFIER || (cacheKeyIdentifierFromReturnType && cacheKeyFromReturnType.length !== 0)) {\n const entries = readCacheEntriesBasedOnCacheKeyFromReturnType(\n dataServiceRequest,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n context,\n telemetry,\n isObservable\n );\n if (entries && entries.entry) {\n return entries;\n }\n }\n const cacheKey = { typeName: cacheObjectType, key: cacheKeyFromInput };\n\n let cachedValueBasedOnInput = requestCache.get(cacheKey);\n if (cachedValueBasedOnInput) {\n cachedValueBasedOnInput = { ...cachedValueBasedOnInput };\n } else if (shouldReadFromAppCache && appCache) {\n cachedValueBasedOnInput = appCache.copyTo(cacheKey, requestCache, isObservable);\n }\n\n if (!cachedValueBasedOnInput) {\n return readCacheEntriesBasedOnCacheKeyFromReturnType(\n dataServiceRequest,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n context,\n telemetry,\n isObservable\n );\n }\n logTelemetrySource(cachedValueBasedOnInput, dataServiceRequest, cacheKeyFromInput, context, telemetry);\n\n if (cachedValueBasedOnInput.item instanceof AsyncResult) {\n if (cachedValueBasedOnInput.item.status !== 'LOADING') {\n cachedValueBasedOnInput.item = cachedValueBasedOnInput.item.result || cachedValueBasedOnInput.item.error;\n } else {\n const asyncResult = cachedValueBasedOnInput.item.then(result => {\n if (typeof result !== 'object' || result.$ref !== true) {\n return result;\n }\n\n return _resolveCacheEntryReference(\n dataServiceRequest,\n result,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n isObservable\n );\n });\n return { entry: asyncResult, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n }\n }\n\n if (\n typeof cachedValueBasedOnInput.item !== 'object' ||\n (cachedValueBasedOnInput.item &&\n // @ts-ignore -- $ref property does not exists in type object\n cachedValueBasedOnInput.item.$ref !== true)\n ) {\n return { entry: cachedValueBasedOnInput.item, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n }\n\n const cachedValueBasedOnInputItem: any = cachedValueBasedOnInput.item;\n\n const resolvedRef = _resolveCacheEntryReference(\n dataServiceRequest,\n cachedValueBasedOnInput.item,\n requestCache,\n appCache,\n shouldReadFromAppCache,\n isAsyncResult(cachedValueBasedOnInputItem),\n isObservable\n );\n return { entry: resolvedRef, shouldRefresh: cachedValueBasedOnInput.shouldRefresh };\n};\n\nconst _saveEntityToCache = (\n dataServiceRequest: DataServiceRequest,\n data: any,\n requestCache: ICache,\n appCache: ICache,\n isCacheTypeApplication: boolean,\n isInstance: boolean = false\n): { [cacheKey: string]: any } | undefined => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const dataServiceRequestQuery = dataServiceRequest._query;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n if (!data || (!cacheKeyFromInput && !cacheKeyIdentifierFromReturnType)) {\n return;\n }\n\n const cacheEntries: any = {};\n const results = data;\n\n // using Object.prototype instead of Array.isArray because results can be Observable Array which can't be detected with Array.isArray\n if (!dataServiceRequestQuery.isReturnTypeACollection || Object.prototype.toString.call(results) !== '[object Array]') {\n if (cacheKeyIdentifierFromReturnType) {\n const key = `${cacheKeyIdentifierFromReturnType}-${results[cacheKeyIdentifierFromReturnType]}`;\n cacheEntries[key] = results;\n if (cacheKeyFromInput) {\n let existingCacheItem = requestCache.get({\n typeName: cacheObjectType,\n key: cacheKeyFromInput\n });\n if (existingCacheItem) {\n existingCacheItem = { ...existingCacheItem };\n }\n\n if (\n existingCacheItem &&\n existingCacheItem.item &&\n (!(existingCacheItem.item instanceof AsyncResult) || existingCacheItem.item.status === 'SUCCESS') &&\n (typeof existingCacheItem.item !== 'object' ||\n (existingCacheItem &&\n existingCacheItem.item &&\n // @ts-ignore -- $ref property does not exists in type object\n existingCacheItem?.item?.$ref !== true))\n ) {\n cacheEntries[cacheKeyFromInput] = results;\n } else {\n cacheEntries[cacheKeyFromInput] = {\n $ref: true,\n type: cacheObjectType,\n identifier: cacheKeyIdentifierFromReturnType,\n key: [key],\n // @ts-ignore -- accessing a private class variable which is a valid JS\n count: dataServiceRequest._totalCount\n };\n }\n }\n } else {\n cacheEntries[cacheKeyFromInput] = results;\n }\n } else if (!cacheKeyIdentifierFromReturnType) {\n cacheEntries[cacheKeyFromInput] = results;\n } else {\n const cacheValue = results\n .map((result: { [x: string]: any }) => {\n const identifierValue = result[cacheKeyIdentifierFromReturnType];\n if (identifierValue) {\n const key = `${cacheKeyIdentifierFromReturnType}-${identifierValue}`;\n cacheEntries[key] = result;\n return key;\n }\n })\n .filter(Boolean);\n let existingCacheItem = requestCache.get({\n typeName: cacheObjectType,\n key: cacheKeyFromInput\n });\n if (existingCacheItem) {\n existingCacheItem = { ...existingCacheItem };\n }\n if (\n existingCacheItem &&\n existingCacheItem.item &&\n (!(existingCacheItem.item instanceof AsyncResult) || existingCacheItem.item.status === 'SUCCESS') &&\n (typeof existingCacheItem.item !== 'object' ||\n (existingCacheItem &&\n existingCacheItem.item &&\n // @ts-ignore -- $ref property does not exists in type object\n existingCacheItem.item.$ref !== true))\n ) {\n cacheEntries[cacheKeyFromInput] = results;\n } else {\n if (existingCacheItem) {\n // @ts-ignore - _cacheObjectType does not exist in type ICacheItem\n const existingCacheObjectType = existingCacheItem._cacheObjectType;\n // @ts-ignore - _cacheKeyIdentifierFromReturnType does not exist in type ICacheItem\n const existingCacheKeyIdentifierFromReturnType = existingCacheItem._cacheKeyIdentifierFromReturnType;\n // @ts-ignore - _query does not exist in type ICacheItem\n const existingCacheIsReturnTypeACollection = existingCacheItem._query.isReturnTypeACollection;\n // @ts-ignore - _totalCount does not exist in type ICacheItem\n const existingCacheTotalCount = existingCacheItem._totalCount;\n\n cacheEntries[cacheKeyFromInput] = {\n $ref: true,\n type: existingCacheObjectType,\n identifier: existingCacheKeyIdentifierFromReturnType,\n isCollection: existingCacheIsReturnTypeACollection,\n key: cacheValue,\n count: existingCacheTotalCount\n };\n }\n }\n }\n\n if (cacheEntries) {\n Object.keys(cacheEntries).map(entryKey => {\n requestCache.put(\n { typeName: cacheObjectType, key: entryKey },\n { item: cacheEntries[entryKey], ...(isInstance && { instance: 'instance' }) }\n );\n\n if (appCache && isCacheTypeApplication) {\n appCache.put(\n { typeName: cacheObjectType, key: entryKey },\n { item: cacheEntries[entryKey], ...(isInstance && { instance: 'instance' }) }\n );\n }\n });\n }\n\n return cacheEntries;\n};\n\nexport const saveCacheEntries = (\n dataServiceRequest: DataServiceRequest,\n data: AsyncResult | any,\n requestCache: ICache,\n appCache: ICache,\n isCacheTypeApplication: boolean,\n isInstance: boolean = false\n): { [cacheKey: string]: any } | undefined => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyFromInput = dataServiceRequest._cacheKeyFromInput;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheKeyIdentifierFromReturnType = dataServiceRequest._cacheKeyIdentifierFromReturnType;\n // @ts-ignore -- accessing a private class variable which is a valid JS\n const cacheObjectType = dataServiceRequest._cacheObjectType;\n\n // if return Entity is collection\n // if entity type has identifier/primary key\n // 1. cache array of primay key value of returned entity collection on input cache key\n // 2. cache individual entity on primary key\n // else\n // 1. cache output on input cache key\n //\n // else if entity type has identifier/primary key\n // 2. cache output entity on primary key\n if (!data || (!cacheKeyFromInput && !cacheKeyIdentifierFromReturnType) || !cacheObjectType) {\n return;\n }\n\n if (data instanceof AsyncResult) {\n // For a loading Promise, cache based on input cachekey, and then cache output again once complete\n if (data.status === 'LOADING') {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n data.then((result: any) => {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest._totalCount !== undefined) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.count = dataServiceRequest._totalCount;\n }\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest && dataServiceRequest._otherOdata) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.others = dataServiceRequest._otherOdata;\n }\n\n _saveEntityToCache(dataServiceRequest, result, requestCache, appCache, isCacheTypeApplication, isInstance);\n return result;\n });\n requestCache.put(\n { typeName: cacheObjectType, key: cacheKeyFromInput },\n { item: data, ...(isInstance && { instance: 'instance' }) }\n );\n\n if (appCache && isCacheTypeApplication) {\n appCache.put(\n { typeName: cacheObjectType, key: cacheKeyFromInput },\n { item: data, ...(isInstance && { instance: 'instance' }) }\n );\n }\n // For a completed promise, save the action results to the cache\n } else {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest._totalCount !== undefined) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.count = dataServiceRequest._totalCount;\n }\n // @ts-ignore -- accessing a private class variable which is a valid JS\n if (dataServiceRequest && dataServiceRequest._otherOdata) {\n // @ts-ignore -- accessing a private class variable which is a valid JS\n data.metadata.others = dataServiceRequest._otherOdata;\n }\n _saveEntityToCache(dataServiceRequest, data.result, requestCache, appCache, isCacheTypeApplication, isInstance);\n return data.result;\n }\n } else {\n return _saveEntityToCache(dataServiceRequest, data, requestCache, appCache, isCacheTypeApplication, isInstance);\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { EventEmitter } from 'events';\n\n/** EventEmitter is available in node, but not on the browser,\n * this class attempts to polyfill that so the action context can remain Isomorphic\n */\n/* @internal*/\n\n/**\n * Type for event emitter listener callback\n */\nexport type ListenerCallback = (...args0: T) => void;\n\n/**\n * Generic cast type\n */\nexport type GenericCallback = (...args: any) => void;\n\n/**\n * Custom isomorphic event emitter implementation\n *\n * @export\n * @class CustomEventEmitter\n */\nclass CustomEventEmitter {\n private listeners: Map = new Map();\n private eventEmitter: EventEmitter | null = typeof window !== undefined ? null : new EventEmitter();\n\n public on(event: string, callback: ListenerCallback): void {\n if (!!this.eventEmitter) {\n this.eventEmitter.on(event, callback);\n } else {\n let listeners = this.listeners.get(event);\n if (!!!listeners) {\n listeners = [];\n this.listeners.set(event, listeners);\n }\n\n listeners.push(callback);\n }\n }\n\n public emit(event: string, ...args: T): boolean {\n if (!!this.eventEmitter) {\n return this.eventEmitter.emit(event, args);\n }\n\n const listeners = this.listeners.get(event);\n\n if (listeners && listeners.length) {\n listeners.forEach(listener => {\n listener(...args);\n });\n return true;\n }\n\n return false;\n }\n\n public removeAllListeners(event: string): void {\n if (!!this.eventEmitter) {\n this.eventEmitter.removeAllListeners(event);\n } else {\n this.listeners.delete(event);\n }\n }\n}\n\nexport default new CustomEventEmitter();\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable max-lines */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheKey } from '@msdyn365-commerce/cache-internal';\nimport {\n CacheType,\n IActionContext,\n IActionInput,\n IAnyAction,\n IDataActionOptions,\n msdyn365Commerce,\n verboseLogger,\n checkVersionForFeature,\n getPerformanceUtils\n} from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, ErrorTypeEnum, isAsyncResult, ProxyError } from '@msdyn365-commerce/retail-proxy';\nimport { asSystemMetadata, ITelemetry, LogLevel, StaticTelemetry } from '@msdyn365-commerce/telemetry-internal';\nimport { get as _get, uniqWith } from 'lodash';\nimport { toJS } from 'mobx';\nimport uuidv1 from 'uuid/v1';\n\nimport { ActionError, ActionErrorStatus } from './action-error';\nimport { ActionRegistrar } from './action-registrar';\nimport { isAppCacheData, shouldReadFromAppCache, shouldWriteToAppCache } from './action-runtime-utils';\nimport { readCacheEntries, saveCacheEntries } from './cache/retail-cache-helper';\nimport EventHelper from './event-emitter';\n\nconst defaultTimeoutInMS: number = 4000;\nconst defaultHookTimeoutInMS: number = 1000;\nexport const CLIENT_HYDRATE_KEY = 'clientHydrateKey';\nexport const CLIENT_HYDRATE_TYPE = 'clientHydrate';\n\nconst Timer = (timeoutInMS: number, message: unknown) => new Promise(resolve => setTimeout(resolve.bind(resolve, message), timeoutInMS));\n\nconst ActionTimer = (timeoutInMS: number) =>\n new Promise((_resolve, reject) => setTimeout(reject.bind(reject, ActionErrorStatus.Timeout), timeoutInMS));\n\nconst ObservableActionTimer = (timeoutInMS: number) =>\n new AsyncResult((_resolve, reject) => setTimeout(reject.bind(reject, ActionErrorStatus.Timeout), timeoutInMS));\n\n/* @internal */\n/**\n * This class contains the logic to batch and de-dupe the actions that can be executed.\n * This class is also responsible for checking and saving the action response to cache.\n */\nexport default class ActionExecutor {\n public readonly action: Function;\n public readonly cacheType: CacheType;\n private readonly isBatched: boolean;\n private readonly eventId: string;\n private readonly isObservable: boolean;\n\n private inputs: IActionInput[];\n /**\n * @param action the action to execute\n * @param inputs the action input\n */\n constructor(action: Function, inputs: IActionInput[], telemetry: ITelemetry, dataActionOption?: IDataActionOptions) {\n this.action = action;\n this.eventId = uuidv1();\n this.inputs = [...inputs]; // Cloning it DO NOT use the reference\n this.isBatched = action.prototype.isBatched;\n\n this.isObservable = action.prototype.isObservable;\n\n // Cache all the calls on browser\n const masterInput = inputs[0];\n\n if (masterInput && masterInput.dataCacheType) {\n this.cacheType = masterInput.dataCacheType();\n } else if (masterInput && masterInput.shouldCacheOutput) {\n this.cacheType = masterInput.shouldCacheOutput() ? 'request' : 'none';\n telemetry.trace('shouldCacheOutput property has been deprecated. Please update the IActionInput to use dataCacheType');\n } else {\n this.cacheType = (dataActionOption && dataActionOption.cacheType) || 'none';\n // for data actions who do not have dataCacheType function, we add customer defined cachtype to the action.\n // this is used for later check if the data acton should be read from app cache.\n inputs.forEach(input => {\n input.dataCacheType = () => this.cacheType;\n });\n telemetry.trace('Neither dataCacheType nor shouldCacheOutput are set. Caching strategy will fall back to \"none\"');\n }\n }\n\n /**\n *\n * @param inputs add more inputs\n */\n public addInputs(inputs: IActionInput[]): void {\n this.inputs.push(...inputs);\n }\n\n /** Execute the action */\n public async execute(\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null,\n bypassAppCache?: boolean,\n refreshingInputs: IActionInput[] = []\n ): Promise {\n const unique: IActionInput[] =\n refreshingInputs && refreshingInputs.length > 0\n ? this._removeDuplicates(refreshingInputs)\n : this._removeDuplicates(this.inputs);\n if (!unique.length) {\n return [];\n }\n\n const actionId = this._getActionIdFromInputs(unique);\n\n const performanceUtils = getPerformanceUtils(msdyn365Commerce, context);\n const executionId = performanceUtils?.performanceUtilsPackage.Random.Guid.generateGuid();\n\n performanceUtils?.performanceUtilsPackage.runPreReadonlyDataActionPerformanceHook({\n actionId,\n executionId,\n internalCache: performanceUtils.cache\n });\n\n const result = await this._executeDataAction(context, requestCache, appCache, bypassAppCache, refreshingInputs, unique, actionId);\n\n performanceUtils?.performanceUtilsPackage.runPostReadonlyDataActionPerformanceHook({\n actionId,\n executionId,\n internalCache: performanceUtils.cache\n });\n\n return result;\n }\n\n private async _executeDataAction(\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null,\n bypassAppCache: boolean | undefined,\n refreshingInputs: IActionInput[],\n unique: IActionInput[],\n actionId: string\n ): Promise {\n const isRefreshingAction = refreshingInputs && refreshingInputs.length > 0;\n\n this._runPreReadHooks(actionId, unique, context)\n .then(() => null)\n .catch(err => null);\n\n // execte preReaderHook\n this._runPreReaderHooks(actionId, unique, context)\n .then(() => null)\n .catch(err => null);\n const [uncached, needsRefresh]: IActionInput[][] = this._checkForCachedData(\n unique,\n context,\n requestCache,\n appCache,\n bypassAppCache,\n isRefreshingAction\n );\n\n if (!uncached.length) {\n // excute readOnly post hook with all cached actions ouptput\n await this._fetchOutputsAndRunPostReadHook(actionId, unique, requestCache, context);\n return needsRefresh;\n } else {\n const cachedActions = unique.filter(value => !uncached.includes(value));\n if (cachedActions.length) {\n // fetch the output for all cached data action, and run readOnly hooks. The uncached actions will be excuted later.\n await this._fetchOutputsAndRunPostReadHook(actionId, cachedActions, requestCache, context);\n }\n }\n\n let outputs: any[] = [];\n\n // VNext observable promise based flow\n // Create the AsyncResult and immediately return it\n if (this.isObservable) {\n if (this.isBatched) {\n this._executeBatchedObservableActions(uncached, requestCache, appCache, context, isRefreshingAction);\n } else {\n this._executeObservableAction(uncached[0], requestCache, appCache, context, isRefreshingAction);\n }\n return needsRefresh;\n }\n\n if (this.isBatched) {\n // TODO: Have a max batch count on the action\n outputs = await this._actionWrapper(uncached, context, isRefreshingAction);\n\n if (outputs && outputs.length !== uncached.length) {\n // TODO Throw\n context.telemetry.log(\n LogLevel.Trace,\n 'Length of input array {uncached_length} does not meet the output array {outputs_length}',\n { values: [uncached.length, outputs.length] }\n );\n }\n } else {\n outputs[0] = await this._actionWrapper(uncached[0], context, isRefreshingAction);\n }\n\n if (!outputs || outputs.length === 0) {\n return needsRefresh;\n }\n\n this._saveResponseToCache(uncached, outputs, context, requestCache, appCache);\n return needsRefresh;\n }\n\n // the retail proxy data actions who do not have return type should not interact with cache.\n private _checkShouldInteractWithCache(input: IActionInput, typeName: string | undefined): boolean {\n return !(input instanceof DataServiceRequest) || !!typeName;\n }\n\n private async _fetchOutputsAndRunPostReadHook(\n actionId: string,\n inputs: IActionInput[],\n requestCache: ICache,\n context: IActionContext\n ): Promise {\n const outputs = inputs.map(i => {\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n // if the retail data action does not have return type, we do not read the output from cache.\n let cacheItem;\n if (this._checkShouldInteractWithCache(i, cacheKey.typeName)) {\n cacheItem = requestCache.get>(cacheKey);\n }\n return !!cacheItem ? requestCache.getValue(cacheKey) : null;\n });\n this._runPostReadHooks(actionId, inputs, outputs, context)\n .then(() => null)\n .catch(err => null);\n this._runPostReaderHooks(actionId, inputs, outputs, context)\n .then(() => null)\n .catch(err => null);\n }\n private _removeDuplicates(inputs: IActionInput[]): IActionInput[] {\n if (!this.isBatched) {\n return inputs;\n }\n\n return uniqWith(\n inputs,\n (inputA: IActionInput, inputB: IActionInput) =>\n inputA.getCacheKey() === inputB.getCacheKey() && inputA.getCacheObjectType() === inputB.getCacheObjectType()\n );\n }\n\n private _getActionIdFromInputs(inputs: IActionInput | IActionInput[]): string {\n let inputsActionId;\n for (const input of Array.isArray(inputs) ? inputs : [inputs]) {\n if (typeof input.getActionId === 'function') {\n inputsActionId = input.getActionId();\n }\n }\n return inputsActionId || (>this.action).prototype.id;\n }\n\n private _getActionFromId(actionId?: string): Function {\n let { action } = this;\n if (actionId) {\n const registration = ActionRegistrar.resolveRegistration(actionId, >action);\n if (registration) {\n action = >registration.action;\n return ActionRegistrar.unwrapAction(>action);\n }\n }\n return action;\n }\n\n private async _runPreReadHooks(id: string, inputs: IActionInput | IActionInput[], context: IActionContext): Promise {\n const preReadHooks = ActionRegistrar.getPreReadHooks(id);\n if (!preReadHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n const preReadHooksArray = Array.from(preReadHooks);\n return preReadHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPostReaderHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n actionResult: unknown,\n context: IActionContext\n ): Promise {\n const postReaderHooks = ActionRegistrar.getPostReaderHooks(id);\n if (!postReaderHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n const postReaderHooksArray = Array.from(postReaderHooks);\n return postReaderHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, actionResult, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPreReaderHooks(id: string, inputs: IActionInput | IActionInput[], context: IActionContext): Promise {\n const preReaderHooks = ActionRegistrar.getPreReaderHooks(id);\n if (!preReaderHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n const preReaderHooksArray = Array.from(preReaderHooks);\n return preReaderHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPreHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n context: IActionContext\n ): Promise {\n const preHooks = ActionRegistrar.getPreHooks(id);\n if (!preHooks) {\n return;\n }\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n\n const preHooksArray = Array.from(preHooks);\n return preHooksArray.reduce(async (previousTask, currentTask) => {\n const prevInput = await previousTask;\n let tmpNextInput: unknown;\n try {\n tmpNextInput = await Promise.race([timer, currentTask(prevInput, context)]);\n } catch (error) {\n throw error;\n }\n const finalNextInput: IActionInput | IActionInput[] =\n tmpNextInput === ActionErrorStatus.HookTimeout || !tmpNextInput ? prevInput : tmpNextInput;\n return Promise.resolve(finalNextInput);\n }, Promise.resolve(inputs));\n }\n\n private async _runPostReadHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n actionResult: unknown,\n context: IActionContext\n ): Promise {\n const postHooks = ActionRegistrar.getPostReadHooks(id);\n\n if (!postHooks) {\n return;\n }\n\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n const postReadHooksArray = Array.from(postHooks);\n return postReadHooksArray.reduce(async (previousTask, currentTask) => {\n await previousTask;\n try {\n await Promise.race([timer, currentTask(inputs, actionResult, context)]);\n } catch (error) {\n const actionId = id || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution hook of action_id '{id}', returning null\",\n {\n values: [asSystemMetadata(actionId)],\n exception: error\n },\n LogLevel.Trace\n );\n }\n return Promise.resolve();\n }, Promise.resolve());\n }\n\n private async _runPostHooks(\n id: string,\n inputs: IActionInput | IActionInput[],\n actionResult: unknown,\n context: IActionContext\n ): Promise {\n const postHooks = ActionRegistrar.getPostHooks(id);\n if (!postHooks) {\n return;\n }\n const hookTimeout = Number(_get(context, 'requestContext.query.actionHookTimeout')) || defaultHookTimeoutInMS;\n const timer = Timer(hookTimeout, ActionErrorStatus.HookTimeout);\n const postHooksArray = Array.from(postHooks);\n return postHooksArray.reduce(async (previousTask, currentTask) => {\n const prevOutput = await previousTask;\n let tmpNextOutput: unknown;\n try {\n tmpNextOutput = await Promise.race([timer, currentTask(inputs, prevOutput, context)]);\n } catch (error) {\n throw error;\n }\n const finalNextOutput = tmpNextOutput === ActionErrorStatus.HookTimeout || !tmpNextOutput ? prevOutput : tmpNextOutput;\n return Promise.resolve(finalNextOutput);\n }, Promise.resolve(actionResult));\n }\n\n /**\n * Add performance logging before and after calling the action?\n */\n // eslint-disable-next-line complexity\n private async _actionWrapper(inputs: IActionInput | IActionInput[], context: IActionContext, isRefreshing?: boolean): Promise {\n const actionId = this._getActionIdFromInputs(inputs);\n const action = this._getActionFromId(actionId);\n\n try {\n // Run pre data action hooks\n const _inputs = await this._runPreHooks(actionId, inputs, context);\n if (_inputs) {\n inputs = _inputs;\n }\n } catch (e) {\n const convertedError = this._convertToJSError(e);\n StaticTelemetry.log(\n LogLevel.Error,\n `Error executing pre-hooks for ${\n isRefreshing ? 'Refreshing' : ''\n } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n {\n values: [\n actionId || (action && action.name) || 'unnamed',\n convertedError.name || convertedError.message,\n (convertedError).data ? (convertedError).data.CorrelationId : ''\n ],\n exception: e\n }\n );\n return new ActionError(e);\n }\n let actionResult;\n try {\n const timeOut = Number(_get(context, 'requestContext.query.actionTimeout'));\n const features = _get(context, 'requestContext.features', {});\n const serverSideCustomerTimeout =\n msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.serverSideDataActionTimeoutInMs;\n const clientSideCustomerTimeout =\n msdyn365Commerce.platformSettings && msdyn365Commerce.platformSettings.clientSideDataActionTimeoutInMs;\n let promises;\n if (process.env.CURRENT_ENVIRONMENT === 'node' && (features.action_timeout || serverSideCustomerTimeout)) {\n const timeOutValue = (features.action_timeout && timeOut ? timeOut : serverSideCustomerTimeout) || defaultTimeoutInMS;\n promises = [this.isObservable ? ObservableActionTimer(timeOutValue) : ActionTimer(timeOutValue), action(inputs, context)];\n } else if (typeof window !== 'undefined' && msdyn365Commerce.isBrowser && clientSideCustomerTimeout) {\n promises = [\n this.isObservable ? ObservableActionTimer(clientSideCustomerTimeout) : ActionTimer(clientSideCustomerTimeout),\n action(inputs, context)\n ];\n } else {\n promises = [action(inputs, context)];\n }\n // run the data action\n actionResult = await Promise.race(promises);\n } catch (e) {\n if (e.message && e.message.length > 0 && !e.message.includes('Action id')) {\n e.message = `Action id: ${actionId}, Error message: ${e.message}`;\n }\n const convertedError = this._convertToJSError(e);\n StaticTelemetry.log(\n LogLevel.Error,\n `Error executing ${\n isRefreshing ? 'Refreshing' : ''\n } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n {\n values: [\n actionId || (action && action.name) || 'unnamed',\n convertedError.name || convertedError.message,\n (convertedError).data ? (convertedError).data.CorrelationId : ''\n ],\n exception: e\n }\n );\n let error = new ActionError(e);\n // For AsyncResult, we need to signal that this was a rejection by throwing\n if (this.isObservable) {\n // Proxy Errors come wrapped as an array\n if (Array.isArray(e)) {\n error =\n e[0]._errorCode === ErrorTypeEnum.SERVICE_UNAVAILABLE\n ? new ActionError(ActionErrorStatus.ServiceUnavailable)\n : ProxyError.toError(e[0]);\n } else {\n error =\n e._errorCode === ErrorTypeEnum.SERVICE_UNAVAILABLE\n ? new ActionError(ActionErrorStatus.ServiceUnavailable)\n : new ActionError(e);\n }\n }\n\n throw error;\n }\n\n try {\n // Run post data action hooks\n const result = await this._runPostHooks(actionId, inputs, actionResult, context);\n if (result) {\n actionResult = result;\n }\n this._runPostReadHooks(actionId, inputs, actionResult, context)\n .then(() => null)\n .catch(err => null);\n this._runPostReaderHooks(actionId, inputs, actionResult, context)\n .then(() => null)\n .catch(err => null);\n } catch (e) {\n const convertedError = this._convertToJSError(e);\n StaticTelemetry.log(\n LogLevel.Error,\n `Error executing post-hooks for ${\n isRefreshing ? 'Refreshing' : ''\n } action '{actionName}', returning null. Error '{errorName}'. CorrelationId: '{CorrelationId}'`,\n {\n values: [\n actionId || (action && action.name) || 'unnamed',\n convertedError.name || convertedError.message,\n (convertedError).data ? (convertedError).data.CorrelationId : ''\n ],\n exception: e\n }\n );\n }\n return actionResult;\n }\n\n private _shouldUseInstanceCache = () => {\n return checkVersionForFeature('instance_cache') || msdyn365Commerce.platformSettings?.shouldUseInstanceCache;\n };\n\n private _saveResponseToCache(\n uncached: IActionInput[],\n outputs: any[],\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null\n ): void {\n uncached.forEach((i, idx) => {\n const actionId = this._getActionIdFromInputs(i);\n if (i instanceof DataServiceRequest && !!i.getCacheObjectType()) {\n try {\n const appCacheData = appCache;\n const disableUsingInstanceCache =\n context.requestContext.features && context.requestContext.features.disable_instance_cache;\n const usingInstanceCache = !disableUsingInstanceCache && this._shouldUseInstanceCache();\n saveCacheEntries(i, outputs[idx], requestCache, appCacheData, shouldWriteToAppCache(i, appCache), usingInstanceCache);\n } catch (e) {\n const { action } = this;\n const actionName = actionId || (action && action.name) || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution action '{actionName}', returning null\",\n {\n values: [asSystemMetadata(actionName)],\n exception: e\n },\n LogLevel.Trace\n );\n\n return null;\n }\n } else {\n const entityId = i.getCacheKey();\n const entityType = i.getCacheObjectType();\n\n if (!!entityId && !!entityType) {\n const entry = outputs[idx];\n const cacheKey = { typeName: entityType, key: entityId };\n if (ActionError.isActionError(entry)) {\n if (!ActionError.isTimeoutError(entry)) {\n requestCache.put(cacheKey, { item: ((entry)).error, error: true });\n }\n // else do nothing\n } else {\n if (appCache && shouldWriteToAppCache(i, appCache)) {\n appCache.put(cacheKey, { item: entry });\n }\n const cacheEntry = { item: entry };\n if (i.dataCacheType && i.dataCacheType() === 'instance') {\n Object.assign(cacheEntry, { instance: 'instance' });\n }\n requestCache.put(cacheKey, cacheEntry);\n }\n }\n }\n });\n }\n\n /**\n * Method that executes a set of batchable observable data actions\n * @param uncached The uncached action inputs\n * @param requestCache The request cache\n * @param appCache The application cache, if available\n * @param context The action context\n */\n private _executeBatchedObservableActions(\n uncached: IActionInput[],\n requestCache: ICache,\n appCache: ICache | null,\n context: IActionContext,\n isRefreshing: boolean = false\n ): void {\n const unresolvedSet = new Set();\n const uncachedInputs: IActionInput[] = [];\n // Create an OP for each input in the batch that does not yet exist in cache\n const asyncOutputs = uncached\n .map((input, index) => {\n unresolvedSet.add(index);\n const executor = (resolve: any, reject: any) => {\n // When the side promise completes, update each individual OP to have it's piece of the entire batched result\n new Promise((innerResolve, innerReject) => {\n const onEventIdCompletion = (value: any) => {\n innerResolve(<{}>value);\n };\n\n const onEventIdFinalCompletion = () => {\n innerResolve();\n };\n\n const onEventIdFailure = (error: any) => {\n innerReject(error);\n };\n\n // Standard success event\n EventHelper.on(`${this.eventId}-complete-${index}-${input.getCacheKey()}`, onEventIdCompletion);\n\n // No response closing event\n EventHelper.on(`${this.eventId}-final-complete-${index}-${input.getCacheKey()}`, onEventIdFinalCompletion);\n\n // Failure event\n EventHelper.on(`${this.eventId}-failure`, onEventIdFailure);\n })\n .then(result => {\n EventHelper.removeAllListeners(`${this.eventId}-complete-${index}-${input.getCacheKey()}`);\n EventHelper.removeAllListeners(`${this.eventId}-final-complete-${index}-${input.getCacheKey()}`);\n resolve(result);\n })\n .catch(error => {\n EventHelper.removeAllListeners(`${this.eventId}-failure`);\n reject(error);\n });\n };\n\n // Already cached OP logic (rerun)\n // we only try to fetch the saved promise from cache when the retail proxy data action has cached type\n let cachedPromise;\n if (this._checkShouldInteractWithCache(input, input.getCacheObjectType())) {\n cachedPromise = requestCache.getValue({ key: input.getCacheKey(), typeName: input.getCacheObjectType() });\n }\n if (cachedPromise && isAsyncResult(cachedPromise) && !isRefreshing) {\n (>cachedPromise).run(executor);\n return;\n }\n\n // Not yet cached OP logic (initialize, run)\n uncachedInputs.push(input);\n return new AsyncResult(executor);\n })\n .filter(Boolean);\n\n // Save never before cached OPs to cache\n this._saveResponseToCache(uncachedInputs, asyncOutputs, context, requestCache, appCache);\n\n // Run the actual action\n this._actionWrapper(uncached, context, isRefreshing)\n .then((actionResults: unknown[]) => {\n // Emit events with the associated result so that each individual OP in the cache\n // can be updated appropriately\n actionResults.forEach((actionResult, index) => {\n unresolvedSet.delete(index);\n EventHelper.emit(`${this.eventId}-complete-${index}-${uncached[index].getCacheKey()}`, actionResult);\n });\n })\n .catch(error => {\n EventHelper.emit(`${this.eventId}-failure`, error);\n })\n .finally(() => {\n // In the event some inputs do not have results, we need to resolve the promises anyhow\n unresolvedSet.forEach(unresolvedIndex => {\n const index = unresolvedIndex;\n EventHelper.emit(`${this.eventId}-final-complete-${index}-${uncached[index].getCacheKey()}`);\n });\n });\n }\n\n /**\n * Executes a standard (non-batched) observable data action\n * @param input The action input\n * @param requestCache The request cache\n * @param appCache The application cache, if available\n * @param context The action context\n */\n private _executeObservableAction(\n input: IActionInput,\n requestCache: ICache,\n appCache: ICache | null,\n context: IActionContext,\n isRefreshing: boolean = false\n ): void {\n const cacheKey = { key: input.getCacheKey(), typeName: input.getCacheObjectType() };\n const executor = (resolve: any, reject: any) => {\n this._actionWrapper(input, context, isRefreshing)\n .then(result => {\n resolve(result);\n })\n .catch(error => {\n // If error is timeout error, lookup app-cache if there\n // is a valid entity for the given cacheKey in app-cache\n if (ActionError.isServiceUnavailable(error) && isAppCacheData(input, appCache)) {\n const cachedItem = appCache?.getValue(cacheKey);\n if (cachedItem) {\n return resolve(cachedItem);\n }\n }\n return reject(error);\n });\n };\n // we only try to fetch the saved promise from cache when the retail proxy data action has cached type\n let cachedPromise;\n if (this._checkShouldInteractWithCache(input, input.getCacheObjectType())) {\n cachedPromise = requestCache.getValue({ key: input.getCacheKey(), typeName: input.getCacheObjectType() });\n }\n // If OP is already in cache, just rerun it\n if (cachedPromise && isAsyncResult(cachedPromise) && !isRefreshing) {\n (>cachedPromise).run(executor);\n return;\n }\n\n // Uncached promises need to be saved to cache\n const asyncOutput = new AsyncResult(executor);\n this._saveResponseToCache([input], [asyncOutput], context, requestCache, appCache);\n }\n\n private _checkForCachedData(\n inputs: IActionInput[],\n context: IActionContext,\n requestCache: ICache,\n appCache: ICache | null,\n bypassCache?: boolean,\n refreshing?: boolean\n ): IActionInput[][] {\n const mock = _get(context, 'requestContext.query.actionMock');\n\n if (mock) {\n inputs = this._interceptCacheForMocks(inputs, context, requestCache);\n }\n\n const clientHydrateCacheKey: ICacheKey = {\n key: CLIENT_HYDRATE_KEY,\n typeName: CLIENT_HYDRATE_TYPE\n };\n const isClientHydrate = requestCache.getValue(clientHydrateCacheKey);\n const disableUsingInstanceCache = context.requestContext.features && context.requestContext.features.disable_instance_cache;\n const usingInstanceCache = !disableUsingInstanceCache && this._shouldUseInstanceCache();\n // if the cache type is set a none don't check cache for data and return inputs for execution\n // lazyresponse == true means it has been called from load-data on browser. In this case, data is already present in request-cache due to run on server side\n if (this.cacheType === 'none' || refreshing) {\n // we should keep read from cache when a dataAction\n // 1. run on server\n // 2. none cache type\n // 3. action running as part of initial page load (client hydration).\n // This is important to stay consistent with what we render on server.\n // 4. when instance cache feature is on.\n if (!(this.cacheType === 'none' && inputs[0].runOn === 'server' && isClientHydrate && usingInstanceCache) || refreshing) {\n return [inputs, []];\n }\n }\n\n const uncached: IActionInput[] = [];\n const refresh: IActionInput[] = [];\n // eslint-disable-next-line complexity\n inputs.forEach((i, idx) => {\n const actionId = this._getActionIdFromInputs(i);\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n // if the retail proxy action does not have return type, we do not check if its in the cache\n if (i instanceof DataServiceRequest && !cacheKey.typeName) {\n uncached.push(i);\n return;\n }\n let cacheItem: ICacheItem | undefined = requestCache.get(cacheKey);\n if (cacheItem && isAsyncResult(cacheItem.item) && (>cacheItem.item).status === 'FAILED') {\n if (!i.runOn || i.runOn !== 'serverOnly') {\n uncached.push(i);\n }\n } else if (cacheItem && cacheItem.item && cacheItem.item.status === 'LOADING' && cacheItem.item.runOn === 'client') {\n // Ideally, an action configured to runOn client should never interfere with actions running on server.\n // However, it is possible that parent action with runon 'server' could be dependent on an action that is configured\n // by partner to be runOn 'client'. In this case, the child action implicitly becomes a server action. Therefore, lets\n // include such actions in the uncached list so that it gets picked and executed later.\n uncached.push(i);\n } else if (i instanceof DataServiceRequest) {\n try {\n if (bypassCache && context.requestContext.features && !!!context.requestContext.features.disable_bypass_request_cache) {\n uncached.push(i);\n } else {\n const appCacheData = appCache;\n const cacheEntries = readCacheEntries(\n i,\n requestCache,\n appCacheData,\n !!!bypassCache && shouldReadFromAppCache(i, appCache),\n context.requestContext,\n undefined,\n !!this.isObservable\n );\n if (!cacheEntries.entry) {\n uncached.push(i);\n }\n if (cacheEntries && cacheEntries.shouldRefresh) {\n refresh.push(i);\n }\n }\n } catch (e) {\n const { action } = this;\n const actionName = actionId || (action && action.name) || 'unnamed';\n verboseLogger(\n context && context.requestContext,\n context.telemetry,\n \"Error execution action '{actionName}', returning null\",\n {\n values: [asSystemMetadata(actionName)],\n exception: e\n },\n LogLevel.Trace\n );\n uncached.push(i);\n }\n } else {\n if (bypassCache && context.requestContext.features && !context.requestContext.features.disable_bypass_request_cache) {\n uncached.push(i);\n } else {\n if (!cacheItem && !!!bypassCache && appCache && shouldReadFromAppCache(i, appCache)) {\n cacheItem = appCache.copyTo(cacheKey, requestCache, !!this.isObservable);\n if (cacheItem && cacheItem.shouldRefresh) {\n refresh.push(i);\n }\n }\n\n if (!cacheItem || !cacheItem.item) {\n uncached.push(i);\n return;\n }\n }\n }\n });\n return [uncached, refresh];\n }\n\n /**\n * Searches cache for mocks matching the inputs\n * @param inputs Current action inputs\n * @param context Current action context\n * @param requestCache Current request cache\n */\n private _interceptCacheForMocks(inputs: IActionInput[], context: IActionContext, requestCache: ICache): IActionInput[] {\n const uncached: IActionInput[] = [];\n const actionId: string = this.action.prototype.id;\n inputs.forEach(i => {\n let mockItem = this._getMockItem(i.getCacheObjectType(), i.getCacheKey(), requestCache);\n if (!mockItem && actionId) {\n mockItem = this._getMockItem(actionId, i.getCacheKey(), requestCache);\n }\n let existingItem;\n if (this._checkShouldInteractWithCache(i, i.getCacheObjectType())) {\n existingItem = requestCache.get({ typeName: i.getCacheObjectType(), key: i.getCacheKey() });\n }\n\n if (!!mockItem && !!mockItem.item && !existingItem) {\n const mockItemJSObject = toJS(mockItem.item);\n if (this.isObservable) {\n requestCache.put(\n { typeName: i.getCacheObjectType(), key: i.getCacheKey() },\n { item: AsyncResult.resolve(mockItemJSObject) }\n );\n } else {\n requestCache.put({ typeName: i.getCacheObjectType(), key: i.getCacheKey() }, { item: toJS(mockItemJSObject) });\n }\n } else {\n uncached.push(i);\n }\n });\n return uncached;\n }\n\n private _getMockItem(cacheNamespace: string, cacheKey: string, requestCache: ICache): ICacheItem | undefined {\n return (\n requestCache.get({ typeName: '__MOCK', key: `${cacheNamespace}:${cacheKey}` }) ||\n requestCache.get({ typeName: '__MOCK', key: `${cacheNamespace}:*` })\n );\n }\n\n private _convertToJSError(e: any): Error {\n // Proxy Error usually comes wrapped in an array\n // If it is, unbox it and conver to regular Error\n if (Array.isArray(e)) {\n const proxyError: ProxyError = e[0];\n if (proxyError.ErrorCode) {\n return ProxyError.toError(proxyError);\n }\n } else if (e.ErrorCode) {\n return ProxyError.toError(e);\n }\n // Return regular Error if not ProxyError\n return new Error(e.message || '');\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport {\n CacheType,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric,\n IRequestContext\n} from '@msdyn365-commerce/core-internal';\nimport { getCatalogsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CatalogsDataActions.g';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\nconst buildCacheKey = (base: string, apiSettings: ICommerceApiSettings, locale?: string): string => {\n return `${base}-chanId:${apiSettings.channelId}-catId:${apiSettings.catalogId}${locale ? `-${locale}` : ''}`;\n};\n\n/**\n * Input for get-catalogs data action.\n */\nexport class CatalogsInput implements IActionInput {\n public readonly channelId: number;\n\n public readonly customerAccountNumber?: string;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n private readonly locale?: string;\n\n public constructor(context: IRequestContext, customerAccountNumber?: string) {\n this.channelId = context.apiSettings.channelId ? Number(context.apiSettings.channelId) : 0;\n this.customerAccountNumber = customerAccountNumber ? customerAccountNumber : context.user.customerAccountNumber;\n this.apiSettings = context.apiSettings;\n this.locale = context.locale || '';\n }\n\n /**\n * Get Cache Key.\n * @returns - Cache key string.\n */\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- customer account number can be undefined.\n // Removing customer account number dependency as API does not need customer account number and cache is of request type.\n // Keeping the contract same not to break backward compatibility.\n public getCacheKey = (): string => buildCacheKey(`${this.channelId}`, this.apiSettings, this.locale);\n\n /**\n * Get Cache object type.\n * @returns - Cache object type.\n */\n public getCacheObjectType = (): string => 'productCatalogs';\n\n /**\n * Get data cache type.\n * @returns - Cache type enum.\n */\n public dataCacheType = (): CacheType => 'request';\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData - The input data passed to the createInput method.\n * @param customerAccountNumber - Customer account number.\n * @returns - Catalogs input.\n */\nexport const createCatalogsInput = (inputData: ICreateActionContext>, customerAccountNumber?: string): IActionInput => {\n if (!inputData.requestContext.user.isAuthenticated) {\n throw new Error('Unable to get product catalog. User is not authenticated.');\n }\n return new CatalogsInput(inputData.requestContext, customerAccountNumber);\n};\n\n/**\n * Calls the Retail API and returns the product catalog for an user.\n * @param input - Catalogs Input.\n * @param context - Current context.\n * @returns - Product catalog for the user.\n */\nexport async function getCatalogAction(input: CatalogsInput, context: IActionContext): Promise {\n const productCatalogs = await getCatalogsAsync({ callerContext: context }, input.channelId, true);\n return productCatalogs;\n}\n\n/**\n * The GetProductCatalogs Data Action\n * Returns product catalogs.\n */\nexport const getCatalogActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-catalogs',\n action: getCatalogAction as IAction,\n input: createCatalogsInput\n});\n\nexport default getCatalogActionDataAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IActionContext, IRequestContext, IRequestContextParams } from '@msdyn365-commerce/core-internal';\nimport { ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { CatalogsInput, getCatalogActionDataAction } from './actions/get-catalogs';\n\n/**\n * Returns catalog name for a given catalog id\n * @param context Action Context\n * @param context Catalog Id\n */\nexport const getCatalogName = async (context: IActionContext, catalogId: number): Promise => {\n if (!context || !context.requestContext || !context.requestContext.apiSettings) {\n return '';\n }\n\n const customerAccountNumber = context.requestContext.user.customerAccountNumber;\n const productCatalogs = await getCatalogActionDataAction(new CatalogsInput(context.requestContext, customerAccountNumber), context);\n\n return findCatalogName(productCatalogs, catalogId);\n};\n\n/**\n * Returns true if data action cache needs to be bypassed\n * @param requestContext rendering context\n * @returns cachebypass status\n */\nexport const shouldByPassCache = (requestContext: IRequestContext) => {\n return (requestContext.query && !!requestContext.query.cachebypass) || isPageInsightsEnabled(requestContext.params);\n};\n\nconst isPageInsightsEnabled = (params: IRequestContextParams): boolean => {\n return params?.pageInsights === 'all' || params?.pageInsights === 'info' || params?.pageInsights === 'error';\n};\n\n/**\n * Matches the catalog if with the productCatalogs response and returns catalog name\n * @param productCatalogs Product catalogs response\n * @param catalogId Catalog id to search in Product catalogs response\n * @returns Catalog name\n */\nexport const findCatalogName = (productCatalogs: ProductCatalog[], catalogId: number): string => {\n let catalogName = '';\n productCatalogs &&\n productCatalogs.forEach((catalog: ProductCatalog) => {\n if (catalog.RecordId === catalogId && catalog.Name) {\n catalogName = catalog.Name;\n }\n });\n return catalogName;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { ICache, ICacheItem, ICacheKey, ICacheSource, RequestCache } from '@msdyn365-commerce/cache-internal';\nimport {\n IAction,\n IActionContext,\n IActionInput,\n IDataActionOptions,\n msdyn365Commerce,\n verboseLogger\n} from '@msdyn365-commerce/core-internal';\nimport { AsyncResult, DataServiceRequest, isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport {\n asSystemMetadata,\n GenericConsoleLogger,\n ITelemetry,\n LogLevel,\n StaticTelemetry,\n Telemetry\n} from '@msdyn365-commerce/telemetry-internal';\nimport uuidv1 from 'uuid/v1';\nimport ActionExecutor from './action-executor';\nimport { ActionRegistrar } from './action-registrar';\nimport { shouldWriteToAppCache } from './action-runtime-utils';\nimport { addLocaleInformation, readCacheEntries, saveCacheEntries } from './cache/retail-cache-helper';\nimport EventHelper from './event-emitter';\nimport { shouldByPassCache } from './helpers';\n\n/**\n * Cache key for actions which needs to be refreshed after page render\n */\nexport const REFRESH_ACTIONS_CACHE_KEY: ICacheKey = {\n typeName: '__REFRESH_CONFIGS_TYPE__',\n key: '__refresh_cache_key'\n};\n\n/**\n * This interface is used in ActionContext only, for saving information needed to refresh data actions.\n *\n */\nexport interface IRefreshConfigs {\n actionInputs: IActionInput[];\n paramExecutor: ActionExecutor;\n}\n/**\n * This class contains the primary logic which controls the execution flow of the action runtime\n *\n */\n/* @internal*/\n/**\n *\n */\nexport class ActionContext implements IActionContext {\n public static maxDepth: number = 200;\n\n public readonly executionParams: ActionExecutor[] = [];\n public readonly requestContext: any;\n\n /**\n * Telemetry object to log information\n */\n public telemetry: ITelemetry;\n\n private readonly requestCache: ICache;\n private readonly appCache: ICache | null = null;\n private readonly cacheKeyMap: string[] = [];\n private readonly refreshConfigs: IRefreshConfigs[] = [];\n\n /**\n * Action context creates a new instance for every tier of execution,\n * This number specifies the depth/current tier in the execution flow\n */\n private readonly currentExecutionTier: number;\n\n /**\n * Thread ID\n */\n private readonly threadId: string;\n\n /**\n * Event ID\n * Unique ID for each action context, automatically generated\n */\n private readonly eventId: string;\n\n /**\n * Whether the current context as executed\n */\n private hasRun: boolean = false;\n\n /**\n * When this number is > 0, the current context will wait for all the actions to\n * be queued before kicking off execution.\n * This number is decremented for every action that is successful in current tier.\n */\n private expectedActionsInCurrentTier: number;\n\n /**\n * variable tracking the current number of actions that are in queue, context will wait for this to match the expected count\n */\n private currentActionsInQueue: number = 0;\n\n /**\n * Object to track the next tier number.\n */\n private nextTierCounter: { next: number } = { next: 0 };\n\n /**\n * When true will span a new independent action context when an action is executed resetting depth limits\n * Otherwise will invoke the action in the current context.\n */\n private spawnChildOnExecute: boolean = false;\n\n /**\n * @param currentExecutionTier: Current execution tier in the data fetch pipeline, max is currently 7\n * @param expectedActionCount: This value specifies the expected number of actions to be queued before\n * we kick off execution in the current tier\n */\n constructor(args: {\n id: string;\n requestContext: any;\n requestCache: ICache;\n appCache: ICache | null;\n currentExecutionTier?: number;\n expectedActionCount?: number;\n spawnChildOnExecute?: boolean;\n telemetry?: ITelemetry;\n }) {\n const {\n id,\n requestContext,\n requestCache,\n appCache,\n currentExecutionTier,\n expectedActionCount,\n spawnChildOnExecute,\n telemetry\n } = args;\n this.threadId = id;\n this.eventId = uuidv1();\n\n this.currentExecutionTier = currentExecutionTier || 0;\n if (this.currentExecutionTier === 0) {\n this.nextTierCounter = { next: 0 };\n }\n\n this.expectedActionsInCurrentTier = expectedActionCount || 0;\n this.requestCache = requestCache;\n this.requestContext = requestContext || {};\n this.spawnChildOnExecute = Boolean(spawnChildOnExecute);\n\n // If a telemetry object has been passed in use that telemetry object, otherwise create a new Telemetry object\n if (telemetry) {\n this.telemetry = telemetry;\n } else {\n // register default console logger\n const moduleTelemetry = new Telemetry();\n const isDebug = requestContext.params && requestContext.params.isDebug;\n\n // register tracelogger only in development environment or debug is true.\n (process.env.NODE_ENV === 'development' || isDebug) &&\n moduleTelemetry.registerTraceLogger({ traceLogger: GenericConsoleLogger, options: { isDebug: isDebug } });\n\n this.telemetry = moduleTelemetry;\n }\n\n /**\n * @deprecated\n * Trace is an alias for telemetry.log(LogLevel.Trace, message)\n * Use the telemetry object directly.\n */\n this.trace = (message: string) => {\n this.telemetry.log(LogLevel.Debug, message);\n };\n\n // enable app cache only if the disable_app_cache feature switch is false\n if (requestContext.features && !!!requestContext.features.disable_app_cache) {\n this.appCache = appCache;\n }\n }\n\n public getRefreshActions(): IRefreshConfigs[] {\n return this.refreshConfigs;\n }\n\n /**\n * Chains an action method to the current context for execution\n * @param action - action method\n * @param inputs - action input\n */\n public chainAction(\n _action: IAction,\n inputs: IActionInput | IActionInput[],\n actionOption?: IDataActionOptions\n ): Promise {\n const action = ActionRegistrar.unwrapAction(_action);\n addLocaleInformation(inputs, this.requestContext.locale);\n if (!action || !inputs) {\n // Decrement the expected actions on this tier since this action was incorrectly configured\n this.expectedActionsInCurrentTier--;\n if (this.currentActionsInQueue < this.expectedActionsInCurrentTier) {\n return Promise.resolve(null);\n }\n\n if (!this.hasRun) {\n return this.runAllActionsInQueue().then(() => null);\n }\n\n return Promise.resolve(null);\n }\n\n if (this.isMaxDepthExceeded()) {\n this.debug('Max depth exceeded - not running further.');\n return Promise.resolve(null);\n }\n\n if (this.hasRun) {\n // If the parent action decides to queue another action after the current tier completes execution\n // then set the hasRun to false, so the action can fire right away\n this.hasRun = false;\n this.executionParams.length = 0;\n this.currentActionsInQueue = 0;\n }\n\n this.currentActionsInQueue++;\n const isBatched = action.prototype.isBatched;\n const inputsArray = (isBatched ? inputs : [inputs]);\n\n let current = this.executionParams.find(a => a.action === action);\n if (current && isBatched) {\n current.addInputs(inputsArray);\n } else {\n const inputIdentifier = `${inputsArray[0].getCacheObjectType()}||${inputsArray[0].getCacheKey()}`;\n if (!this.cacheKeyMap.find(key => key === inputIdentifier)) {\n current = new ActionExecutor(action, inputsArray, this.telemetry, actionOption);\n this.executionParams.push(current);\n this.cacheKeyMap.push(inputIdentifier);\n }\n }\n\n const asyncResult = new AsyncResult(async (resolve, reject) => {\n if (this.currentActionsInQueue < this.expectedActionsInCurrentTier) {\n // Hold the thread until the entire tier is populated\n await new Promise((innerResolve: Function) => {\n const onEventIdCompletion = (tierNum: number) => {\n if (tierNum === this.currentExecutionTier) {\n innerResolve();\n }\n };\n EventHelper.on<[number]>(`${this.eventId}:completed`, onEventIdCompletion);\n });\n EventHelper.removeAllListeners(`${this.eventId}:completed`);\n }\n\n if (!this.hasRun) {\n await this.runAllActionsInQueue();\n }\n\n const outputs = inputsArray.map(i => {\n if (i instanceof DataServiceRequest) {\n try {\n const appCacheData = this.appCache;\n const entry = readCacheEntries(i, this.requestCache, appCacheData, false, this.requestContext, StaticTelemetry);\n return entry.entry;\n } catch (e) {\n this.debug(\n `Error execution action type '[${i && i.getCacheObjectType()}' and cache key '[{${i &&\n i.getCacheKey()}}]', returning null`\n );\n return null;\n }\n } else {\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n const cacheItem = this.requestCache.get>(cacheKey);\n const cacheValue = !!cacheItem ? this.requestCache.getValue(cacheKey) : null;\n\n if (cacheItem && !!cacheItem.error) {\n throw cacheValue;\n } else {\n if (cacheItem && !msdyn365Commerce.isBrowser) {\n if (cacheItem.refreshStartTimeInMS) {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. last refresh time {lastRefresh}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata(cacheItem.refreshStartTimeInMS)\n ]\n }\n );\n }\n switch (cacheItem.s!) {\n case ICacheSource.AppCache: {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata('AppCache')\n ]\n }\n );\n break;\n }\n case ICacheSource.RequestCache: {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata('RequestCache')\n ]\n }\n );\n break;\n }\n default: {\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n 'dataAction with {actiontype}, {cacheKey}. source {cacheSource}',\n {\n values: [\n asSystemMetadata(i.getCacheObjectType() || 'none'),\n asSystemMetadata(i.getCacheKey()),\n asSystemMetadata('Undefined')\n ]\n }\n );\n }\n }\n }\n return cacheValue;\n }\n }\n });\n\n this.cacheKeyMap.splice(0, this.cacheKeyMap.length);\n\n // Batched observable actions need to be merged into a single AsyncResult\n if (isBatched && action.prototype.isObservable) {\n resolve(\n Promise.all(outputs).then(results => {\n // Because AsyncResult sometimes get mangled by MobX, we need to ensure mangled ones are still unwrapped\n return results.map(result => {\n return result && result._type === 'AsyncResult' ? result.result : result;\n });\n })\n );\n } else {\n // We need to pass along the metadata explicitly to the outer AsyncResult\n if (isAsyncResult(outputs[0]) && !isBatched) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n outputs[0].then(() => {\n asyncResult.metadata = outputs[0].metadata;\n });\n }\n\n resolve(isBatched ? outputs : (outputs.length && outputs[0]) || null);\n }\n });\n\n return asyncResult;\n }\n\n /**\n * Helper method to update cache\n * @param input The input\n * @param data The data\n */\n public update(inputs: IActionInput | IActionInput[], data: T): T {\n if (inputs && data) {\n // If an array of actionInputs has been passed, an equal amount of data items must be present\n const dataArray = (Array.isArray(inputs) ? data : [data]);\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n if (inputArray.length !== dataArray.length) {\n throw new Error('Array of action inputs was passed to actionContext Update, and did not match length of input data array.');\n }\n addLocaleInformation(inputArray, this.requestContext.locale);\n inputArray.map((i, idx) => {\n if (i instanceof DataServiceRequest) {\n try {\n const appCacheData = this.appCache;\n saveCacheEntries(i, dataArray[idx], this.requestCache, appCacheData, shouldWriteToAppCache(i, this.appCache));\n } catch (e) {\n this.debug(\n `Error in updating cache with input '[${i.getCacheObjectType()}]' - '[${i.getCacheKey()}]', returning null`\n );\n this.error(e);\n }\n } else {\n // When updating OPs, only result can be updated, passed OPs will also be unwrapped.\n if (isAsyncResult(dataArray[idx])) {\n dataArray[idx] = (>dataArray[idx]).result;\n }\n\n const cacheKey = { typeName: i.getCacheObjectType(), key: i.getCacheKey() };\n this.requestCache.put(cacheKey, { item: dataArray[idx] });\n if (this.appCache && shouldWriteToAppCache(i, this.appCache)) {\n this.appCache.put(cacheKey, { item: dataArray[idx] });\n }\n }\n });\n\n if (Array.isArray(inputs)) {\n return (inputs.map(input => {\n return this.requestCache.getValue({ typeName: input.getCacheObjectType(), key: input.getCacheKey() });\n }));\n } else {\n return this.requestCache.getValue({ typeName: inputs.getCacheObjectType(), key: inputs.getCacheKey() });\n }\n }\n\n // For scenarios where data/input was bad, we just return original data\n return data;\n }\n\n /**\n * Helper method to log trace using telemetry\n * @param message message to log to console\n */\n public trace = (message: string): void => {\n this.telemetry.log(LogLevel.Debug, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n values: [this.currentExecutionTier, this.threadId, message]\n });\n };\n\n /**\n * Helper method to log error using telemetry\n * @param message message to log to console\n */\n public error = (message: string): void => {\n this.telemetry.log(LogLevel.Error, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n values: [this.currentExecutionTier, this.threadId, message]\n });\n };\n\n /**\n * Helper method to log debug using telemetry\n * @param message message to log to console\n */\n public debug = (message: string): void => {\n this.telemetry.log(LogLevel.Debug, 'Depth: {currentExecutionTier}\\tID: {threadId}\\tMessage: {message}', {\n values: [this.currentExecutionTier, this.threadId, message]\n });\n };\n\n /**\n * Helper method to data cache from cache\n * if cachekey is null or empty, it returns all entries of cacheObjectType\n * @param cacheObjectType entity type that was cached\n * @param cacheKey cache key against which the object is cached\n * @throws if cacheObjecttype is null or empty\n */\n public get(cacheObjectType: string, cacheKey: string): T | T[] | null {\n if (!cacheObjectType) {\n throw new Error('Cannot have null or empty cacheObjectType');\n }\n\n if (!cacheKey) {\n throw new Error('Cannot have null or empty cacheKey');\n }\n\n const preparedCacheKey = { typeName: cacheObjectType, key: cacheKey };\n let cachedItem = this.requestCache.get(preparedCacheKey);\n\n if (process.env.CURRENT_ENVIRONMENT === 'node' && !cachedItem && this.appCache) {\n cachedItem = this.appCache.get(preparedCacheKey);\n }\n\n if (!cachedItem) {\n return null;\n }\n\n if (typeof cachedItem.item !== 'object' || cachedItem.item.$ref !== true) {\n return cachedItem.item;\n }\n\n return Array.isArray(cachedItem.item.key) ? (cachedItem.item.key)\n .map(key => this.getItemFromCache({ typeName: cacheObjectType, key }))\n .filter(Boolean) : null;\n }\n\n /**\n * Helper method to data cache from cache\n * if cachekey is null or empty, it returns all entries of cacheObjectType\n * @param input The input\n * @param data The data\n * @throws if cacheObjecttype is null or empty\n */\n public getAll(cacheObjectType: string): T[] | null {\n if (!cacheObjectType) {\n throw new Error('Cannot have null or empty cacheObjectType');\n }\n\n let cachedEntries = this.requestCache.getAllItems(cacheObjectType);\n if (!cachedEntries) {\n if (process.env.CURRENT_ENVIRONMENT === 'node' && this.appCache) {\n cachedEntries = this.appCache && this.appCache.getAllItems(cacheObjectType);\n }\n\n if (!cachedEntries) {\n return null;\n }\n }\n\n return Object.keys(cachedEntries)\n .filter(key => typeof cachedEntries![key].item !== 'object' || cachedEntries![key].item.$ref !== true)\n .map(key => cachedEntries![key].item);\n }\n\n /**\n * Executes all the actions in the current context in parallel\n */\n public async runAllActionsInQueue(): Promise {\n const { threadId, requestContext, requestCache, appCache, nextTierCounter, executionParams } = this;\n if (!executionParams.length) {\n this.trace('No actions to execute - not running further.');\n return;\n }\n // Increment the tier each pass through run all actions\n if (this.isMaxDepthExceeded()) {\n this.trace('Max depth exceeded - not running further.');\n return;\n }\n\n // When kicking off the next tier,\n // set the max number of chain actions the can be expected from child actions\n // equal to the number of actions that are executing in current tier\n const expectedNumberOfChildThreads = executionParams.length;\n\n let nextTierStartingDepth;\n if (this.spawnChildOnExecute) {\n nextTierStartingDepth = nextTierCounter.next + 1;\n } else {\n nextTierStartingDepth = ++nextTierCounter.next;\n }\n\n const nextTier = new ActionContext({\n id: threadId,\n requestContext: requestContext,\n requestCache: requestCache,\n appCache: appCache,\n currentExecutionTier: nextTierStartingDepth,\n expectedActionCount: expectedNumberOfChildThreads,\n telemetry: this.telemetry\n });\n\n const refreshconfigslocal: Set = new Set();\n\n nextTier.nextTierCounter = { next: nextTierStartingDepth };\n // DO NOT Trace using current action context, use only secondaryContext to remain consistent with actions\n const promises: Promise[] = executionParams.map(param => {\n // TODO: should we read from input about the cacheability?\n return param.execute(nextTier, requestCache, appCache, shouldByPassCache(this.requestContext), []).then(refreshActions => {\n // refresh the data actions which need to be refreshed.\n if (refreshActions.length) {\n refreshconfigslocal.add({\n paramExecutor: param,\n actionInputs: refreshActions\n });\n\n this.refreshConfigs.push({\n paramExecutor: param,\n actionInputs: refreshActions\n });\n\n const cacheValue = requestCache.get(REFRESH_ACTIONS_CACHE_KEY);\n const refreshConfigs = cacheValue ? cacheValue.item : [];\n refreshConfigs.push({\n paramExecutor: param,\n actionInputs: refreshActions\n });\n requestCache.put(REFRESH_ACTIONS_CACHE_KEY, {\n item: refreshConfigs\n });\n }\n\n // If the current chain action completes execution\n // decrement the max number of threads that we expect\n // from the next tier\n nextTier.expectedActionsInCurrentTier--;\n\n if (!nextTier.hasRun) {\n // First check if the next tier has any actions\n // then check if the number of thread match expected\n if (nextTier.currentActionsInQueue > 0 && nextTier.currentActionsInQueue === nextTier.expectedActionsInCurrentTier) {\n return nextTier.runAllActionsInQueue();\n }\n }\n });\n });\n\n // Wait until all the actions in current tier are run to completion\n return Promise.all(promises)\n .then(() => {\n if (refreshconfigslocal.size > 0 && requestContext.features && !!requestContext.features.disable_appcache_refresh_await) {\n refreshconfigslocal.forEach(rf => {\n const refreshRequestCache = new RequestCache();\n const refreshContext = new ActionContext({\n id: 'Refresh Context',\n requestContext: requestContext,\n requestCache: new RequestCache(),\n telemetry: this.telemetry,\n appCache: appCache,\n spawnChildOnExecute: true\n });\n\n rf.paramExecutor\n .execute(\n refreshContext,\n refreshRequestCache,\n this.appCache,\n shouldByPassCache(this.requestContext),\n rf.actionInputs\n )\n .then(() =>\n verboseLogger(\n this.requestContext,\n StaticTelemetry,\n `BackgroundRefresh - Executed refresh with action input ${rf.actionInputs[0].getCacheObjectType()}-${rf.actionInputs[0].getCacheKey()}`\n )\n )\n .catch(error => {\n StaticTelemetry.log(\n LogLevel.Warning,\n `BackgroundRefresh - Error execution refresh with action input ${rf.actionInputs[0].getCacheObjectType()}-${rf.actionInputs[0].getCacheKey()}`\n );\n });\n });\n }\n this._endCurrentTier();\n })\n .catch(error => {\n this._endCurrentTier();\n throw error;\n });\n }\n\n /**\n * Returns true if current tier has exceeded max depth\n */\n private isMaxDepthExceeded = (): boolean => {\n const maxDepth =\n (this.requestContext &&\n this.requestContext.app &&\n this.requestContext.app.platform &&\n this.requestContext.app.platform.maxDepth) ||\n ActionContext.maxDepth;\n return this.nextTierCounter.next > maxDepth;\n };\n\n /**\n * Retrieves item from request cache and fallsback to app cache if not found\n */\n private getItemFromCache = (cacheKey: ICacheKey): T | undefined => {\n let cachedItem = this.requestCache.get(cacheKey);\n\n if (cachedItem) {\n return cachedItem.item;\n }\n\n if (process.env.CURRENT_ENVIRONMENT === 'node' && this.appCache) {\n cachedItem = this.appCache.get(cacheKey);\n }\n\n return cachedItem ? cachedItem.item : undefined;\n };\n\n /**\n * Signals the end of current tier so actions can return the response\n */\n private _endCurrentTier = (): void => {\n this.hasRun = true;\n EventHelper.emit(`${this.eventId}:completed`, this.currentExecutionTier);\n };\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { RequestCache } from '@msdyn365-commerce/cache-internal';\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ActionContext } from './action-context';\n\n/**\n * Creates a mock but usable ActionContext.\n * @param context The partial context to add to the return action context.\n *\n * DEPRECATED: Please use buildMockActionContext and pass in a constructed\n * ActionContext to build a hydrated mock action context\n * Example:\n * const actionContext = buildMockActionContext(new ActionContext({\n * id: 'mock-context',\n * requestCache: new RequestCache(),\n * requestContext: {},\n * appCache: null\n * }));\n *\n */\nexport const buildHydratedMockActionContext = (context?: Partial): IActionContext => {\n return new ActionContext({\n id: 'mock-context',\n requestCache: new RequestCache(),\n requestContext: (context && context.requestContext) || {},\n appCache: null\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n generateImageUrlForOmniChanel,\n IAction,\n IActionContext,\n IActionInput,\n IRequestContext,\n versionGte\n} from '@msdyn365-commerce/core-internal';\nimport { getMediaLocationsAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g';\n// @ts-ignore\nimport { MediaLocation, MediaType } from '@msdyn365-commerce/retail-proxy';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\n/**\n * The action input class for the getMediaLocationsForSelectedVariant data action.\n */\nexport class MediaLocationsInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public catalogId: number;\n\n private readonly locale?: string;\n\n constructor(context: IRequestContext, productId: number, channelId: number, catalogId?: number) {\n this.productId = productId;\n this.channelId = channelId;\n this.catalogId = catalogId || 0;\n this.locale = context.locale;\n }\n\n public getCacheKey = () => `${this.productId}-${this.channelId}-${this.catalogId}-${this.locale}}`;\n\n public getCacheObjectType = () => 'ProductMediaLocations';\n\n public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * The action method for the getMediaLocationsForSelectedVariant data action.\n * @param input\n * @param ctx\n */\nexport async function getMediaLocationsForProductAction(input: MediaLocationsInput, ctx: IActionContext): Promise {\n const rsVersion =\n !process.env.MSDyn365Commerce_RSVERSION || process.env.MSDyn365Commerce_RSVERSION === '--'\n ? '0.0'\n : process.env.MSDyn365Commerce_RSVERSION;\n const OmniChannelMediaFeatureVersion = versionGte(rsVersion, '9.43');\n if (!OmniChannelMediaFeatureVersion) {\n return [];\n }\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- Need for Omni feature.,\n const types = require('@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g');\n\n // TODO: once the dynamicProvider api for fetching the media locations from the azureCms is implemented\n // we should uncomment these code so we can preview the product in edit mode without publish the product.\n // if (ctx.requestContext.params && ctx.requestContext.params.isEditor) {\n // return getOmniChannelMediaInfoAsync(ctx.requestContext, input.productId);\n // }\n\n let productMediaLocations = [];\n try {\n productMediaLocations = await getMediaLocationsAsync(\n {\n callerContext: ctx,\n queryResultSettings: {\n Paging: { Top: Number.parseInt(ctx.requestContext?.app?.platform?.defaultPageSizeForAPI ?? 100, 10) }\n }\n },\n input.productId,\n input.channelId,\n input.catalogId\n );\n } catch (error) {\n ctx.telemetry.error(`Error running getMediaLocationsAsync action: ${error}`);\n return [];\n }\n\n // Filtering product images and videos only\n let productImagesAndVideos = productMediaLocations.filter(\n // @ts-ignore\n media => media.MediaTypeValue === types.MediaType.Image || media.MediaTypeValue === types.MediaType.Video\n );\n if (productImagesAndVideos.length === 0) {\n return [];\n }\n\n // sorting the images by display order settings.\n productImagesAndVideos = productImagesAndVideos.sort((a, b) => {\n // @ts-ignore\n if (typeof a.DisplayOrder === 'undefined' && typeof b.DisplayOrder === 'undefined') {\n return 0;\n // @ts-ignore\n } else if (typeof a.DisplayOrder === 'undefined') {\n return 1;\n // @ts-ignore\n } else if (typeof b.DisplayOrder === 'undefined') {\n return -1;\n } else {\n // @ts-ignore\n return a.DisplayOrder - b.DisplayOrder;\n }\n });\n const productMedia = productImagesAndVideos.map((mediaLocation: MediaLocation) => {\n const mediaLoc = { ...mediaLocation };\n // @ts-ignore\n if (mediaLoc.MediaTypeValue === types.MediaType.Image) {\n mediaLoc.Uri = generateImageUrlForOmniChanel(ctx.requestContext.apiSettings, mediaLocation.Uri);\n }\n return mediaLoc;\n });\n\n return productMedia;\n}\n\n/**\n * The getMediaLocationsForSelectedVariant data action\n * Gets the currently selected variant for the page via the getSelectedVariant data action,\n * and then gets the media location information for the variant via the MediaLocations RetailServer API.\n */\nexport const getMediaLocationsForSelectedVariantActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-mediaLocations',\n action: >getMediaLocationsForProductAction\n});\n\nexport default getMediaLocationsForProductAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n generateImageUrlForOmniChanel,\n IAction,\n IActionContext,\n IActionInput,\n IRequestContext,\n versionGte\n} from '@msdyn365-commerce/core-internal';\n// @ts-ignore\nimport { MediaLocation, MediaType } from '@msdyn365-commerce/retail-proxy';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\nexport enum MediaLocationType {\n All,\n Image,\n Video,\n File\n}\n\n/**\n * The action input class for the getAdditionalMediaLocationsForSelectedVariant data action.\n */\nexport class AdditionalMediaLocationsInput implements IActionInput {\n public productId: number;\n\n public channelId: number;\n\n public catalogId: number;\n\n // defaulting to image for backwards compatibility, old version filters Image by default.\n public typeFilter: MediaLocationType;\n\n private readonly locale?: string;\n\n constructor(context: IRequestContext, productId: number, channelId: number, catalogId?: number, typeFilter = MediaLocationType.All) {\n this.productId = productId;\n this.channelId = channelId;\n this.catalogId = catalogId || 0;\n this.typeFilter = typeFilter;\n this.locale = context.locale;\n }\n\n public getCacheKey = () => `${this.productId}-${this.channelId}-${this.catalogId}-${this.locale}}-${this.typeFilter}`;\n\n public getCacheObjectType = () => 'ProductAdditionalMediaLocations';\n\n public dataCacheType = (): CacheType => 'application';\n}\n\n/**\n * The action method for the getAdditionalMediaLocationsForSelectedVariant data action.\n * @param input\n * @param ctx\n */\nexport async function getAdditionalMediaLocationsForProductAction(\n input: AdditionalMediaLocationsInput,\n ctx: IActionContext\n): Promise {\n const rsVersion =\n !process.env.MSDyn365Commerce_RSVERSION || process.env.MSDyn365Commerce_RSVERSION === '--'\n ? '0.0'\n : process.env.MSDyn365Commerce_RSVERSION;\n const OmniChannelAdditionalMediaFeatureVersion = versionGte(rsVersion, '9.46');\n if (!OmniChannelAdditionalMediaFeatureVersion) {\n return [];\n }\n // the types and productActions are not available in all versions of retail-proxy, so they are imported by direct reference after comparing the version to the minimum required(9.46)\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- Need for Omni feature.,\n const types = require('@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g');\n // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires -- Need for Omni feature.,\n const productActions = require('@msdyn365-commerce/retail-proxy/dist/DataActions/ProductsDataActions.g');\n\n // TODO: once the dynamicProvider api for fetching the media locations from the azureCms is implemented\n // we should uncomment these code so we can preview the product in edit mode without publish the product.\n // if (ctx.requestContext.params && ctx.requestContext.params.isEditor) {\n // return getOmniChannelMediaInfoAsync(ctx.requestContext, input.productId);\n // }\n\n let productMediaLocations = [];\n try {\n productMediaLocations = await productActions.searchMediaLocationsAsync(\n {\n callerContext: ctx,\n queryResultSettings: {\n Paging: { Top: Number.parseInt(ctx.requestContext?.app?.platform?.defaultPageSizeForAPI ?? 100, 10) }\n }\n },\n {\n ProductId: input.productId,\n ChannelId: input.channelId,\n CatalogId: input.catalogId,\n MediaUsageTypeValue: 1\n }\n );\n } catch (error) {\n ctx.telemetry.error(`Error running searchMediaLocationsAsync action: ${error}`);\n return [];\n }\n\n // Need to add a second enum for MediaTypeValue because the RetailServer API returns a different enum for the MediaTypeValue property,\n // where default is \"None\" instead of \"All\"\n let filteredMedia: MediaLocation[] = [];\n switch (input.typeFilter) {\n case MediaLocationType.Image:\n // @ts-ignore\n filteredMedia = productMediaLocations.filter(media => media.MediaTypeValue === types.MediaType.Image);\n break;\n case MediaLocationType.Video:\n // @ts-ignore\n filteredMedia = productMediaLocations.filter(media => media.MediaTypeValue === types.MediaType.Video);\n break;\n case MediaLocationType.File:\n // @ts-ignore\n filteredMedia = productMediaLocations.filter(media => media.MediaTypeValue === types.MediaType.File);\n break;\n default:\n filteredMedia = productMediaLocations;\n }\n if (filteredMedia.length === 0) {\n return [];\n }\n\n // sorting the images by display order settings.\n filteredMedia = filteredMedia.sort((a, b) => {\n // @ts-ignore\n if (typeof a.DisplayOrder === 'undefined' && typeof b.DisplayOrder === 'undefined') {\n return 0;\n // @ts-ignore\n } else if (typeof a.DisplayOrder === 'undefined') {\n return 1;\n // @ts-ignore\n } else if (typeof b.DisplayOrder === 'undefined') {\n return -1;\n } else {\n // @ts-ignore\n return a.DisplayOrder - b.DisplayOrder;\n }\n });\n const productMedia = filteredMedia.map((mediaLocation: MediaLocation) => {\n mediaLocation.Uri = generateImageUrlForOmniChanel(ctx.requestContext.apiSettings, mediaLocation.Uri);\n mediaLocation.AltText = mediaLocation.AltText;\n return mediaLocation;\n });\n return productMedia;\n}\n\n/**\n * The getAdditionalMediaLocationsForSelectedVariantActionDataAction data action\n * Gets the currently selected variant for the page via the getSelectedVariant data action,\n * and then gets the media location information for the variant via the MediaLocations RetailServer API.\n */\nexport const getAdditionalMediaLocationsForSelectedVariantActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-additional-mediaLocations',\n action: >getAdditionalMediaLocationsForProductAction\n});\n\nexport default getAdditionalMediaLocationsForProductAction;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n CacheType,\n IAction,\n IActionContext,\n IActionInput,\n IAny,\n ICommerceApiSettings,\n ICreateActionContext,\n IGeneric\n} from '@msdyn365-commerce/core-internal';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { readAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/CustomersDataActions.g';\nimport { createObservableDataAction } from '../create-data-action.vnext';\n\n/**\n * Input class for get customer data action.\n */\nexport class GetCustomerInput implements IActionInput {\n public customerAccountNumber?: string;\n\n private readonly apiSettings: ICommerceApiSettings;\n\n private readonly cacheType?: CacheType;\n\n public constructor(apiSettings: ICommerceApiSettings, accountNumber?: string, cacheType?: CacheType) {\n this.customerAccountNumber = accountNumber;\n this.apiSettings = apiSettings;\n this.cacheType = cacheType;\n }\n\n /**\n * GetCacheKey.\n * @returns - Returns string.\n */\n public getCacheKey = (): string => `Customer-${this.customerAccountNumber}-chanId:${this.apiSettings.channelId}`;\n\n /**\n * GetCacheObjectType.\n * @returns - Cache Object Type string.\n */\n public getCacheObjectType = (): string => 'Customer';\n\n /**\n * DataCacheType.\n * @returns - CacheType string.\n */\n public dataCacheType = (): CacheType => {\n return this.cacheType ? this.cacheType : 'request';\n };\n}\n\n/**\n * Creates the input required to make the retail api call.\n * @param inputData -- The input data passed to the createInput method.\n * @returns - GetCustomer input.\n */\nexport const createGetCustomerInput = (inputData: ICreateActionContext>): GetCustomerInput => {\n const { user, apiSettings } = inputData.requestContext;\n if (!user.token || !user.isAuthenticated) {\n throw new Error('[getCustomer][createInput]: User is not Authenticated.');\n }\n\n return new GetCustomerInput(apiSettings);\n};\n\n/**\n * GetCustomerAction.\n * @param input - GetCustomerInput.\n * @param ctx - Action Context.\n * @returns - Customer information.\n */\nconst getCustomerAction = async (input: GetCustomerInput, ctx: IActionContext): Promise => {\n if (input && ctx.requestContext.user.isAuthenticated) {\n try {\n return readAsync({ callerContext: ctx, bypassCache: 'get' }, '').then(response => {\n return Array.isArray(response) ? response[0] : response;\n });\n } catch (error) {\n ctx.telemetry.error(`Error running getCustomer action: ${error}`);\n return {};\n }\n }\n\n ctx.telemetry.warning('[getCustomer]Invalid input passed to action');\n return {};\n};\n\n/**\n * The customer data action.\n */\nexport const getCustomerActionDataAction = createObservableDataAction({\n id: '@msdyn365-commerce/get-customer',\n action: >getCustomerAction,\n input: createGetCustomerInput\n});\n\nexport default getCustomerActionDataAction;\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { BusinessPartner, OrderShipments, BusinessPartnerProspect, BusinessPartnerUser } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function businessPartnersQuery(businessPartnerId?: string): DataServiceQuery {\n var key = (businessPartnerId) ? { BusinessPartnerId: businessPartnerId } : null;\n return new DataServiceQuery(\"BusinessPartners\", \"BusinessPartner\", \"BusinessPartnerClass\", key);\n }\n \n export function createCreateInput(entity: BusinessPartner): IDataServiceRequest {\n return businessPartnersQuery().create(entity);\n }\n\n export function createBusinessPartnerAsync(context: IContext, entity: BusinessPartner): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: BusinessPartner): IDataServiceRequest {\n return businessPartnersQuery(entity.BusinessPartnerId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: BusinessPartner): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: BusinessPartner): IDataServiceRequest {\n return businessPartnersQuery(entity.BusinessPartnerId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: BusinessPartner): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(businessPartnerId: string): IDataServiceRequest {\n return businessPartnersQuery(businessPartnerId).read();\n }\n\n export function readAsync(context: IContext, businessPartnerId: string): AsyncResult {\n const request = createReadAsync(businessPartnerId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return businessPartnersQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetOrderHistoryInput(queryResultSettings: IQueryResultSettings, businessPartnerId: string, ): IDataServiceRequest { \n const query = businessPartnersQuery(businessPartnerId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderHistory', false, \n 'OrderShipmentsClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrderShipments'}, { });\n } \n \n export function getOrderHistoryAsync(context: IContext, businessPartnerId: string):AsyncResult {\n const request = createGetOrderHistoryInput(context.queryResultSettings, businessPartnerId);\n return executeAction(request, context);\n } \n \n export function createCreateProspectInput(businessPartnerProspect?: BusinessPartnerProspect | null): IDataServiceRequest { \n const query = businessPartnersQuery();\n return query.createDataServiceRequestForOperation('CreateProspect', true, \n 'BusinessPartnerProspectClass'\n , 'false', {bypassCache: 'get', returnEntity: 'BusinessPartnerProspect'}, {businessPartnerProspect: businessPartnerProspect });\n } \n \n export function createProspectAsync(context: IContext, businessPartnerProspect?: BusinessPartnerProspect | null):AsyncResult {\n const request = createCreateProspectInput(businessPartnerProspect);\n return executeAction(request, context);\n } \n \n export function createPromoteToSellerInput(businessPartnerId: string, ): IDataServiceRequest { \n const query = businessPartnersQuery(businessPartnerId);\n return query.createDataServiceRequestForOperation('PromoteToSeller', true, '', '', {bypassCache: 'get', returnEntity: ''}, { });\n } \n \n export function promoteToSellerAsync(context: IContext, businessPartnerId: string):AsyncResult {\n const request = createPromoteToSellerInput(businessPartnerId);\n return executeAction(request, context);\n } \n \n export function createGetCurrentInput(): IDataServiceRequest { \n const query = businessPartnersQuery();\n return query.createDataServiceRequestForOperation('GetCurrent', false, \n 'BusinessPartnerClass'\n , 'false', {bypassCache: 'none', returnEntity: 'BusinessPartner'}, { });\n } \n \n export function getCurrentAsync(context: IContext, ):AsyncResult {\n const request = createGetCurrentInput();\n return executeAction(request, context);\n } \n \n export function createGetManagedBusinessPartnersInput(queryResultSettings: IQueryResultSettings): IDataServiceRequest { \n const query = businessPartnersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetManagedBusinessPartners', false, \n 'BusinessPartnerClass'\n , 'true', {bypassCache: 'none', returnEntity: 'BusinessPartner'}, { });\n } \n \n export function getManagedBusinessPartnersAsync(context: IContext, ):AsyncResult {\n const request = createGetManagedBusinessPartnersInput(context.queryResultSettings, );\n return executeAction(request, context);\n } \n \n export function createGetUsersInput(queryResultSettings: IQueryResultSettings, businessPartnerId: string, ): IDataServiceRequest { \n const query = businessPartnersQuery(businessPartnerId).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetUsers', false, \n 'BusinessPartnerUserClass'\n , 'true', {bypassCache: 'none', returnEntity: 'BusinessPartnerUser'}, { });\n } \n \n export function getUsersAsync(context: IContext, businessPartnerId: string):AsyncResult {\n const request = createGetUsersInput(context.queryResultSettings, businessPartnerId);\n return executeAction(request, context);\n } \n \n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// TODO - refactor to incorporate inbuilt JS extension method\n// TODO - integrate Trace.error\n\nexport const EMPTY = '';\n\nexport function convertToString(obj: any, accumulator: string[] = [], depth: number = 0): string {\n if (!obj) {\n return null;\n }\n\n if (typeof obj === 'string') {\n return obj;\n }\n\n if (typeof obj !== 'object') {\n return obj.toString();\n }\n\n for (const prop in obj) {\n if (obj.hasOwnProperty(prop)) {\n const value = obj[prop];\n const stringifyValue = convertToString(value, accumulator, depth + 1);\n if (stringifyValue) {\n if (accumulator.length > 0 && depth === 0) {\n accumulator.push('&');\n }\n accumulator.push(prop);\n accumulator.push(typeof value === 'object' ? '.' : ':');\n accumulator.push(stringifyValue);\n }\n }\n }\n\n if (depth === 0) {\n return accumulator.join(EMPTY);\n }\n}\n\n/**\n * Verifies whether the object array has elements.\n *\n * @param {any[]} array The array.\n * @return {boolean} True if the object has elements, false otherwise.\n */\nexport function hasElements(array?: any[]): boolean {\n return !!array && array.length > 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isObjectNotEmptyOrNull(value: object): boolean {\n return value && typeof value === 'object' && Object.keys(value).length > 0;\n}\n\n/**\n * Verifies whether the string is empty, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty, false otherwise.\n */\nexport function isEmpty(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmpty() has received input parameter not of type string.\");\n }\n return object != null && object.length === 0;\n}\n\n/**\n * Verifies whether the string is empty or whitespace, but not null.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is empty or whitespace, false otherwise.\n */\nexport function isEmptyOrWhitespace(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace() has received input parameter not of type string.\");\n }\n if (object) {\n // Make sure object is of type string\n object = object.toString();\n\n return typeof object.trim === 'function' && (object.trim() || '').length === 0;\n }\n return false;\n}\n\n/**\n * Verifies whether the string is null or whitespace.\n *\n * @param {string} object The object.\n * @return {boolean} True if the object is null or whitespace, false otherwise.\n */\nexport function isNullOrWhitespace(object: string): boolean {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isNullOrWhitespace() has received input parameter not of type string.\");\n }\n let returnValue = true;\n try {\n returnValue = !object;\n if (!returnValue) {\n // Make sure object is of type string\n object = object.toString();\n returnValue = object.trim().length === 0;\n }\n } catch (err) {\n // Commerce.Proxy.Tracer.Error(\"StringExtensions.isNullOrWhitespace() caught exception = {0}\", err.message);\n }\n\n return returnValue;\n}\n\n/**\n * Pad left with padString until the required length is reached.\n */\nexport function padLeft(object: string, padString: string, length: number): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.padLeft() has received input parameter not of type string.\");\n }\n\n if (!padString || !object) {\n return object;\n }\n\n while (object.length < length) {\n object = padString + object;\n }\n return object;\n}\n\n/**\n * Pad right with padString until the required length is reached.\n */\nexport function padRight(object: string, padString: string, length: number): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.padRight() has received input parameter not of type string.\");\n }\n\n if (!padString || !object) {\n return object;\n }\n\n while (object.length < length) {\n object += padString;\n }\n return object;\n}\n\n/**\n * Basic C# like string format function.\n */\nexport function format(object: string, ...params: any[]): string {\n if (object && typeof object !== 'string') {\n // Tracer.Error(\"StringExtensions.isEmptyOrWhitespace has received input parameter not of type string.\");\n }\n\n if (isNullOrWhitespace(object)) {\n return object;\n }\n\n if (params == null) {\n throw new Error('StringExtensions::format Invalid parameter (params) cannot be null.');\n }\n\n for (let index = 0; index < params.length; index++) {\n if (params[index] == null) {\n throw new Error('StringExtensions::format Invalid parameter (at index ' + index + ') cannot be null or undefined.');\n }\n\n // escape '$' to avoid '$0' issue, '$$$$' means '$$' escaped\n const param = params[index].toString().replace(/\\$/gi, '$$$$');\n const regexp = new RegExp('\\\\{' + index + '\\\\}', 'gi');\n object = object.replace(regexp, param);\n }\n\n return object;\n}\n\n/**\n * Returns an ordinal to indicate the ordering of the strings\n * -1: This object is less than comparison object\n * 0: This object is equal to the comparison object\n * 1: This object is greater than the comparison object\n */\nexport function compare(object: string, comparisonObject: string, ignoreCase?: boolean): number {\n if (!object && !comparisonObject) {\n return 0;\n } else if (!object) {\n return -1;\n } else if (!comparisonObject) {\n return 1;\n }\n\n const val1: string = ignoreCase ? object.toLowerCase() : object;\n const val2: string = ignoreCase ? comparisonObject.toLowerCase() : comparisonObject;\n\n return val1 < val2 ? -1 : val1 > val2 ? 1 : 0;\n}\n\n/**\n * Replaces new line character with
for display.\n */\nexport function replaceNewLineWithBr(text: string) {\n if (text) {\n return replaceAll(text, '\\n', '
');\n }\n\n return text;\n}\n\n/**\n * Replaces all instances of @txtToReplace\n */\nexport function replaceAll(txt, txtToReplace, valueToReplaceWith) {\n return txt.replace(new RegExp(txtToReplace, 'g'), valueToReplaceWith);\n}\n\n/**\n * Escapes single quote to be send as part of URLs.\n */\nexport function escapeSingleQuote(text: string) {\n return text.replace(/(')/g, '\\'$1');\n}\n\n/**\n * Removes the trailing slashes from the URI.\n *\n * @param {string} uri The URI to clean.\n * @return {string} The uri without trailing slashes.\n */\nexport function CleanUri(uri: string): string {\n if (isNullOrWhitespace(uri)) {\n return EMPTY;\n }\n\n // the cutoff index for the string\n let cutoffIndex = uri.length - 1;\n\n while (cutoffIndex >= 0 && (uri[cutoffIndex] === '/' || uri[cutoffIndex] === '\\\\')) {\n --cutoffIndex;\n }\n\n // if it ever becomes negative, cutoffIndex + 1 = 0\n return uri.substr(0, cutoffIndex + 1);\n}\n\n/**\n * Determines whether the end of string matches a specified string.\n *\n * @param {string} str: The string to search in.\n * @param {string} suffix: The string to compare to the substring at the end of str.\n * @param {boolean} caseSensitive: Determines if the comparison case sensitive (false, by default)\n * @return {boolean} true if suffix matches the end of str; otherwise, false.\n */\nexport function endsWith(str: string, suffix: string, caseSensitive: boolean = false): boolean {\n if (!str || !suffix) {\n return false;\n }\n if (suffix.length > str.length) {\n return false;\n }\n\n const originalString: string = caseSensitive ? str : str.toLowerCase();\n const subString: string = caseSensitive ? suffix : suffix.toLowerCase();\n return originalString.indexOf(subString, originalString.length - subString.length) !== -1;\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar $parseFloat = require('../internals/number-parse-float');\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\n$({ global: true, forced: parseFloat !== $parseFloat }, {\n parseFloat: $parseFloat\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromiseConstructor && fails(function () {\n // eslint-disable-next-line unicorn/no-thenable -- required for testing\n NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.es/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = isCallable(onFinally);\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// makes sure that native promise-based APIs `Promise#finally` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['finally'];\n if (NativePromisePrototype['finally'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'finally', method, { unsafe: true });\n }\n}\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { CommerceList, CommerceListLine, CommerceListContributor, CommerceListInvitation } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function commerceListsQuery(id?: number): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"CommerceLists\", \"CommerceList\", \"CommerceListClass\", key);\n }\n \n export function createCreateInput(entity: CommerceList): IDataServiceRequest {\n return commerceListsQuery().create(entity);\n }\n\n export function createCommerceListAsync(context: IContext, entity: CommerceList): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: CommerceList): IDataServiceRequest {\n return commerceListsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: CommerceList): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: CommerceList): IDataServiceRequest {\n return commerceListsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: CommerceList): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: number): IDataServiceRequest {\n return commerceListsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: number): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return commerceListsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetByCustomerInput(queryResultSettings: IQueryResultSettings, customerId?: string | null): IDataServiceRequest { \n const query = commerceListsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByCustomer', true, \n 'CommerceListClass'\n , 'true', {bypassCache: 'none', returnEntity: 'CommerceList'}, {customerId: customerId });\n } \n \n export function getByCustomerAsync(context: IContext, customerId?: string | null):AsyncResult {\n const request = createGetByCustomerInput(context.queryResultSettings, customerId);\n return executeAction(request, context);\n } \n \n export function createAddLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('AddLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n } \n \n export function addLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\n const request = createAddLinesInput(id, commerceListLines);\n return executeAction(request, context);\n } \n \n export function createUpdateLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('UpdateLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n } \n \n export function updateLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\n const request = createUpdateLinesInput(id, commerceListLines);\n return executeAction(request, context);\n } \n \n export function createRemoveLinesInput(id: number, commerceListLines?: CommerceListLine[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines });\n } \n \n export function removeLinesAsync(context: IContext, id: number, commerceListLines?: CommerceListLine[] | null):AsyncResult {\n const request = createRemoveLinesInput(id, commerceListLines);\n return executeAction(request, context);\n } \n \n export function createMoveLinesInput(commerceListLines: CommerceListLine[] | null, destinationId: number): IDataServiceRequest { \n const query = commerceListsQuery();\n return query.createDataServiceRequestForOperation('MoveLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines, destinationId: destinationId });\n } \n \n export function moveLinesAsync(context: IContext, commerceListLines: CommerceListLine[] | null, destinationId: number):AsyncResult {\n const request = createMoveLinesInput(commerceListLines, destinationId);\n return executeAction(request, context);\n } \n \n export function createCopyLinesInput(commerceListLines: CommerceListLine[] | null, destinationId: number): IDataServiceRequest { \n const query = commerceListsQuery();\n return query.createDataServiceRequestForOperation('CopyLines', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListLines: commerceListLines, destinationId: destinationId });\n } \n \n export function copyLinesAsync(context: IContext, commerceListLines: CommerceListLine[] | null, destinationId: number):AsyncResult {\n const request = createCopyLinesInput(commerceListLines, destinationId);\n return executeAction(request, context);\n } \n \n export function createAddContributorsInput(id: number, commerceListContributors?: CommerceListContributor[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('AddContributors', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListContributors: commerceListContributors });\n } \n \n export function addContributorsAsync(context: IContext, id: number, commerceListContributors?: CommerceListContributor[] | null):AsyncResult {\n const request = createAddContributorsInput(id, commerceListContributors);\n return executeAction(request, context);\n } \n \n export function createRemoveContributorsInput(id: number, commerceListContributors?: CommerceListContributor[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('RemoveContributors', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListContributors: commerceListContributors });\n } \n \n export function removeContributorsAsync(context: IContext, id: number, commerceListContributors?: CommerceListContributor[] | null):AsyncResult {\n const request = createRemoveContributorsInput(id, commerceListContributors);\n return executeAction(request, context);\n } \n \n export function createCreateInvitationsInput(id: number, commerceListInvitations?: CommerceListInvitation[] | null): IDataServiceRequest { \n const query = commerceListsQuery(id);\n return query.createDataServiceRequestForOperation('CreateInvitations', true, \n 'CommerceListClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CommerceList'}, {commerceListInvitations: commerceListInvitations });\n } \n \n export function createInvitationsAsync(context: IContext, id: number, commerceListInvitations?: CommerceListInvitation[] | null):AsyncResult {\n const request = createCreateInvitationsInput(id, commerceListInvitations);\n return executeAction(request, context);\n } \n \n export function createAcceptInvitationInput(invitationToken?: string | null, customerId?: string | null): IDataServiceRequest { \n const query = commerceListsQuery();\n return query.createDataServiceRequestForOperation('AcceptInvitation', true, '', '', {bypassCache: 'get', returnEntity: ''}, {invitationToken: invitationToken, customerId: customerId });\n } \n \n export function acceptInvitationAsync(context: IContext, invitationToken?: string | null, customerId?: string | null):AsyncResult {\n const request = createAcceptInvitationInput(invitationToken, customerId);\n return executeAction(request, context);\n } \n \n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// Following reference is added to fix the build dependency between CommerceContxt and DataServiceQuery.\n// This will eventually be moved to CommerceContext.ts when MPOS proxy and Commerce Proxy are merged.\nexport class ProxyErrorSDK extends Error {\n public errorCode: string;\n public errorMessage: string;\n public localizedErrorMessage: string = '';\n public canRetry: boolean = false;\n public commerceException: any;\n public formatData: any[] = [];\n public requestUri: any;\n public data: any;\n public statusCode: any;\n\n constructor(\n errorCode: string,\n errorMessage: string,\n canRetry: boolean\n ) {\n super();\n this.name = errorCode;\n this.message = errorMessage;\n this.errorCode = errorCode;\n this.errorMessage = errorMessage;\n this.canRetry = canRetry;\n Object.setPrototypeOf(this, ProxyErrorSDK.prototype);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// Following reference is added to fix the build dependency between CommerceContxt and DataServiceQuery.\n// This will eventually be moved to CommerceContext.ts when MPOS proxy and Commerce Proxy are merged.\n\nimport { ProxyErrorSDK } from './ProxyErrorSDK';\n\n'use strict';\n\n/**\n * Class for representing an error.\n */\nexport class ProxyError {\n private _errorCode: string;\n private _errorMessage: string;\n private _localizedErrorMessage: string;\n private _canRetry: boolean = false;\n private _commerceException: any;\n private _formatData: any[];\n private _extraData: any;\n\n constructor(errorCode: string, errorMessage: string, localizedErrorMessage, canRetry: boolean, extraData: any, ...formatData: any[]) {\n this._errorCode = errorCode;\n this._errorMessage = errorMessage;\n this._localizedErrorMessage = localizedErrorMessage;\n this._canRetry = canRetry;\n this._commerceException = null;\n this._formatData = formatData;\n if (extraData && typeof extraData == 'object' && extraData.request) {\n // Remove sensitive data (EUII) so that it doesn't get logged to AppInsights\n extraData.request.headers = {};\n extraData.request.data = {};\n extraData.request.body = {};\n }\n this._extraData = extraData;\n }\n\n /**\n * Takes a proxy error and returns a proper JS error version of it\n * @param proxyError The proxyError\n */\n public static toError(proxyError: ProxyError): Error {\n const errorName = proxyError.ErrorCode || 'Proxy Error';\n const errorMessage = proxyError.ErrorMessage || proxyError.LocalizedErrorMessage;\n const e = new ProxyErrorSDK(errorName, errorMessage, proxyError.CanRetry);\n\n // Assign extra error details to error.\n // ts-ignoring as the standard error contract only supports name and message\n if (proxyError.extraData) {\n e.requestUri = proxyError.extraData.requestUri;\n\n e.data = proxyError.extraData.data;\n\n e.statusCode = proxyError.extraData.statusCode;\n }\n\n return e;\n }\n\n /**\n * Gets the commerce exception that caused this error.\n *\n * @return {any} The commerce exception.\n */\n public get commerceException(): any {\n return this._commerceException;\n }\n\n /**\n * Sets the commerce exception that caused this error.\n *\n * @param {any} exception The commerce exception.\n */\n public set commerceException(exception: any) {\n this._commerceException = exception;\n }\n\n /**\n * Gets the error code.\n *\n * @return {string} The error code.\n */\n public get ErrorCode(): string {\n return this._errorCode;\n }\n\n /**\n * Gets the error message.\n *\n * @return {string} The error message.\n */\n public get ErrorMessage(): string {\n return this._errorMessage;\n }\n\n /**\n * Gets the localized error message.\n *\n * @return {string} The localized error message.\n */\n public get LocalizedErrorMessage(): string {\n return this._localizedErrorMessage;\n }\n\n /**\n * Gets the format data used on formatted error messages.\n *\n * @return {any[]} The format data.\n */\n public get formatData(): any[] {\n return this._formatData;\n }\n\n /**\n * Gets the additional information the might be supplied by the error.\n *\n * @return {any} The extra data.\n */\n public get extraData(): any {\n return this._extraData;\n }\n\n /**\n * Gets the error title. Defaults to the resource string string_29004 for the error title if\n * no error title is mapped for the error.\n */\n public get ErrorTitleResourceId(): string {\n const errorTitleResourceId = 'string_29004'; // Error string: There is a problem with the server\n return errorTitleResourceId;\n }\n\n /**\n * Gets whether the action that generated the error can be retried.\n *\n * @return {string} Whether the action that generated the error can be retried.\n */\n public get CanRetry(): boolean {\n return this._canRetry;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport enum EventLevel {\n LogAlways = 0,\n Critical = 1,\n Error = 2,\n Warning = 3,\n Informational = 4,\n Verbose = 5\n}\n\nexport enum EventChannel {\n Admin = 16,\n Operational = 17,\n Analytic = 18,\n Debug = 19\n}\n\nexport interface ILoggingSink {\n writeEvent(event: Event): void;\n setSessionInfo(\n appSessionId: string,\n userSessionId: string,\n deviceId: string,\n deviceNumber: string,\n terminalId: string,\n userId: string,\n tenantId: string,\n offlineAvailability: string,\n offlineCurrentMode: string,\n screenResolution: string\n ): void;\n setInstrumentationKey(instrumentationKey: string): void;\n}\n\nexport class Utils {\n public static getParameterNames(func: Function): string[] {\n return [];\n }\n\n public static generateGuid(): string {\n return '';\n }\n\n public static emptyGuid(): string {\n return '';\n }\n}\n\nexport enum EventType {\n None = 0,\n Custom = 1,\n PageView = 2\n}\n\nexport class PageViewMetadata {\n public PageName: string;\n}\n\nexport class EventStaticMetadata {\n public Name: string;\n public Id: number;\n public Version: number;\n public Level: EventLevel;\n public LevelName: string;\n public Channel: EventChannel;\n public ChannelName: string;\n public Keywords: string[];\n public Task: string;\n public OpCode: string;\n public Message: string;\n}\n\nexport class EventCoreFields {\n public ClientTimestamp: number;\n public AppSessionId: string;\n public UserSessionId: string;\n public DeviceId: string;\n public DeviceNumber: string;\n public TerminalId: string;\n public UserId: string;\n public TenantId: string;\n public OfflineAvailability: string;\n public OfflineCurrentMode: string;\n public ScreenResolution: string;\n}\n\nexport class Event {\n public Type: EventType;\n public PageViewMetadata: PageViewMetadata;\n public StaticMetadata: EventStaticMetadata;\n public CoreFields: EventCoreFields;\n public Payload: {\n [name: string]: any;\n };\n constructor(\n type: EventType,\n appSessionId: string,\n userSessionId: string,\n deviceId: string,\n deviceNumber: string,\n terminalId: string,\n userId: string,\n tenantId: string,\n offlineAvailability: string,\n offlineCurrentMode: string,\n screenResolution: string\n ) {}\n}\n\nexport class DebuggingConsoleSink implements ILoggingSink {\n public setSessionInfo(\n appSessionId: string,\n userSessionId: string,\n deviceId: string,\n deviceNumber: string,\n terminalId: string,\n userId: string,\n tenantId: string,\n offlineAvailability: string,\n offlineCurrentMode: string\n ): void {}\n\n public setInstrumentationKey(instrumentationKey: string): void {}\n\n public writeEvent(event: Event): void {}\n}\n\nexport class LoggerBase {\n public static writeEvent(\n name: string,\n eventId: number,\n version: number,\n channel: EventChannel,\n level: EventLevel,\n keywords: string[],\n task: string,\n opCode: string,\n message: string\n ) {\n // console.log(`name: ${name}, eventId: ${eventId}, version: ${version}, channel: ${this.getEnumKeyForValue(EventChannel, channel)}`);\n // console.log(\n // `level: ${this.getEnumKeyForValue(\n // EventLevel,\n // level\n // )}, keywords: ${keywords.toString()}, task: ${task}, opCode: ${opCode}, message: ${message}`\n // );\n }\n\n public static addLoggingSink(loggingSink: ILoggingSink): void {}\n\n public static getEnumKeyForValue(enumType: any, value: number): string {\n for (const key in Object.keys(enumType)) {\n if (enumType[key] === value) {\n return key;\n }\n }\n return '';\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { EventChannel, EventLevel, ILoggingSink, LoggerBase } from './ConsoleEventWriter';\n\n/**\n * Attaches the logging sink to the LoggerBase.\n *\n * @method attachLoggingSink\n * @param sink {ILoggingSink} Sink to attach to Retail Logger.\n */\nexport function attachLoggingSink(sink: ILoggingSink) {\n LoggerBase.addLoggingSink(sink);\n}\n\nexport const modelManagersRetailServerRequestStarted = (requestId: string, requestUrl: string): void => {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestStarted',\n 44004,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' started.\"\n );\n};\n\nexport const modelManagersRetailServerRequestError = (requestId: string, requestUrl: string, error: string): void => {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestError',\n 44005,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' failed. Error: {2}.\"\n );\n};\n\nexport const modelManagersRetailServerRequestFinished = (requestId: string, requestUrl: string): void => {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestFinished',\n 44006,\n EventChannel.Debug,\n 1,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' succeeded.\"\n );\n};\n\nexport const genericWarning = (message: string): void => {\n LoggerBase.writeEvent('GenericWarning', 44001, 1, EventChannel.Operational, EventLevel.Warning, [], '', '', '{0}');\n};\n\nexport const genericError = (message: string): void => {\n LoggerBase.writeEvent('GenericEvent', 44000, 1, EventChannel.Operational, EventLevel.Error, [], '', '', '{0}');\n};\n\nexport const genericInfo = (message: string): void => {\n LoggerBase.writeEvent('GenericInfo', 44002, 1, EventChannel.Operational, EventLevel.Informational, [], '', '', '{0}');\n};\n\n/**\n * Class represents proxy events.\n * Event Code Range: 44000 - 44999.\n */\nexport class RetailLogger {\n public static LogEvent(eventName: Function, error?: string): void {\n error ? eventName(error) : eventName();\n }\n\n // Core - Event Range: 44000 - 44099.\n public static genericError(message: string): void {\n LoggerBase.writeEvent('GenericEvent', 44000, 1, EventChannel.Operational, EventLevel.Error, [], '', '', '{0}');\n }\n\n public static genericWarning(message: string): void {\n LoggerBase.writeEvent('GenericWarning', 44001, 1, EventChannel.Operational, EventLevel.Warning, [], '', '', '{0}');\n }\n\n public static genericInfo(message: string): void {\n LoggerBase.writeEvent('GenericInfo', 44002, 1, EventChannel.Operational, EventLevel.Informational, [], '', '', '{0}');\n }\n\n public static modelManagersRetailServerRequestStarted(requestId: string, requestUrl: string): void {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestStarted',\n 44004,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' started.\"\n );\n }\n\n public static modelManagersRetailServerRequestError(requestId: string, requestUrl: string, error: string): void {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestError',\n 44005,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' failed. Error: {2}.\"\n );\n }\n\n public static modelManagersRetailServerRequestFinished(requestId: string, requestUrl: string): void {\n LoggerBase.writeEvent(\n 'ModelManagersRetailServerRequestFinished',\n 44006,\n EventChannel.Debug,\n 1,\n EventLevel.Informational,\n [],\n '',\n '',\n \"The Retail Server Request with request id '{0}' and request url '{1}' succeeded.\"\n );\n }\n\n public static initEntitySetInvalidError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitEntitySetInvalidError',\n 44007,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with invalid InitEntitySet id '{0}' was reported.\"\n );\n }\n\n public static initEntitySetMultipleTimesError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitEntitySetMultipleTimesError',\n 44008,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with InitEntitySet ID '{0}' was reported multiple times.\"\n );\n }\n\n public static initEntitySetNoMethodNumberError(): void {\n LoggerBase.writeEvent(\n 'InitEntitySetNoMethodNumberError',\n 44009,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'The value InitEntitySet.All does not represent the number of methods that can be run'\n );\n }\n\n public static initPaymentEntitySetInvalidError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitPaymentEntitySetInvalidError',\n 44010,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with invalid InitPaymentEntitySet id '{0}' was reported.\"\n );\n }\n\n public static initPaymentEntitySetMultipleTimesError(entitySetId: string): void {\n LoggerBase.writeEvent(\n 'InitPaymentEntitySetMultipleTimesError',\n 44011,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n \"A method with InitPaymentEntitySet ID '{0}' was reported multiple times.\"\n );\n }\n\n public static initPaymentEntitySetNoMethodNumberError(): void {\n LoggerBase.writeEvent(\n 'InitPaymentEntitySetNoMethodNumberError',\n 44012,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'The value InitPaymentEntitySet.All does not represent the number of methods that can be run'\n );\n }\n\n // Shopping Cart Service - Event Range: 44100 - 44199.\n public static shoppingCartServiceGetShoppingCartStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceGetShoppingCartStarted',\n 44100,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get shopping cart started.'\n );\n }\n\n public static shoppingCartServiceGetShoppingCartError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceGetShoppingCartError',\n 44101,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get shopping cart failed with error {0}.'\n );\n }\n\n public static shoppingCartServiceGetShoppingCartFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceGetShoppingCartFinished',\n 44102,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get shopping cart finished.'\n );\n }\n\n public static shoppingCartServiceRemoveFromCartStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceRemoveFromCartStarted',\n 44104,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing item from cart started.'\n );\n }\n\n public static shoppingCartServiceRemoveFromCartError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceRemoveFromCartError',\n 44105,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Removing item from cart failed with error {0}.'\n );\n }\n\n public static shoppingCartServiceRemoveFromCartFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartServiceRemoveFromCartFinished',\n 44106,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing item from cart finished.'\n );\n }\n\n public static shoppingCartApplyPromotionCodeStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartApplyPromotionCodeStarted',\n 44108,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Applying promotion code started.'\n );\n }\n\n public static shoppingCartApplyPromotionCodeError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartApplyPromotionCodeError',\n 44109,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Applying promotion code failed with error {0}.'\n );\n }\n\n public static shoppingCartApplyPromotionCodeFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartApplyPromotionCodeFinished',\n 44110,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Applying promotion code finished.'\n );\n }\n\n public static shoppingCartUpdateQuantityStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateQuantityStarted',\n 44112,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating quantity started.'\n );\n }\n\n public static shoppingCartUpdateQuantityError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateQuantityError',\n 44113,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Updating quantity failed with error {0}.'\n );\n }\n\n public static shoppingCartUpdateQuantityFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateQuantityFinished',\n 44114,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating quantity finished.'\n );\n }\n\n public static shoppingCartRemovePromotionCodeStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartRemovePromotionCodeStarted',\n 44116,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing promotion code started.'\n );\n }\n\n public static shoppingCartRemovePromotionCodeError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartRemovePromotionCodeError',\n 44117,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Removing promotion code failed with error {0}.'\n );\n }\n\n public static shoppingCartRemovePromotionCodeFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartRemovePromotionCodeFinished',\n 44118,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Removing promotion code finished.'\n );\n }\n\n public static shoppingCartUpdateLoyaltyCardIdStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateLoyaltyCardIdStarted',\n 44120,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating loyalty card id started.'\n );\n }\n\n public static shoppingCartUpdateLoyaltyCardIdError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateLoyaltyCardIdError',\n 44121,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Updating loyalty card id failed with error {0}.'\n );\n }\n\n public static shoppingCartUpdateLoyaltyCardIdFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartUpdateLoyaltyCardIdFinished',\n 44122,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Updating loyalty card id finished.'\n );\n }\n\n public static shoppingCartCommenceCheckoutStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartCommenceCheckoutStarted',\n 44124,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Commence checkout started.'\n );\n }\n\n public static shoppingCartCommenceCheckoutError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartCommenceCheckoutError',\n 44125,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Commence checkout failed with error {0}.'\n );\n }\n\n public static shoppingCartCommenceCheckoutFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartCommenceCheckoutFinished',\n 44126,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Commence checkout finished.'\n );\n }\n\n public static shoppingCartGetPromotionsStarted(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartGetPromotionsStarted',\n 44128,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting promotions started.'\n );\n }\n\n public static shoppingCartGetPromotionsError(error: string): void {\n LoggerBase.writeEvent(\n 'ShoppingCartGetPromotionsError',\n 44129,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting promotions failed with error {0}.'\n );\n }\n\n public static shoppingCartGetPromotionsFinished(): void {\n LoggerBase.writeEvent(\n 'ShoppingCartGetPromotionsFinished',\n 44130,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting promotions finished.'\n );\n }\n\n public static getSimpleProductsByIdStarted(): void {\n LoggerBase.writeEvent(\n 'getSimpleProductsByIdStarted',\n 44132,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting simple products by ids started.'\n );\n }\n\n public static getSimpleProductsByIdError(error: string): void {\n LoggerBase.writeEvent(\n 'getSimpleProductsByIdError',\n 44133,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting simple products by ids failed with error {0}.'\n );\n }\n\n public static getSimpleProductsByIdFinished(): void {\n LoggerBase.writeEvent(\n 'getSimpleProductsByIdFinished',\n 44134,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting simple products by ids finished.'\n );\n }\n\n public static getKitComponentsError(): void {\n LoggerBase.writeEvent(\n 'GetKitComponentsError',\n 44136,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'One of the kit components could not be retrieved.'\n );\n }\n\n public static searchProductsByProductIdsStarted(): void {\n LoggerBase.writeEvent(\n 'SearchProductsByProductIdsStarted',\n 44140,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Searching products by product ids started.'\n );\n }\n\n public static searchProductsByProductIdsError(error: string): void {\n LoggerBase.writeEvent(\n 'SearchProductsByProductIdsError',\n 44141,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Searching products by product ids failed with error {0}.'\n );\n }\n\n public static searchProductsByProductIdsFinished(): void {\n LoggerBase.writeEvent(\n 'SearchProductsByProductIdsFinished',\n 44142,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Searching products by product ids finished.'\n );\n }\n\n // Checkout Service - Event Range: 44200 - 44299.\n public static checkoutServiceGetAllDeliveryOptionDescriptionsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetAllDeliveryOptionDescriptionsStarted',\n 44200,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get all delivery option descriptions started.'\n );\n }\n\n public static checkoutServiceGetAllDeliveryOptionDescriptionsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetAllDeliveryOptionDescriptionsError',\n 44201,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get all delivery option descriptions failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetAllDeliveryOptionDescriptionsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetAllDeliveryOptionDescriptionsFinished',\n 44202,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get all delivery option descriptions finished.'\n );\n }\n\n public static checkoutServiceGetDeliveryPreferencesStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetDeliveryPreferencesStarted',\n 44204,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting delivery preferences started.'\n );\n }\n\n public static checkoutServiceGetDeliveryPreferencesError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetDeliveryPreferencesError',\n 44205,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting delivery preferences failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetDeliveryPreferencesFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetDeliveryPreferencesFinished',\n 44206,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting delivery preferences finished.'\n );\n }\n\n public static checkoutServiceGetOrderDeliveryOptionsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetOrderDeliveryOptionsStarted',\n 44208,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting order delivery options started.'\n );\n }\n\n public static checkoutServiceGetOrderDeliveryOptionsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetOrderDeliveryOptionsError',\n 44209,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting order delivery options failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetOrderDeliveryOptionsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetOrderDeliveryOptionsFinished',\n 44210,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting order delivery options finished.'\n );\n }\n\n public static checkoutServiceGetItemDeliveryOptionsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetItemDeliveryOptionsStarted',\n 44212,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting item delivery options started.'\n );\n }\n\n public static checkoutServiceGetItemDeliveryOptionsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetItemDeliveryOptionsError',\n 44213,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting item delivery options failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetItemDeliveryOptionsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetItemDeliveryOptionsFinished',\n 44214,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting item delivery options finished.'\n );\n }\n\n public static checkoutServiceUpdateDeliverySpecificationsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateDeliverySpecificationsStarted',\n 44216,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of order delivery specifications started.'\n );\n }\n\n public static checkoutServiceUpdateDeliverySpecificationsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateDeliverySpecificationsError',\n 44217,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update of order delivery specifications failed with error {0}.'\n );\n }\n\n public static checkoutServiceUpdateDeliverySpecificationsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateDeliverySpecificationsFinished',\n 44218,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of order delivery specifications finished.'\n );\n }\n\n public static checkoutServiceUpdateLineDeliverySpecificationsStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateLineDeliverySpecificationsStarted',\n 44220,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of line delivery specifications started.'\n );\n }\n\n public static checkoutServiceUpdateLineDeliverySpecificationsError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateLineDeliverySpecificationsError',\n 44221,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update of line delivery specifications failed with error {0}.'\n );\n }\n\n public static checkoutServiceUpdateLineDeliverySpecificationsFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceUpdateLineDeliverySpecificationsFinished',\n 44222,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update of line delivery specifications finished.'\n );\n }\n\n public static checkoutServiceGetPaymentCardTypesStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetPaymentCardTypesStarted',\n 44224,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting payment card types started.'\n );\n }\n\n public static checkoutServiceGetPaymentCardTypesError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetPaymentCardTypesError',\n 44225,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting payment card types failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetPaymentCardTypesFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetPaymentCardTypesFinished',\n 44226,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting payment card types finished.'\n );\n }\n\n public static checkoutServiceGetGiftCardBalanceStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetGiftCardBalanceStarted',\n 44228,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting gift card balance started.'\n );\n }\n\n public static checkoutServiceGetGiftCardBalanceError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetGiftCardBalanceError',\n 44229,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Getting gift card balance failed with error {0}.'\n );\n }\n\n public static checkoutServiceGetGiftCardBalanceFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetGiftCardBalanceFinished',\n 44230,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Getting gift card balance finished.'\n );\n }\n\n public static checkoutServiceSubmitOrderStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceSubmitOrderStarted',\n 44232,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Submit order started.'\n );\n }\n\n public static checkoutServiceSubmitOrderError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceSubmitOrderError',\n 44233,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Submit order failed with error {0}.'\n );\n }\n\n public static checkoutServiceSubmitOrderFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceSubmitOrderFinished',\n 44234,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Submit order finished.'\n );\n }\n\n public static checkoutServiceGetCardPaymentAcceptUrlStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetCardPaymentAcceptUrlStarted',\n 44235,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card payment accept url started.'\n );\n }\n\n public static checkoutServiceGetCardPaymentAcceptUrlFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetCardPaymentAcceptUrlFinished',\n 44236,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card payment accept url finished.'\n );\n }\n\n public static checkoutServiceGetCardPaymentAcceptUrlError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceGetCardPaymentAcceptUrlError',\n 44237,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get card payment accept url failed with error {0}.'\n );\n }\n\n public static checkoutServiceRetrieveCardPaymentAcceptResultStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceRetrieveCardPaymentAcceptResultStarted',\n 44238,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Retrieve card payment accept result started.'\n );\n }\n\n public static checkoutServiceRetrieveCardPaymentAcceptResultFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceRetrieveCardPaymentAcceptResultFinished',\n 44239,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Retrieve card payment accept result finished.'\n );\n }\n\n public static checkoutServiceRetrieveCardPaymentAcceptResultError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceRetrieveCardPaymentAcceptResultError',\n 44240,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Retrieve card payment accept result failed with error {0}.'\n );\n }\n\n public static checkoutServiceCleanUpAfterSuccessfulOrderStarted(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceCleanUpAfterSuccessfulOrderStarted',\n 44241,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Shopping cart clean failed post successful submit order started.'\n );\n }\n\n public static checkoutServiceCleanUpAfterSuccessfulOrderError(error: string): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceCleanUpAfterSuccessfulOrderError',\n 44242,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Shopping cart clean failed post successful submit order with error {0}.'\n );\n }\n\n public static checkoutServiceCleanUpAfterSuccessfulOrderFinished(): void {\n LoggerBase.writeEvent(\n 'CheckoutServiceCleanUpAfterSuccessfulOrderFinished',\n 44243,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Shopping cart clean failed post successful submit order finished.'\n );\n }\n\n // Channel Service - Event Range: 44300 - 44349.\n public static channelServiceGetChannelConfigurationStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetChannelConfigurationStarted',\n 44300,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get channel Configuration started.'\n );\n }\n\n public static channelServiceGetChannelConfigurationError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetChannelConfigurationError',\n 44301,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get channel Configuration failed with error {0}.'\n );\n }\n\n public static channelServiceGetChannelConfigurationFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetChannelConfigurationFinished',\n 44302,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get channel Configuration finished.'\n );\n }\n\n public static channelServiceGetCountryRegionInfoStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCountryRegionInfoStarted',\n 44304,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get country region info started.'\n );\n }\n\n public static channelServiceGetCountryRegionInfoError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCountryRegionInfoError',\n 44305,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get country region info failed with error {0}.'\n );\n }\n\n public static channelServiceGetCountryRegionInfoFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCountryRegionInfoFinished',\n 44306,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get country region info finished.'\n );\n }\n\n public static channelServiceGetStateProvinceInfoStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetStateProvinceInfoStarted',\n 44308,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get state province info started.'\n );\n }\n\n public static channelServiceGetStateProvinceInfoError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetStateProvinceInfoError',\n 44309,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get state province info error {0}.'\n );\n }\n\n public static channelServiceGetStateProvinceInfoFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetStateProvinceInfoFinished',\n 44310,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get state province info finished.'\n );\n }\n\n public static channelServiceGetTenderTypesStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetTenderTypesStarted',\n 44312,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get tender types started.'\n );\n }\n\n public static channelServiceGetTenderTypesError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetTenderTypesError',\n 44313,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get tender types failed with error {0}.'\n );\n }\n\n public static channelServiceGetTenderTypesFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetTenderTypesFinished',\n 44314,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get tender types finished.'\n );\n }\n\n public static channelServiceGetCardTypesStarted(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCardTypesStarted',\n 44315,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card types started.'\n );\n }\n\n public static channelServiceGetCardTypesError(error: string): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCardTypesError',\n 44316,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get card types failed with error {0}.'\n );\n }\n\n public static channelServiceGetCardTypesFinished(): void {\n LoggerBase.writeEvent(\n 'ChannelServiceGetCardTypesFinished',\n 44317,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get card types finished.'\n );\n }\n\n // Item Availability Service - Event Range: 44350 - 44369.\n public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityStarted(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityStarted',\n 44350,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores with availability started.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityError(error: string): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityError',\n 44351,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get nearby stores with availability failed with error {0}.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresWithAvailabilityFinished(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresWithAvailabilityFinished',\n 44352,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores with availability finished.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresStarted(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresStarted',\n 44354,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores started.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresError(error: string): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresError',\n 44355,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get nearby stores failed with error {0}.'\n );\n }\n\n public static storeProductAvailabilityServiceGetNearbyStoresFinished(): void {\n LoggerBase.writeEvent(\n 'StoreProductAvailabilityServiceGetNearbyStoresFinished',\n 44356,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get nearby stores finished.'\n );\n }\n\n // Loyalty Service - Event Range: 44370 - 44399.\n public static loyaltyServiceGetLoyaltyCardsStarted(): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceGetLoyaltyCardsStarted',\n 44370,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get loyalty cards started.'\n );\n }\n\n public static loyaltyServiceGetLoyaltyCardsError(error: string): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceGetLoyaltyCardsError',\n 44371,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get loyalty cards failed with error {0}.'\n );\n }\n\n public static loyaltyServiceGetLoyaltyCardsFinished(): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceGetLoyaltyCardsFinished',\n 44372,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get loyalty cards finished.'\n );\n }\n\n public static loyaltyServiceUpdateLoyaltyCardIdStarted(): void {\n LoggerBase.writeEvent(\n 'loyaltyServiceUpdateLoyaltyCardIdStarted',\n 44374,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update loyalty card id started.'\n );\n }\n\n public static loyaltyServiceUpdateLoyaltyCardIdError(error: string): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceUpdateLoyaltyCardIdError',\n 44375,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update loyalty card id failed with error {0}.'\n );\n }\n\n public static loyaltyServiceUpdateLoyaltyCardIdFinished(): void {\n LoggerBase.writeEvent(\n 'LoyaltyServiceUpdateLoyaltyCardIdFinished',\n 44376,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update loyalty card id finished.'\n );\n }\n\n // Customer Service - Event Range: 44400 - 44499.\n public static customerServiceGetCustomerStarted(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceGetCustomerStarted',\n 44400,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get customer started.'\n );\n }\n\n public static customerServiceGetCustomerError(error: string): void {\n LoggerBase.writeEvent(\n 'CustomerServiceGetCustomerError',\n 44401,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get customer failed with error {0}.'\n );\n }\n\n public static customerServiceGetCustomerFinished(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceGetCustomerFinished',\n 44402,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get customer finished.'\n );\n }\n\n public static customerServiceIsAuthenticationSessionStarted(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceIsAuthenticationSessionStarted',\n 44403,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Is authentication session started.'\n );\n }\n\n public static customerServiceIsAuthenticationSessionError(error: string): void {\n LoggerBase.writeEvent(\n 'CustomerServiceIsAuthenticationSessionError',\n 44404,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Is authentication session failed with error {0}.'\n );\n }\n\n public static customerServiceIsAuthenticationSessionFinished(): void {\n LoggerBase.writeEvent(\n 'CustomerServiceIsAuthenticationSessionFinished',\n 44405,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Is authentication session finished.'\n );\n }\n\n // Order Service - Event Range: 44500 - 44599.\n public static getOrderHistoryStarted(): void {\n LoggerBase.writeEvent(\n 'GetOrderHistoryStarted',\n 44500,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order history started.'\n );\n }\n\n public static getOrderHistoryError(error: string): void {\n LoggerBase.writeEvent(\n 'GetOrderHistoryError',\n 44501,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get order history failed with error {0}.'\n );\n }\n\n public static getOrderHistoryFinished(): void {\n LoggerBase.writeEvent(\n 'GetOrderHistoryFinished',\n 44502,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order history finished.'\n );\n }\n\n public static getOrderDetailsStarted(): void {\n LoggerBase.writeEvent(\n 'GetOrderDetailsStarted',\n 44504,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order details started.'\n );\n }\n\n public static getOrderDetailsError(error: string): void {\n LoggerBase.writeEvent(\n 'GetOrderDetailsError',\n 44505,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get order details failed with error {0}.'\n );\n }\n\n public static getOrderDetailsFinished(): void {\n LoggerBase.writeEvent(\n 'GetOrderDetailsFinished',\n 44506,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get order details finished.'\n );\n }\n\n // Commerce list realtime service - Event Range: 44600 - 44699.\n public static createWishListStarted(): void {\n LoggerBase.writeEvent(\n 'CreateWishListStarted',\n 44600,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Create wish list started.'\n );\n }\n\n public static createWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'CreateWishListError',\n 44601,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Create wish list failed with error {0}.'\n );\n }\n\n public static createWishListFinished(): void {\n LoggerBase.writeEvent(\n 'CreateWishListFinished',\n 44602,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Create wish list finished.'\n );\n }\n\n public static deleteWishListStarted(): void {\n LoggerBase.writeEvent(\n 'DeleteWishListStarted',\n 44604,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Delete wish list started.'\n );\n }\n\n public static deleteWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'DeleteWishListError',\n 44605,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Delete wish list failed with error {0}.'\n );\n }\n\n public static deleteWishListFinished(): void {\n LoggerBase.writeEvent(\n 'DeleteWishListFinished',\n 44606,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Delete wish list finished.'\n );\n }\n\n public static updateWishListStarted(): void {\n LoggerBase.writeEvent(\n 'UpdateWishListStarted',\n 44608,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update wish list started.'\n );\n }\n\n public static updateWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'UpdateWishListError',\n 44609,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update wish list failed with error {0}.'\n );\n }\n\n public static updateWishListFinished(): void {\n LoggerBase.writeEvent(\n 'UpdateWishListFinished',\n 44610,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update wish list finished.'\n );\n }\n\n public static getWishListsStarted(): void {\n LoggerBase.writeEvent(\n 'GetWishListsStarted',\n 44612,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish lists started.'\n );\n }\n\n public static getWishListsError(error: string): void {\n LoggerBase.writeEvent(\n 'GetWishListsError',\n 44613,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get wish lists failed with error {0}.'\n );\n }\n\n public static getWishListsFinished(): void {\n LoggerBase.writeEvent(\n 'GetWishListsFinished',\n 44614,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish lists finished.'\n );\n }\n\n public static getWishListStarted(): void {\n LoggerBase.writeEvent(\n 'GetWishListStarted',\n 44616,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish list started.'\n );\n }\n\n public static getWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'GetWishListError',\n 44617,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Get wish list failed with error {0}.'\n );\n }\n\n public static getWishListFinished(): void {\n LoggerBase.writeEvent(\n 'GetWishListFinished',\n 44618,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Get wish list finished.'\n );\n }\n\n public static addLinesToWishListStarted(): void {\n LoggerBase.writeEvent(\n 'AddLinesToWishListStarted',\n 44620,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add lines to wish list started.'\n );\n }\n\n public static addLinesToWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'AddLinesToWishListError',\n 44621,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Add lines to wish list failed with error {0}.'\n );\n }\n\n public static addLinesToWishListFinished(): void {\n LoggerBase.writeEvent(\n 'AddLinesToWishListFinished',\n 44622,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add lines to wish list finished.'\n );\n }\n\n public static removeItemsFromWishListStarted(): void {\n LoggerBase.writeEvent(\n 'RemoveItemsFromWishListStarted',\n 44624,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Remove items from wish list started.'\n );\n }\n\n public static removeItemsFromWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'RemoveItemsFromWishListError',\n 44625,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Remove items from wish list failed with error {0}.'\n );\n }\n\n public static removeItemsFromWishListFinished(): void {\n LoggerBase.writeEvent(\n 'RemoveItemsFromWishListFinished',\n 44626,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Remove items from wish list finished.'\n );\n }\n\n public static updateLinesOnWishListStarted(): void {\n LoggerBase.writeEvent(\n 'UpdateLinesOnWishListStarted',\n 44628,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update lines on wish list started.'\n );\n }\n\n public static updateLinesOnWishListError(error: string): void {\n LoggerBase.writeEvent(\n 'UpdateLinesOnWishListError',\n 44629,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Update lines on wish list failed with error {0}.'\n );\n }\n\n public static updateLinesOnWishListFinished(): void {\n LoggerBase.writeEvent(\n 'UpdateLinesOnWishListFinished',\n 44630,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Update lines on wish list finished.'\n );\n }\n\n public static addItemsToCartStarted(): void {\n LoggerBase.writeEvent(\n 'AddItemsToCartStarted',\n 44632,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add items to cart started.'\n );\n }\n\n public static addItemsToCartError(error: string): void {\n LoggerBase.writeEvent(\n 'AddItemsToCartError',\n 44633,\n 1,\n EventChannel.Operational,\n EventLevel.Error,\n [],\n '',\n '',\n 'Add items to cart failed with error {0}.'\n );\n }\n\n public static addItemsToCartFinished(): void {\n LoggerBase.writeEvent(\n 'AddItemsToCartFinished',\n 44634,\n 1,\n EventChannel.Debug,\n EventLevel.Informational,\n [],\n '',\n '',\n 'Add items to cart finished.'\n );\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ProxyError } from '../exceptions';\nimport { EMPTY, format } from '../extensions/StringExtensions';\nimport { DebuggingConsoleSink } from './ConsoleEventWriter';\nimport { attachLoggingSink, genericError, genericInfo, genericWarning } from './RetailLogger';\n\n/**\n * The tracer class allows information to be logged on the device for Information, Warning or Error\n * The same method call can be used for each type\n * Example:\n * Commerce.Proxy.Tracer.Information(\"Message {0} {1}\", [\"Arg1\", \"Arg2\"]); // With parameters to be formatted\n * Commerce.Proxy.Tracer.Information(\"Message\"); // Without parameters\n *\n * Example of different tracer logs\n * Dynamics-Information: <> <>\n * Dynamics-Warning: <> <>\n * Dynamics-Error: <> <>\n */\n\nexport class Tracer {\n private static TracerDynamics: string = 'Dynamics-';\n private static TracerDynamicsError: string = 'Error: ';\n\n private static TracingOn: boolean = true;\n\n private static Counters: any[] = new Array();\n private static Timers: any[] = new Array();\n\n public static init(): boolean {\n attachLoggingSink(new DebuggingConsoleSink());\n return true;\n }\n\n public static _initialized: boolean = Tracer.init();\n\n /**\n * Traces an informational message in the specified format.\n */\n public static Information(informationformat: string, ...args: any[]): void {\n if (Tracer.TracingOn) {\n genericInfo(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, informationformat, ...args]));\n }\n }\n\n /**\n * Traces a warning message in the specified format.\n */\n public static Warning(warningFormat: string, ...args: any[]): void {\n if (Tracer.TracingOn) {\n genericWarning(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, warningFormat, ...args]));\n }\n }\n\n /**\n * Traces an error message in the specified format.\n */\n public static Error(errorFormat: string, ...args: any[]): void {\n if (Tracer.TracingOn) {\n genericError(Tracer.GetMessage.apply(null, [Tracer.TracerDynamicsError, errorFormat, ...args]));\n }\n }\n\n /**\n * Traces an error message in the specified format.\n */\n public static Errors(errors: ProxyError[], formatString: string, ...args: any[]): void {\n if (Tracer.TracingOn && errors !== null && errors.length > 0) {\n let errorMessage: string = '';\n let errorCode: string = '';\n let errorString: string = '';\n\n errors.forEach(error => {\n errorMessage = error.ErrorMessage || EMPTY;\n errorCode = error.ErrorCode || EMPTY;\n errorString = JSON.stringify(error);\n Tracer.Error(\n formatString +\n ' ' +\n format(\" \\n ErrorMessage: {0}; \\n ErrorCode: {1}; \\n ErrorObject: '{2}'\", errorMessage, errorCode, errorString),\n args\n );\n });\n }\n }\n\n public static StartCounter(uniqueFunctionName: string): void {\n let counter;\n if (Tracer.Counters[uniqueFunctionName] === undefined) {\n counter = new PerformanceCounters();\n counter.Name = uniqueFunctionName;\n } else {\n counter = Tracer.Counters[uniqueFunctionName];\n }\n counter.Count += 1;\n Tracer.Counters[uniqueFunctionName] = counter;\n const now = new Date().getTime();\n Tracer.Timers.push(now);\n }\n\n public static EndCounter(uniqueFunctionName: string): void {\n const now = new Date().getTime();\n const startTime = Tracer.Timers.pop();\n const counter = Tracer.Counters[uniqueFunctionName];\n counter.TotalTime += now - startTime;\n }\n\n public static DumpCounters() {\n for (const item in Tracer.Counters) {\n if (Tracer.Counters.hasOwnProperty(item)) {\n Tracer.Information(\n 'Method = {0} Number of calls = {1} TotalTime = {2}mS Avg = {3}mS',\n Tracer.Counters[item].Name,\n Tracer.Counters[item].Count,\n Tracer.Counters[item].TotalTime,\n Tracer.Counters[item].TotalTime / Tracer.Counters[item].Count\n );\n }\n }\n }\n\n private static GetMessage(type: string, formatString: string, ...args: any[]) {\n const now = '' + new Date().getTime() + 'mS';\n if (Tracer.TracingOn) {\n if (!args) {\n return Tracer.TracerDynamics + type + '\\t' + formatString + '\\t' + now;\n } else {\n return (\n Tracer.TracerDynamics + type + '\\t' + format.apply(null, [formatString, Array.prototype.slice.call(args)]) + '\\t' + now\n );\n }\n }\n }\n}\n\nclass PerformanceCounters {\n public Name: string;\n public Count: number = 0;\n public TotalTime: number = 0;\n}\n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar charAt = uncurryThis(''.charAt);\nvar $parseFloat = globalThis.parseFloat;\nvar Symbol = globalThis.Symbol;\nvar ITERATOR = Symbol && Symbol.iterator;\nvar FORCED = 1 / $parseFloat(whitespaces + '-0') !== -Infinity\n // MS Edge 18- broken with boxed symbols\n || (ITERATOR && !fails(function () { $parseFloat(Object(ITERATOR)); }));\n\n// `parseFloat` method\n// https://tc39.es/ecma262/#sec-parsefloat-string\nmodule.exports = FORCED ? function parseFloat(string) {\n var trimmedString = trim(toString(string));\n var result = $parseFloat(trimmedString);\n return result === 0 && charAt(trimmedString, 0) === '-' ? -0 : result;\n} : $parseFloat;\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","'use strict';\nvar UA = require('../internals/environment-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","'use strict';\nvar userAgent = require('../internals/environment-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IDictionary } from '@msdyn365-commerce/core-internal';\n\nexport enum ICacheSource {\n RequestCache,\n AppCache\n}\n\nexport interface ICacheKey {\n key: string;\n typeName: string;\n}\n\nexport interface ICacheItem {\n item: T;\n shouldRefresh?: boolean;\n error?: boolean;\n instance?: string;\n // property to indicate the source whether it is app/request\n s?: ICacheSource;\n /**\n * Flag to track the when the item start refreshing.\n */\n refreshStartTimeInMS?: number;\n lastRefreshTime?: Date;\n}\n\nexport interface ICompressCache {\n data: T;\n isCompressed: boolean;\n}\n\nexport interface ICacheItemOptions {\n ttr?: number;\n ttl?: number;\n cacheKeySuffix?: string;\n}\nexport interface ICacheStats {\n keys?: number;\n hits?: number;\n misses?: number;\n totalKeySize?: number;\n totalValueSize?: number;\n valueSizePerKey?: object;\n}\n\n/**\n * Interface exposing methods for caching\n */\nexport interface ICache {\n /**\n * @function {put} - Method to insert an item in the cache\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param cacheItem {ICacheItem} - item that needs to be inserted in the cache\n * @param options {ICacheItemOptions} - Optional cache item options\n */\n put(cacheKey: ICacheKey, item: ICacheItem, options?: ICacheItemOptions): boolean;\n\n /**\n * @function {get} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {ICacheItem} - cached value against the given cache key\n */\n get(cacheKey: ICacheKey): ICacheItem | undefined;\n\n /**\n * @function {getValue} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {T} - cached value against the given cache key\n */\n getValue(cacheKey: ICacheKey): T | undefined;\n\n /**\n * @function {getAllItems} - Method to get all cached items for a given type\n * @param typeName {typeName} - typeName for which all items need to be fetched\n * @return {ICacheItem} - dictionary of cache items of the given typeName\n */\n getAllItems(typeName: string): IDictionary> | undefined;\n\n /**\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param toCache {ICache} - cache object to which the item needs to be copied\n * @return {ICacheItem} - cache item that was copied\n */\n copyTo(cacheKey: ICacheKey, toCache: ICache, isObservable?: boolean): ICacheItem | undefined;\n\n /**\n * @function {del} - Method to delete an item from the cache\n * @param key {ICacheKey[]} - Array of ICacheGetData items whose values need to be deleted from cache\n * @return {number} - returns true if the cache key is deleted successfully. Does not throw errors.\n */\n del(cacheKey: ICacheKey): boolean;\n\n /**\n * @function {flushAll} - Method to flush all data from the cache\n */\n flushAll(): void;\n\n /**\n * @function {getStats} - Returns statstics about the cache (number of keys, value size in bytes, etc)\n */\n getStats?(): ICacheStats;\n\n /**\n * @function {flushStats} - Flush the stats\n */\n flushStats?(): void;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ICacheKey } from './ICache';\n\nexport const MODULE_CSS_CACHE_KEY = 'MODULE-CSS-CHUNKS';\nexport const MODULE_CSS_CACHE_TYPENAME = '__MODULECSSCHUNKS__';\n\nexport const normalizeCacheKey = (cacheKey: ICacheKey): ICacheKey => {\n return {\n typeName: cacheKey.typeName.toUpperCase(),\n key: cacheKey.key.toUpperCase()\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IDictionary } from '@msdyn365-commerce/core-internal';\nimport { isAsyncResult } from '@msdyn365-commerce/retail-proxy';\nimport { observable, set, transaction } from 'mobx';\nimport { normalizeCacheKey } from './cache-utils';\nimport { ICache, ICacheItem, ICacheKey, ICacheSource } from './ICache';\n\n/**\n * Client cache implementation\n */\nexport class RequestCache implements ICache {\n private internalCache: { [typeName: string]: IDictionary> } = {};\n\n /**\n * @function {put} - Method to insert an item in the cache\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param cacheItem {ICacheItem} - item that needs to be inserted in the cache\n */\n public put(cacheKey: ICacheKey, item: ICacheItem): boolean {\n if (!cacheKey.typeName) {\n throw new Error(`Invalid type (${cacheKey.typeName} specified)`);\n }\n\n if (!cacheKey.key) {\n throw new Error(`Invalid key (${cacheKey.key} specified) for typeName: ${cacheKey.typeName}`);\n }\n\n item.s = item.s !== undefined ? item.s : ICacheSource.RequestCache;\n const { typeName, key } = normalizeCacheKey(cacheKey);\n if (this.internalCache[typeName] === undefined) {\n this.internalCache[typeName] = {};\n }\n return transaction(() => {\n let cacheItem: ICacheItem = >this.internalCache[typeName][key];\n\n // For updating AsyncResults, only update result\n if (cacheItem && isAsyncResult(cacheItem.item)) {\n if (cacheItem.item.status !== 'LOADING') {\n set(cacheItem.item, 'status', 'LOADING');\n }\n set(cacheItem.item, 'result', item.item);\n // Auto resolve promises whos result is being set, as they are essentially being force-completed\n set(cacheItem.item, 'status', 'SUCCESS');\n } else if (cacheItem) {\n set(cacheItem, 'item', item.item);\n } else {\n if (!isAsyncResult(item.item)) {\n cacheItem = observable>({ ...item }, undefined, {\n deep: true,\n name: `T:${typeName}_K:${key}`\n });\n } else {\n cacheItem = item;\n }\n this.internalCache[typeName][key] = cacheItem;\n }\n\n return true;\n });\n }\n\n /**\n * @function {get} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {IAny} - cached value against the given cache key\n */\n public get(cacheKey: ICacheKey): ICacheItem | undefined {\n if (!cacheKey) {\n throw new Error(`Invalid cacheKey: ${cacheKey}`);\n }\n\n if (!cacheKey.typeName) {\n throw new Error(`Invalid cacheKey type: ${cacheKey.typeName}`);\n }\n\n cacheKey = normalizeCacheKey(cacheKey);\n return this.internalCache[cacheKey.typeName] ? >this.internalCache[cacheKey.typeName][cacheKey.key] : undefined;\n }\n\n /**\n * @function {get} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {IAny} - cached value against the given cache key\n */\n public getAllItems(typeName: string): IDictionary> | undefined {\n if (!typeName) {\n throw new Error(`typeName cannot be empty`);\n }\n\n return >>this.internalCache[typeName.toUpperCase()];\n }\n\n /**\n * @function {getValue} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {IAny} - cached value against the given cache key\n */\n public getValue(cacheKey: ICacheKey): T | undefined {\n const cachedItem: ICacheItem | undefined = this.get(cacheKey);\n return cachedItem ? this._value(cachedItem) : undefined;\n }\n\n /**\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param toCache {ICache} - cache object to which the item needs to be copied\n * @return {ICacheItem} - cache item that was copied\n */\n public copyTo(cacheKey: ICacheKey, toCache: ICache): ICacheItem | undefined {\n throw new Error('Not Implemented');\n }\n\n /**\n * @function {del} - Method to delete an item from the cache\n * @param key {ICacheKey} - Array of ICacheGetData items whose values need to be deleted from cache\n * @return {number} - returns true if the cache key is deleted successfully. Does not throw errors.\n */\n public del(cacheKey: ICacheKey): boolean {\n cacheKey = normalizeCacheKey(cacheKey);\n const cacheType = this.internalCache[cacheKey.typeName];\n if (cacheType && cacheType[cacheKey.key]) {\n delete cacheType[cacheKey.key];\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @function {flushAll} - Method to flush all data from the cache\n */\n public flushAll(): void {\n this.internalCache = {};\n }\n\n /**\n * @function {keys} - Method to fetch all the keys in the cache\n * @return {string[]} - returns a list of all the keys in the cache\n */\n public keys(): string[] {\n return Object.keys(this.internalCache);\n }\n\n /**\n * Get the value out of a cache item\n * This returns the raw value of the item, it will *not* be a MobX observable value\n * @param item The observable cache item to retireve the value from\n */\n private _value(item: ICacheItem): T {\n return item.item;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n// NOTE: no-any is disabled intentionally, as promises require valid use of the any type\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { observable } from 'mobx';\nimport { IODataMetadata } from './interfaces/IODataMetadata';\n\nexport type AsyncResultStatus = 'LOADING' | 'SUCCESS' | 'FAILED';\n\nexport const isAsyncResult = (item: { toString(): string }): item is AsyncResult => {\n return item && item.toString && typeof item.toString === 'function' && item.toString() === `[object AsyncResult]`;\n};\n\n/**\n * Utility Methods For AsyncResult\n */\nconst isThenable = (obj: any) => obj && typeof obj === 'object' && typeof obj.then === 'function';\n\n/**\n * TYPES & INTERFACES\n */\ninterface IHandler {\n onSuccess: HandlerOnSuccess;\n onFail: HandlerOnFail;\n}\n\ntype HandlerOnSuccess = (value: TIn) => TOut | PromiseLike;\ntype HandlerOnFail = (reason: any) => TOut | PromiseLike;\n\ntype Resolve = (value?: T | PromiseLike) => void;\ntype Reject = (value?: any) => void;\n\n/**\n * AsyncResult Class\n * Promise-style class which allows for observation of the status of the promise\n * and it's result during and after is execution.\n */\nexport class AsyncResult implements Promise {\n @observable public result?: T;\n\n @observable public status: AsyncResultStatus = 'LOADING';\n\n @observable public error?: Error;\n\n @observable public metadata: IODataMetadata = {};\n\n private _type: string = 'AsyncResult';\n\n public getType(): string {\n return this._type;\n }\n\n private _handlers: Array> = [];\n\n public static resolve(value?: U | PromiseLike): AsyncResult {\n return new AsyncResult(resolve => {\n return resolve(value);\n });\n }\n\n public static reject(reason?: any): AsyncResult {\n return new AsyncResult((resolve, reject) => {\n return reject(reason);\n });\n }\n\n /**\n * Class constructor, which starts running the passed executor\n * @param executor Passed function to be executed, resulting in resolution/rejection\n */\n constructor(executor: (resolve: Resolve, reject: Reject) => void) {\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /**\n * Method that allows for an executor to be passed to the promise after inital execution,\n * essentially \"rerunning\" the promise.\n * @param executor Passed function to be executed, resulting in resolution/rejection\n */\n public run(executor: (resolve: Resolve, reject: Reject) => void): void {\n this.status = 'LOADING';\n this.error = undefined;\n try {\n executor(this._resolve, this._reject);\n } catch (e) {\n this._reject(e);\n }\n }\n\n /**\n * Method which allows chaining of callbacks to the end of a fully executed AsyncResult\n * @param onSuccess Callback to be run on successful completion of executor\n * @param onFail Callback to be run when executor cannot be successfully completed\n */\n public then(\n onSuccess?: ((value: T) => TResult1 | PromiseLike) | undefined | null,\n onFail?: ((reason: any) => TResult2 | PromiseLike) | undefined | null\n ): AsyncResult {\n const asyncResult = new AsyncResult((resolve, reject) => {\n return this._attachHandler({\n onSuccess: result => {\n if (!onSuccess) {\n return resolve(result as any);\n }\n\n try {\n return resolve(onSuccess(result));\n } catch (e) {\n return reject(e);\n }\n },\n onFail: reason => {\n if (!onFail) {\n return reject(reason);\n }\n\n try {\n return resolve(onFail(reason));\n } catch (e) {\n return reject(e);\n }\n }\n });\n });\n\n // Always pass the metadata on a then\n asyncResult.metadata = this.metadata;\n\n return asyncResult;\n }\n\n /**\n * Hook to allow callback on the unsuccessful run of an executor\n * @param onFail Callback to run when executor fails\n */\n public catch(onFail?: ((reason: any) => TResult | PromiseLike) | undefined | null): AsyncResult {\n const defaultThen = (value: any) => value;\n return this.then(defaultThen, onFail);\n }\n\n /**\n * Hook to allow a callback to be executed on a successful or unsuccessful run of the executor\n * @param callback Callback to be run after original AsyncResult is completed\n */\n public finally(onfinally?: (() => void) | undefined | null): AsyncResult {\n return new AsyncResult((resolve, reject) => {\n let value: T | any;\n let failed: Boolean = false;\n\n return this.then(\n result => {\n value = result;\n return onfinally();\n },\n reason => {\n failed = true;\n value = reason;\n return onfinally();\n }\n ).then(() => {\n if (failed) {\n return reject(value);\n }\n\n return resolve(value);\n });\n });\n }\n\n public toString(): string {\n return `[object AsyncResult]`;\n }\n\n get [Symbol.toStringTag](): string {\n return '[object AsyncResult]';\n }\n\n private _attachHandler = (handler: IHandler) => {\n this._handlers.push(handler);\n\n this._executeHandlers();\n };\n\n private _executeHandlers = () => {\n if (this.status === 'LOADING') {\n return;\n }\n\n for (const handler of this._handlers) {\n if (this.status === 'FAILED') {\n handler.onFail(this.error);\n } else {\n handler.onSuccess(this.result as T);\n }\n }\n\n this._handlers = [];\n };\n\n private _resolve = (value?: T | PromiseLike) => {\n return this._updateStatus(value, 'SUCCESS');\n };\n\n private _reject = (reason: any) => {\n return this._updateStatus(reason, 'FAILED', true);\n };\n\n private _updateStatus(result: T | any, newStatus: AsyncResultStatus, isError: Boolean = false): void {\n // Wrap in setTimeout to ensure fully synchronous handlers\n // are still returned AFTER initial class construction\n setTimeout(() => {\n if (this.status !== 'LOADING') {\n return null;\n }\n\n if (isThenable(result)) {\n return (result as PromiseLike).then(this._resolve, this._reject);\n }\n\n if (isError) {\n this.error = result;\n } else {\n this.result = result;\n }\n\n this.status = newStatus;\n\n return this._executeHandlers();\n }, 0);\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { EMPTY, hasElements } from '../extensions/StringExtensions';\nimport { ProxyError } from './ProxyError';\n\nexport class ErrorTypeEnum {\n public static SERVER_ERROR: string = 'string_29002';\n public static SERVICE_UNAVAILABLE: string = 'string_29278';\n public static SERVER_TIMEOUT: string = 'string_29279';\n public static RETAIL_SERVER_REDIRECT_ERROR = 'RETAIL_SERVER_REDIRECT_ERROR';\n public static GENERICERRORMESSAGE: string = 'string_29201';\n public static MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR: string = ErrorTypeEnum.GENERICERRORMESSAGE;\n public static BAD_REQUEST: string = 'string_29274';\n public static NOT_AUTHORIZIED: string = 'string_29275';\n public static FORBIDDEN: string = 'string_29276';\n public static PRECONDITION_FAILED: string = 'string_29277';\n public static RETURN_NO_ORDERS_FOUND: string = 'string_1218';\n}\n\n/**\n * Forward links for device activation errors.\n */\nexport class DeviceActivationErrorsForwardLinks {\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CHANNELDATABASECONNECTIONFAILED: string =\n 'http://go.microsoft.com/fwlink/?LinkId=403590';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_REALTIMESERVICECONNECTIONFAILED: string =\n 'http://go.microsoft.com/fwlink/?LinkId=403591';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_TERMINALNOTASSIGNEDTOSTORE: string = 'http://go.microsoft.com/fwlink/?LinkId=403592';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_USERNOTASSIGNEDTOSTORE: string = 'http://go.microsoft.com/fwlink/?LinkId=403593';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INCORRECTSTAFFIDORPASSWORD: string = 'http://go.microsoft.com/fwlink/?LinkId=403594';\n public static MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEVICEALREADYACTIVATED: string = 'http://go.microsoft.com/fwlink/?LinkId=519136';\n public static SERVER_ERROR: string = 'http://go.microsoft.com/fwlink/?LinkId=519137';\n}\n\nexport class ErrorHelper {\n private static AGGREGATED_ERROR_RESOUCEIDS: string[] = [\n 'Microsoft_Dynamics_Commerce_Runtime_AggregateValidationError',\n 'Microsoft_Dynamics_Commerce_Runtime_AggregateCommunicationError',\n 'Microsoft_Dynamics_Commerce_Runtime_InvalidCartLinesAggregateError'\n ];\n\n public static MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR: string = 'Microsoft_Dynamics_Internal_Server_Error';\n\n public static isAggregatedErrorResourceId(errorResourceId: string): boolean {\n return ErrorHelper.AGGREGATED_ERROR_RESOUCEIDS.indexOf(errorResourceId) !== -1;\n }\n\n /**\n * Map response status code to error.\n *\n * @param {any} Error returned by retail server call.\n */\n public static MapResponseStatusCodeToError(errorMessage: string, statusCode: number, err?: any): ProxyError {\n let errorCode = '';\n let canRetry = false;\n\n switch (statusCode) {\n case 400:\n errorCode = ErrorTypeEnum.BAD_REQUEST;\n break;\n case 401:\n errorCode = ErrorTypeEnum.NOT_AUTHORIZIED;\n break;\n case 403:\n errorCode = ErrorTypeEnum.FORBIDDEN;\n break;\n case 412:\n errorCode = ErrorTypeEnum.PRECONDITION_FAILED;\n break;\n case 503:\n errorCode = ErrorTypeEnum.SERVICE_UNAVAILABLE;\n canRetry = true;\n break;\n case 500:\n default:\n errorCode = ErrorTypeEnum.SERVER_ERROR;\n errorMessage = 'The server error format is not supported or it does not have enough information.';\n\n // Temporary until the fix for Bug 681427 goes in\n // If no orders were found, than an error did not occur\n if (err && err.response && err.response.body && err.response.requestUri) {\n if (err.response.requestUri.indexOf('GetOrderByReceiptId') > -1) {\n if (err.response.body.indexOf('No orders were found') > -1) {\n errorMessage = ErrorTypeEnum.RETURN_NO_ORDERS_FOUND;\n }\n }\n }\n }\n\n if (errorMessage && errorMessage.toUpperCase() === 'TIMEOUT') {\n errorCode = ErrorTypeEnum.SERVER_TIMEOUT;\n }\n\n return new ProxyError(errorCode, errorMessage || EMPTY, EMPTY, canRetry, err);\n }\n\n /**\n * Checks whether all the provided errors are retryable. If no error code is provided or an error is undefined,\n * then the errors will be treated as not retryable.\n *\n * @return {boolean} True if the error codes are retryable, false if the error codes are not retryable or not defined\n */\n public static isRetryable(errors: ProxyError[]): boolean {\n const numErrors: number = !errors ? 0 : errors.length;\n let isRetryable: boolean = numErrors > 0;\n for (let i: number = 0; i < numErrors; i++) {\n if (errors[i]) {\n isRetryable = isRetryable && errors[i].CanRetry;\n } else {\n isRetryable = false;\n }\n }\n\n return isRetryable;\n }\n\n /**\n * Gets a string with all error codes.\n * @param {ProxyError[]} errors the error collection.\n * @return {string} a formated string containing all error codes.\n */\n public static getErrorResourceIds(errors: ProxyError[]): string {\n let result: string = '';\n\n if (hasElements(errors)) {\n const errorResourceIds: string[] = [];\n for (const error of errors) {\n errorResourceIds.push(error.ErrorCode);\n }\n\n result = errorResourceIds.join(', ');\n }\n\n return result;\n }\n\n /**\n * Gets a string with all error messages.\n * @param {ProxyError[]} errors the error collection.\n * @return {string} a formated string containing all error messages.\n */\n public static getErrorMessages(errors: ProxyError[]): string {\n let result: string = '';\n\n if (hasElements(errors)) {\n const errorResourceIds: string[] = [];\n for (const error of errors) {\n errorResourceIds.push(error.LocalizedErrorMessage);\n }\n\n result = errorResourceIds.join(', ');\n }\n\n return result;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\nimport { ICallerContext } from './../Interfaces';\n\nconst EDM = 'Edm.';\nconst EDM_BOOLEAN = EDM + 'Boolean';\nconst EDM_BYTE = EDM + 'Byte';\nconst EDM_DATETIME = EDM + 'DateTime';\nconst EDM_DATETIMEOFFSET = EDM + 'DateTimeOffset';\nconst EDM_DECIMAL = EDM + 'Decimal';\nconst EDM_DOUBLE = EDM + 'Double';\nconst EDM_INT16 = EDM + 'Int16';\nconst EDM_INT32 = EDM + 'Int32';\nconst EDM_INT64 = EDM + 'Int64';\nconst EDM_SBYTE = EDM + 'SByte';\nconst EDM_SINGLE = EDM + 'Single';\nconst EDM_TIME = EDM + 'Time';\n\nconst OBO_REQUEST = 'isOBORequest';\n\nconst parseBool = propertyValue => {\n /// Parses a string into a boolean value.\n /// Value to parse.\n /// true if the property value is 'true'; false otherwise.\n\n if (typeof propertyValue === 'boolean') {\n return propertyValue;\n }\n\n return typeof propertyValue === 'string' && propertyValue.toLowerCase() === 'true';\n};\n\nconst formatNumberWidth = (value, width, append) => {\n /// Formats the specified value to the given width.\n /// Number to format (non-negative).\n /// Minimum width for number.\n /// Flag indicating if the value is padded at the beginning (false) or at the end (true).\n /// Text representation.\n let result = value.toString(10);\n while (result.length < width) {\n if (append) {\n result += '0';\n } else {\n result = '0' + result;\n }\n }\n\n return result;\n};\n\nconst parseTimezone = timezone => {\n /// Parses a timezone description in (+|-)nn:nn format.\n /// Timezone offset.\n /// \n /// An object with a (d)irection property of 1 for + and -1 for -,\n /// offset (h)ours and offset (m)inutes.\n /// \n\n let direction = timezone.substring(0, 1);\n direction = direction === '+' ? 1 : -1;\n\n const offsetHours = parseInt(timezone.substring(1), 10);\n const offsetMinutes = parseInt(timezone.substring(timezone.indexOf(':') + 1), 10);\n return { d: direction, h: offsetHours, m: offsetMinutes };\n};\n\n// The captured indices for this expression are:\n// 0 - complete input\n// 1 - direction\n// 2,3,4 - years, months, days\n// 5,6,7,8 - hours, minutes, seconds, miliseconds\nconst parseTimeRE = /^([+-])?P(?:(\\d+)Y)?(?:(\\d+)M)?(?:(\\d+)D)?(?:T(?:(\\d+)H)?(?:(\\d+)M)?(?:(\\d+)(?:\\.(\\d+))?S)?)?/;\n\n// The captured indices for this expression are:\n// 0 - complete input\n// 1,2,3 - year with optional minus sign, month, day\n// 4,5,6 - hours, minutes, seconds\n// 7 - optional milliseconds\n// 8 - everything else (presumably offset information)\nconst parseDateTimeRE = /^(-?\\d{4,})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(.*)$/;\n\nconst getCanonicalTimezone = timezone => {\n /// Gets the canonical timezone representation.\n /// Timezone representation.\n /// An 'Z' string if the timezone is absent or 0; the timezone otherwise.\n\n return !timezone || timezone === 'Z' || timezone === '+00:00' || timezone === '-00:00' ? 'Z' : timezone;\n};\n\nconst parseDuration = duration => {\n /// Parses a string in xsd:duration format.\n /// Duration value.\n /// \n /// This method will throw an exception if the input string has a year or a month component.\n /// \n /// Object representing the time\n\n const parts = parseTimeRE.exec(duration);\n\n if (parts === null) {\n throw { message: 'Invalid duration value.' };\n }\n\n const years = parts[2] || '0';\n const months = parts[3] || '0';\n const days = parseInt(parts[4], 10) || 0;\n const hours = parseInt(parts[5], 10) || 0;\n const minutes = parseInt(parts[6], 10) || 0;\n const seconds = parseFloat(parts[7]) || 0;\n\n if (years !== '0' || months !== '0') {\n throw { message: 'Unsupported duration value.' };\n }\n\n let ms: any = parts[8];\n let ns: any = 0;\n if (!ms) {\n ms = 0;\n } else {\n if (ms.length > 7) {\n throw { message: 'Cannot parse duration value to given precision.' };\n }\n\n ns = formatNumberWidth(ms.substring(3), 4, true);\n ms = formatNumberWidth(ms.substring(0, 3), 3, true);\n\n ms = parseInt(ms, 10);\n ns = parseInt(ns, 10);\n }\n\n ms += seconds * 1000 + minutes * 60000 + hours * 3600000 + days * 86400000;\n\n if (parts[1] === '-') {\n ms = -ms;\n }\n\n const result: any = { ms, __edmType: 'Edm.Time' };\n\n if (ns) {\n result.ns = ns;\n }\n return result;\n};\n\nconst parseDateTimeOffset = (value, withOffset, nullOnError) => {\n /// Parses a string into a DateTime value.\n /// Value to parse.\n /// Whether offset is expected.\n /// The parsed value.\n\n // We cannot parse this in cases of failure to match or if offset information is specified.\n const parts = parseDateTimeRE.exec(value);\n const offset = parts ? getCanonicalTimezone(parts[8]) : null;\n\n if (!parts || (!withOffset && offset !== 'Z')) {\n if (nullOnError) {\n return null;\n }\n throw { message: 'Invalid date/time value' };\n }\n\n // Pre-parse years, account for year '0' being invalid in dateTime.\n let year = parseInt(parts[1], 10);\n if (year <= 0) {\n year++;\n }\n\n // Pre-parse optional milliseconds, fill in default. Fail if value is too precise.\n let ms: any = parts[7];\n let ns: any = 0;\n if (!ms) {\n ms = 0;\n } else {\n if (ms.length > 7) {\n if (nullOnError) {\n return null;\n }\n throw { message: 'Cannot parse date/time value to given precision.' };\n }\n\n ns = formatNumberWidth(ms.substring(3), 4, true);\n ms = formatNumberWidth(ms.substring(0, 3), 3, true);\n\n ms = parseInt(ms, 10);\n ns = parseInt(ns, 10);\n }\n\n // Pre-parse other time components and offset them if necessary.\n let hours = parseInt(parts[4], 10);\n let minutes = parseInt(parts[5], 10);\n const seconds = parseInt(parts[6], 10);\n if (offset !== 'Z') {\n // The offset is reversed to get back the UTC date, which is\n // what the API will eventually have.\n const timezone = parseTimezone(offset);\n const direction = -timezone.d;\n hours += timezone.h * direction;\n minutes += timezone.m * direction;\n }\n\n // Set the date and time separately with setFullYear, so years 0-99 aren't biased like in Date.UTC.\n const result: any = new Date();\n result.setUTCFullYear(\n year, // Year.\n parseInt(parts[2], 10) - 1, // Month (zero-based for Date.UTC and setFullYear).\n parseInt(parts[3], 10) // Date.\n );\n result.setUTCHours(hours, minutes, seconds, ms);\n\n if (isNaN(result.valueOf())) {\n if (nullOnError) {\n return null;\n }\n throw { message: 'Invalid date/time value' };\n }\n\n if (withOffset) {\n result.__edmType = 'Edm.DateTimeOffset';\n result.__offset = offset;\n }\n\n if (ns) {\n result.__ns = ns;\n }\n\n return result;\n};\n\nexport const jsonLightReadStringPropertyValue = (value, propertyType, recognizeDates) => {\n /// Convertes the value of a string property in a JSON light object to its library representation.\n /// String value to convert.\n /// Type name of the property.\n /// Flag indicating whether datetime literal strings should be converted to JavaScript Date objects.\n /// String property value in its library representation.\n\n switch (propertyType) {\n case EDM_BOOLEAN:\n return parseBool(value);\n case EDM_BYTE:\n case EDM_INT16:\n case EDM_INT32:\n case EDM_INT64:\n case EDM_SBYTE:\n return parseInt(value, 10);\n case EDM_DOUBLE:\n case EDM_SINGLE:\n case EDM_DECIMAL:\n return parseFloat(value);\n case EDM_TIME:\n return parseDuration(value);\n case EDM_DATETIME:\n const dateStr = value || '';\n const time = dateStr.substring(dateStr.indexOf('T') + 1);\n const timezoneOffsetIndex = time.indexOf('-');\n timezoneOffsetIndex === -1 ? time.indexOf('+') : timezoneOffsetIndex;\n\n if (timezoneOffsetIndex !== -1) {\n return parseDateTimeOffset(value, true, /* nullOnError */ false);\n } else {\n return parseDateTimeOffset(value, false, /* nullOnError */ false);\n }\n case EDM_DATETIMEOFFSET:\n return parseDateTimeOffset(value, true, /* nullOnError */ false);\n }\n\n if (recognizeDates) {\n return (\n parseDateTimeOffset(value, false, /* nullOnError */ true) || parseDateTimeOffset(value, true, /* nullOnError */ true) || value\n );\n }\n return value;\n};\n\n// isOBORequest representing whether current user is on behalf of or not\nexport const isOboRequest = (callerContext: ICallerContext): boolean => {\n const { user } = callerContext.requestContext;\n return user[OBO_REQUEST] || false;\n};\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { ProductCatalog } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function catalogsQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Catalogs\", \"ProductCatalog\", \"ProductCatalogClass\", key);\n }\n \n export function createCreateInput(entity: ProductCatalog): IDataServiceRequest {\n return catalogsQuery().create(entity);\n }\n\n export function createProductCatalogAsync(context: IContext, entity: ProductCatalog): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: ProductCatalog): IDataServiceRequest {\n return catalogsQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: ProductCatalog): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: ProductCatalog): IDataServiceRequest {\n return catalogsQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: ProductCatalog): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return catalogsQuery(recordId).read();\n }\n\n export function readAsync(context: IContext, recordId: number): AsyncResult {\n const request = createReadAsync(recordId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return catalogsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCatalogsInput(queryResultSettings: IQueryResultSettings, channelId: number, activeOnly: boolean): IDataServiceRequest { \n const query = catalogsQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCatalogs', true, \n 'ProductCatalogClass'\n , 'true', {bypassCache: 'none', returnEntity: 'ProductCatalog'}, {channelId: channelId, activeOnly: activeOnly });\n } \n \n export function getCatalogsAsync(context: IContext, channelId: number, activeOnly: boolean):AsyncResult {\n const request = createGetCatalogsInput(context.queryResultSettings, channelId, activeOnly);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Category, AttributeCategory } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function categoriesQuery(recordId?: number): DataServiceQuery {\n var key = (recordId) ? { RecordId: recordId } : null;\n return new DataServiceQuery(\"Categories\", \"Category\", \"CategoryClass\", key);\n }\n \n export function createCreateInput(entity: Category): IDataServiceRequest {\n return categoriesQuery().create(entity);\n }\n\n export function createCategoryAsync(context: IContext, entity: Category): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Category): IDataServiceRequest {\n return categoriesQuery(entity.RecordId).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Category): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Category): IDataServiceRequest {\n return categoriesQuery(entity.RecordId).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Category): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(recordId: number): IDataServiceRequest {\n return categoriesQuery(recordId).read();\n }\n\n export function readAsync(context: IContext, recordId: number): AsyncResult {\n const request = createReadAsync(recordId);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return categoriesQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetCategoriesInput(queryResultSettings: IQueryResultSettings, channelId: number, catalogId?: number | null): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCategories', true, \n 'CategoryClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Category'}, {channelId: channelId, catalogId: catalogId });\n } \n \n export function getCategoriesAsync(context: IContext, channelId: number, catalogId?: number | null):AsyncResult {\n const request = createGetCategoriesInput(context.queryResultSettings, channelId, catalogId);\n return executeAction(request, context);\n } \n \n export function createGetAttributesInput(queryResultSettings: IQueryResultSettings, categoryId: number): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetAttributes', false, \n 'AttributeCategoryClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AttributeCategory'}, {categoryId: categoryId });\n } \n \n export function getAttributesAsync(context: IContext, categoryId: number):AsyncResult {\n const request = createGetAttributesInput(context.queryResultSettings, categoryId);\n return executeAction(request, context);\n } \n \n export function createGetCatalogAttributesInput(queryResultSettings: IQueryResultSettings, catalogId: number, categoryIds: number[]): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetCatalogAttributes', true, \n 'AttributeCategoryClass'\n , 'true', {bypassCache: 'none', returnEntity: 'AttributeCategory'}, {catalogId: catalogId, categoryIds: categoryIds });\n } \n \n export function getCatalogAttributesAsync(context: IContext, catalogId: number, categoryIds: number[]):AsyncResult {\n const request = createGetCatalogAttributesInput(context.queryResultSettings, catalogId, categoryIds);\n return executeAction(request, context);\n } \n \n export function createGetChildrenInput(queryResultSettings: IQueryResultSettings, channelId: number, categoryId: number): IDataServiceRequest { \n const query = categoriesQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetChildren', true, \n 'CategoryClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Category'}, {channelId: channelId, categoryId: categoryId });\n } \n \n export function getChildrenAsync(context: IContext, channelId: number, categoryId: number):AsyncResult {\n const request = createGetChildrenInput(context.queryResultSettings, channelId, categoryId);\n return executeAction(request, context);\n } \n \n ","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CommerceException, DataValidationException, DataValidationFailure } from '../Entities/CommerceTypes.g';\nimport { EMPTY, hasElements } from '../extensions/StringExtensions';\nimport { genericWarning, Tracer } from '../logging';\nimport { ErrorTypeEnum, ErrorHelper } from './ErrorHelper';\nimport { ProxyError } from './ProxyError';\nimport {\n ICallerContext\n} from './../Interfaces';\nimport {\n isOboRequest\n} from './../externals/helper'\n\n/**\n * Error parser class.\n */\nexport class ErrorParser {\n private static DataValidationExceptionType: string = 'Microsoft.Dynamics.Commerce.Runtime.DataValidationException';\n private static CartValidationExceptionType: string = 'Microsoft.Dynamics.Commerce.Runtime.CartValidationException';\n private static StorageExceptionType: string = 'Microsoft.Dynamics.Commerce.Runtime.StorageException';\n\n /**\n * Parses an error message.\n *\n * @param {any} error The error message.\n * @return {ProxyError[]} The collection of error messages.\n */\n public static parseErrorMessage(error: any, callerContext?: ICallerContext): ProxyError[] {\n const response = error.response;\n let errors: ProxyError[] = [];\n const isObo = callerContext ? isOboRequest(callerContext) : false;\n if (response) {\n let handled = true;\n Tracer.Information(`Server response status code is '${response.statusCode}'`);\n switch (response.statusCode) {\n case 306: // Custom - Redirection\n const redirectUrl = response.headers['Location'];\n error.redirectUrl = redirectUrl;\n errors = [new ProxyError(ErrorTypeEnum.RETAIL_SERVER_REDIRECT_ERROR, response.statusText, EMPTY, false, error)];\n break;\n\n case 401: // Unauthorized (Generally Expired Token)\n if (process.env.CURRENT_ENVIRONMENT === 'web') {\n const redirectCountQueryString = 'rdc';\n const noRedirectQueryString = 'noredirect';\n try {\n const currentUrl = new URL(location.href);\n if (currentUrl.searchParams.get(noRedirectQueryString)) {\n break;\n }\n if (isObo) {\n break;\n }\n const rdc = parseInt(currentUrl.searchParams.get(redirectCountQueryString), 10) || 0;\n if (rdc && rdc >= 3) {\n break;\n }\n currentUrl.searchParams.set(redirectCountQueryString, `${rdc + 1}`);\n location.href = currentUrl.href;\n } catch (e) {\n break;\n }\n }\n\n break;\n\n case 408: // Request Timeout\n errors = [new ProxyError(ErrorTypeEnum.SERVER_TIMEOUT, response.statusText, EMPTY, false, error)];\n break;\n\n case 0: // WWAHost reports status code as 0, If server is unreachable.\n case 502: // Bad Gateway\n case 503: // Service Unavailable\n case 504: // Gateway timeout\n errors = [new ProxyError(ErrorTypeEnum.SERVICE_UNAVAILABLE, response.statusText, EMPTY, false, error)];\n break;\n\n default:\n handled = false;\n }\n\n if (!handled) {\n errors = ErrorParser.parseError(error);\n }\n }\n\n // If we couldn't create any error object from error message, add error parsing failure\n if (!errors || !errors.length) {\n errors = [new ProxyError(ErrorTypeEnum.SERVER_ERROR, 'Could not parse error message sent by the server.', EMPTY, false, error)];\n }\n\n return errors;\n }\n\n /**\n * Parses an error message sent from Hardware station.\n *\n * @param {any} error The error message.\n * @retunrs {ProxyError[]} The collection of error messages.\n */\n public static parseHardwareStationErrorMessage(error: any): ProxyError[] {\n let errors: ProxyError[] = [];\n\n if (error) {\n try {\n const response = error.responseText;\n\n if (response) {\n const jsonResponse = JSON.parse(response);\n\n // Parse errors in json format\n if (jsonResponse) {\n errors = [\n new ProxyError(\n jsonResponse.ErrorResourceId ? jsonResponse.ErrorResourceId : ErrorTypeEnum.SERVER_ERROR,\n jsonResponse.Message || '',\n EMPTY,\n false,\n error\n )\n ];\n } else {\n // If not in json, we cannot parse it\n errors = [\n new ProxyError(\n ErrorTypeEnum.SERVER_ERROR,\n 'The value of Content-Type on server response is not supported.',\n EMPTY,\n false,\n error\n )\n ];\n }\n } else {\n // In case we don't have a body, we don't know the error message but from http status\n errors = [ErrorHelper.MapResponseStatusCodeToError(error.statusText, error.status, error)];\n }\n } catch (ex) {\n const errorMessage: string = `parseHardwareStationErrorMessage: Failed parse error message '${ex.message}'.`;\n Tracer.Error(errorMessage, ex);\n }\n }\n\n // If we couldn't create any error object from error message, add error parsing failure\n if (!errors || !errors.length) {\n errors = [new ProxyError(ErrorTypeEnum.SERVER_ERROR, 'Could not parse error message sent by the server.', EMPTY, false, error)];\n }\n\n return errors;\n }\n\n public static parseJSONError(errorString: string, errorResponse?: any): ProxyError[] {\n let commerceErrors: ProxyError[] = [];\n\n try {\n const odataError: any = JSON.parse(errorString);\n odataError.CorrelationId = errorResponse.data.CorrelationId;\n\n // assign parsed data to errorResponse\n errorResponse.data = odataError;\n\n // due to odata json format limitation, a collection of errors is provided in the message field\n const localizedMessage: string = odataError.LocalizedMessage;\n const exceptionType: string = odataError.ErrorResourceId;\n\n if (exceptionType === ErrorTypeEnum.MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR) {\n commerceErrors = [\n new ProxyError(\n ErrorTypeEnum.MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR,\n localizedMessage || 'Server failed with uncaught exception. Please report this failure.',\n localizedMessage,\n false,\n errorResponse\n )\n ];\n } else if (localizedMessage != null && exceptionType != null) {\n commerceErrors = ErrorParser.convertExceptionToErrors(odataError, exceptionType, errorResponse);\n } else {\n throw new Error('Server exception is not in expected format.');\n }\n } catch (ex) {\n const errorMessage: string =\n 'DataServiceRequest::parseJSONError: Invalid json format from server. It was not possible to parse error message. {0}';\n Tracer.Error(errorMessage, ex);\n }\n\n if (!hasElements(commerceErrors)) {\n commerceErrors = [\n new ProxyError(\n ErrorTypeEnum.GENERICERRORMESSAGE,\n 'Could not parse error message from server. Possible invalid OData request, please check your request.',\n EMPTY,\n false,\n errorResponse\n )\n ];\n }\n\n return commerceErrors;\n }\n\n private static convertExceptionToErrors(serverException: CommerceException, exceptionType: string, errorResponse: any): ProxyError[] {\n let errors: ProxyError[] = [];\n\n switch (exceptionType) {\n // CartValidationExceptionType extends DataValidationExceptionType\n case ErrorParser.DataValidationExceptionType:\n case ErrorParser.CartValidationExceptionType:\n const dataValidation: DataValidationException = serverException as DataValidationException;\n // json is in odata format, array has elements inside result member\n errors = ErrorParser.getErrorsFromDataValidationFailures(dataValidation.ValidationResults as any);\n errors.push(\n new ProxyError(\n dataValidation.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR,\n EMPTY,\n dataValidation.LocalizedMessage,\n false,\n errorResponse\n )\n );\n break;\n\n case ErrorParser.StorageExceptionType:\n errors.push(\n new ProxyError(ErrorTypeEnum.SERVICE_UNAVAILABLE, EMPTY, serverException.LocalizedMessage, false, errorResponse)\n );\n break;\n }\n\n if (errors.length === 0) {\n const error: ProxyError = new ProxyError(\n serverException.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR,\n EMPTY,\n serverException.LocalizedMessage,\n false,\n errorResponse\n );\n error.commerceException = serverException;\n errors.push(error);\n }\n\n return errors;\n }\n\n private static getErrorsFromDataValidationFailures(failures: DataValidationFailure[]): ProxyError[] {\n const errors: ProxyError[] = [];\n failures = failures || [];\n\n for (const failure of failures) {\n errors.push(\n new ProxyError(\n failure.ErrorResourceId || ErrorTypeEnum.SERVER_ERROR,\n failure.ErrorContext || '',\n failure.LocalizedMessage,\n false,\n {}\n )\n );\n }\n\n return errors;\n }\n\n /**\n * Parses an error to get the error code and error message.\n *\n * @param {any} error The error message.\n * @retunrs {ProxyError[]} The collection of error messages.\n */\n private static parseError(error: any): ProxyError[] {\n const response = error.response;\n let errors: ProxyError[] = [];\n if (response.body && response.data) {\n // If we have a response body\n const contentType: string = (response.headers && (response.headers['Content-Type'] || response.headers['content-type'])) || '';\n const bodyString: string = response.data.Exception;\n // Parse errors in json format\n if (contentType.toLowerCase().indexOf('application/json') !== -1) {\n errors = ErrorParser.parseJSONError(bodyString, error.response);\n } else {\n const message: string = `Server error has been received with unsupported content type: '${contentType}'.`;\n genericWarning(message);\n }\n }\n // if we couldn't parse the errors from the body, we can only rely on status text and status code\n if (!hasElements(errors)) {\n // In case we don't have a body, we don't know the error message but from http status code\n errors = [ErrorHelper.MapResponseStatusCodeToError(response.statusText, response.statusCode, error)];\n }\n return errors;\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport axios from 'axios';\nimport { ICacheKey, ICallerContext, IRequestContextParams } from '../Interfaces';\nimport { jsonHandler } from './handler';\n\n/**\n * OData request interface.\n */\nexport interface IODataRequest {\n /**\n * OData endpoint URI\n */\n requestUri: string;\n\n /**\n * HTTP method (GET, POST, PUT, DELETE)\n */\n method: string;\n\n /**\n * Payload of the request (in intermediate format)\n */\n data: any;\n\n /**\n * Object that contains HTTP headers as name value pairs\n */\n headers?: Object;\n\n /**\n * (Optional) Username to send for BASIC authentication\n */\n user?: string;\n\n /**\n * (Optional) Password to send for BASIC authentication\n */\n password?: string;\n\n /**\n * (Optional) Whether or not to use cross domain cookies.\n */\n useCrossDomainCookies?: boolean;\n}\n\nconst normalHeaders = {\n accept: 'Accept',\n 'content-type': 'Content-Type',\n 'odata-version': 'OData-Version',\n 'odata-maxversion': 'OData-MaxVersion'\n};\n\nconst isAbsoluteUrl = url => {\n /// Checks whether the specified URL is an absolute URL.\n /// URL to check.\n /// true if the url is an absolute URL; false otherwise.\n\n return url.indexOf('http://') === 0 || url.indexOf('https://') === 0 || url.indexOf('file://') === 0;\n};\n\nconst normalizeHeaders = headers => {\n /// Normalizes headers so they can be found with consistent casing.\n /// Dictionary of name/value pairs.\n\n for (const name in headers) {\n if (headers.hasOwnProperty(name)) {\n const lowerName = name.toLowerCase();\n const normalName = normalHeaders[lowerName];\n if (normalName && name !== normalName) {\n const val = headers[name];\n delete headers[name];\n headers[normalName] = val;\n }\n }\n }\n};\n\nconst getCacheObjectValueFromReturnType = (returnType: any): string => {\n // return type can be actual class itself like CategoryClass instead of string 'CategoryClass'\n const cacheObjectTypeValue = typeof returnType === 'function' ? returnType.name : returnType;\n return cacheObjectTypeValue.replace('Class', '');\n};\n\nconst defaultHttpClient = {\n callbackParameterName: '$callback',\n formatQueryString: '$format=json',\n enableJsonpCallback: false,\n\n request(request, success, error, returnType: string, clientTimeout?: number, callerContext?: ICallerContext) {\n /// Performs a network request.\n /// Request description.\n /// Success callback with the response object.\n /// Error callback with an error object.\n /// Object with an 'abort' method for the operation.\n const result = { abort: null, handleTimeout: null };\n\n const cancelToken = axios.CancelToken.source();\n\n let done = false;\n result.abort = () => {\n if (done) {\n return;\n }\n done = true;\n cancelToken.cancel('Request aborted');\n error({ message: 'Request aborted' });\n };\n\n request.handleTimeout = () => {\n if (!done) {\n done = true;\n cancelToken.cancel('Request aborted');\n error({ message: 'Request timed out' });\n }\n };\n\n const url = request.requestUri;\n const enableJsonpCallback = request.enableJsonpCallback || false;\n if (!enableJsonpCallback || !isAbsoluteUrl(url)) {\n let authenticationCreds;\n if (request.user) {\n authenticationCreds = {\n username: request.user,\n password: request.password || ''\n };\n }\n // console.log('\\r\\nDataServiceRequest - \\r\\n\\n', request);\n let axiosTimeout = request.timeoutMS || 10000;\n // check if on client side.\n if (process.env.CURRENT_ENVIRONMENT === 'web') {\n // @ts-ignore -using client window object\n if (typeof window != undefined && window.___initialData___) {\n // @ts-ignore -using client window object\n const initialData = window.___initialData___;\n const rtype = getCacheObjectValueFromReturnType(returnType);\n const rTypeLowerCase = rtype.toLowerCase();\n const clientTimeoutMap = initialData._clientPlatformSetting?.clientTimeoutMapInMs;\n if (clientTimeoutMap && clientTimeoutMap[rTypeLowerCase]) {\n axiosTimeout = clientTimeoutMap[rTypeLowerCase];\n } else if (initialData._clientPlatformSetting?.clientSideDataActionTimeoutInMs) {\n // @ts-ignore -using client window object\n axiosTimeout = initialData._clientPlatformSetting.clientSideDataActionTimeoutInMs;\n }\n\n if (clientTimeout) {\n axiosTimeout = clientTimeout;\n }\n }\n } else {\n const serverSideDataActionTimeoutInMs = process.env.serverSideDataActionTimeoutInMs;\n axiosTimeout =\n serverSideDataActionTimeoutInMs && serverSideDataActionTimeoutInMs !== ''\n ? Number(serverSideDataActionTimeoutInMs)\n : 4000;\n }\n\n const pageInsightsData = {\n Request: {\n Headers: request.headers,\n Method: request.method,\n Body: request.body\n },\n Response: {\n Headers: {},\n Body: {},\n StatusText: '',\n StatusCode: 0\n }\n };\n\n axios\n .request({\n method: request.method || 'get',\n url,\n data: request.body,\n auth: authenticationCreds,\n headers: request.headers || {},\n timeout: axiosTimeout,\n cancelToken: cancelToken.token\n })\n .then(axiosResponse => {\n const response = {\n requestUri: url,\n statusCode: axiosResponse.status,\n statusText: axiosResponse.statusText,\n headers: axiosResponse.headers,\n body: axiosResponse.data\n };\n done = true;\n\n if (isPageInsightsEnabled(callerContext.requestContext.params)) {\n pageInsightsData.Response.Body = axiosResponse.data;\n pageInsightsData.Response.StatusText = axiosResponse.statusText;\n pageInsightsData.Response.StatusCode = axiosResponse.status;\n pageInsightsData.Response.Headers = axiosResponse.headers;\n const insightsKey: ICacheKey = {\n typeName: 'string',\n key: '__API_INSIGHTS__'\n };\n const insightsData = callerContext.requestCache.get(insightsKey)?.item || {};\n insightsData[url] = pageInsightsData;\n callerContext.requestCache.put(insightsKey, { item: insightsData });\n }\n\n success(response);\n })\n .catch(axiosError => {\n const response = {\n requestUri: url,\n statusCode: axiosError.response ? parseInt(axiosError.response.status, 10) : 0,\n statusText: axiosError.name,\n body: axiosError.message,\n data: axiosError.response ? axiosError.response.data : {},\n headers: axiosError.response ? axiosError.response.headers : {}\n };\n\n if (isPageInsightsEnabled(callerContext.requestContext.params)) {\n pageInsightsData.Response.Body = axiosError.response ? axiosError.response.data : {};\n pageInsightsData.Response.StatusText = axiosError.name;\n pageInsightsData.Response.StatusCode = axiosError.response ? parseInt(axiosError.response.status, 10) : 0;\n pageInsightsData.Response.Headers = axiosError.response ? axiosError.response.headers : {};\n const insightsKey: ICacheKey = {\n typeName: 'string',\n key: '__API_INSIGHTS__'\n };\n const insightsData = callerContext.requestCache.get(insightsKey)?.item || {};\n insightsData[url] = pageInsightsData;\n callerContext.requestCache.put(insightsKey, { item: insightsData });\n }\n\n error({ message: 'HTTP request failed', request, response });\n });\n } else {\n error({\n message: 'Only requests to non-absolute urls are supported at this time without JSONP callback'\n });\n }\n return result;\n }\n};\n\nconst prepareRequest = (request, handler, context) => {\n /// Prepares a request object so that it can be sent through the network.\n /// Object that represents the request to be sent.\n /// Handler for data serialization\n /// Context used for preparing the request\n\n // Default to GET if no method has been specified.\n if (!request.method) {\n request.method = 'GET';\n }\n\n if (!request.headers) {\n request.headers = {};\n } else {\n normalizeHeaders(request.headers);\n }\n\n if (request.headers.Accept === undefined) {\n request.headers.Accept = handler.accept;\n }\n\n if (request.data && request.body === undefined) {\n handler.write(request, context);\n }\n\n if (!request.headers['OData-MaxVersion']) {\n request.headers['OData-MaxVersion'] = handler.maxDataServiceVersion || '4.0';\n }\n};\n\nconst invokeRequest = (\n request,\n success,\n error,\n handler,\n httpClient,\n context,\n returnType: string,\n clientTimeout?: number,\n callerContext?: ICallerContext\n) => {\n /// Sends a request containing OData payload to a server.\n /// Object that represents the request to be sent..\n /// Callback for a successful read operation.\n /// Callback for handling errors.\n /// Handler for data serialization.\n /// HTTP client layer.\n /// Context used for processing the request\n\n return httpClient.request(\n request,\n response => {\n try {\n if (response.headers) {\n normalizeHeaders(response.headers);\n }\n\n if (response.data === undefined && response.statusCode !== 204) {\n if (!handler.read(response, context)) {\n throw { message: 'Handler could not parse response.' };\n }\n }\n } catch (err) {\n if (err.request === undefined) {\n err.request = request;\n }\n if (err.response === undefined) {\n err.response = response;\n }\n error(err);\n return;\n }\n\n success(response.data, response);\n },\n error,\n returnType,\n clientTimeout,\n callerContext\n );\n};\n\nexport const isPageInsightsEnabled = (params: IRequestContextParams): boolean => {\n return params?.pageInsights === 'all' || params?.pageInsights === 'info' || params?.pageInsights === 'error';\n};\n\nexport const ODataHttpRequest = (request, success, error, returnType: string, clientTimeout?: number, callerContext?: ICallerContext) => {\n /// Sends a request containing OData payload to a server.\n /// Object that represents the request to be sent.\n /// Callback for a successful read operation.\n /// Callback for handling errors.\n /// Handler for data serialization.\n /// HTTP client layer.\n /// Conceptual metadata for this request.\n\n success = success || (data => process.env.NODE_ENV !== 'production' && console.log(JSON.stringify(data)));\n error =\n error ||\n (err => {\n throw err;\n });\n\n // Augment the request with additional defaults.\n request.recognizeDates = request.recognizeDates || false;\n request.useJsonLight = request.useJsonLight || false;\n request.inferJsonLightFeedAsObject = request.inferJsonLightFeedAsObject || false;\n request.callbackParameterName = request.callbackParameterName || defaultHttpClient.callbackParameterName;\n request.formatQueryString = request.formatQueryString || defaultHttpClient.formatQueryString;\n request.enableJsonpCallback = request.enableJsonpCallback || defaultHttpClient.enableJsonpCallback;\n\n // Create the base context for read/write operations, also specifying complete settings.\n const context = {\n recognizeDates: request.recognizeDates,\n callbackParameterName: request.callbackParameterName,\n formatQueryString: request.formatQueryString,\n enableJsonpCallback: request.enableJsonpCallback,\n useJsonLight: request.useJsonLight,\n inferJsonLightFeedAsObject: request.inferJsonLightFeedAsObject\n };\n\n try {\n prepareRequest(request, jsonHandler, context);\n return invokeRequest(request, success, error, jsonHandler, defaultHttpClient, context, returnType, clientTimeout, callerContext);\n } catch (err) {\n error(err);\n }\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport const MAX_DATA_SERVICE_VERSION = '4.0';\nexport const jsonMediaType = 'application/json';\n\nconst CONTENT_TYPE_HEADER_NAME = 'Content-Type';\nconst ODATA_VERSION = 'OData-Version';\nconst ODATA_MAX_VERSION = 'OData-MaxVersion';\n\nconst contentType = str => {\n /// Parses a string into an object with media type and properties.\n /// String with media type to parse.\n /// null if the string is empty; an object with 'mediaType' and a 'properties' dictionary otherwise.\n\n if (!str) {\n return null;\n }\n\n const contentTypeParts = str.split(';');\n const properties = {};\n\n let i;\n let len;\n for (i = 1, len = contentTypeParts.length; i < len; i++) {\n const contentTypeParams = contentTypeParts[i].split('=');\n properties[contentTypeParams[0].trim()] = contentTypeParams[1];\n }\n\n return { mediaType: contentTypeParts[0].trim(), properties };\n};\n\nexport const jsonContentType = contentType(jsonMediaType);\n\nconst contentTypeToString = contentTypeObj => {\n /// Serializes an object with media type and properties dictionary into a string.\n /// Object with media type and properties dictionary to serialize.\n /// String representation of the media type object; undefined if contentType is null or undefined.\n\n if (!contentTypeObj) {\n return undefined;\n }\n\n let result = contentTypeObj.mediaType;\n for (const property in contentTypeObj.properties) {\n if (contentTypeObj.properties.hasOwnProperty(property)) {\n result += ';' + property + '=' + contentTypeObj.properties[property];\n }\n }\n return result;\n};\n\nconst createReadWriteContext = (contentTypeStr, dataServiceVersion, context, handler) => {\n /// Creates an object that is going to be used as the context for the handler's parser and serializer.\n /// Object with media type and properties dictionary.\n /// String indicating the version of the protocol to use.\n /// Operation context.\n /// Handler object that is processing a resquest or response.\n /// Context object.\n\n // First create a clone\n const rwContext = { ...context };\n\n // And then override with provided parameters\n rwContext['contentType'] = contentTypeStr || jsonContentType;\n rwContext['dataServiceVersion'] = dataServiceVersion;\n rwContext['handler'] = handler;\n\n return rwContext;\n};\n\nconst versionRE = /^\\s?(\\d+\\.\\d+);?.*$/;\nconst getDataServiceVersion = headerVersion => {\n /// Gets the value of the OData-Version header from a request or response.\n /// Object representing a request or a response.\n /// Data service version; undefined if the header cannot be found.\n\n if (headerVersion) {\n const matches = versionRE.exec(headerVersion);\n if (matches && matches.length) {\n return matches[1];\n }\n }\n};\n\nconst handlerRead = (handler, response, context) => {\n /// Invokes the parser associated with a handler for reading the payload of a HTTP response.\n /// Handler object that is processing the response.\n /// Parser function that will process the response payload.\n /// HTTP response whose payload is going to be processed.\n /// Object used as the context for processing the response.\n /// True if the handler processed the response payload and the response.data property was set; false otherwise.\n\n if (!response || !response.headers) {\n return false;\n }\n\n const cType = contentType(response.headers[CONTENT_TYPE_HEADER_NAME]);\n const version = getDataServiceVersion(response) || '';\n const body = response.body;\n\n if (!body) {\n return false;\n }\n\n if (jsonMediaType.indexOf(cType.mediaType) >= 0) {\n const readContext = createReadWriteContext(cType, version, context, handler);\n readContext.response = response;\n response.data = typeof body === 'string' ? JSON.parse(body) : body;\n return response.data !== undefined;\n }\n\n return false;\n};\n\nconst maxVersion = (left, right) => {\n /// Compares to version strings and returns the higher one.\n /// Version string in the form \"major.minor.rev\"\n /// Version string in the form \"major.minor.rev\"\n /// The higher version string.\n\n if (left === right) {\n return left;\n }\n\n const leftParts = left.split('.');\n const rightParts = right.split('.');\n\n const len = leftParts.length >= rightParts.length ? leftParts.length : rightParts.length;\n\n for (let i = 0; i < len; i++) {\n const leftVersion = leftParts[i] && parseInt(leftParts[i], 10);\n const rightVersion = rightParts[i] && parseInt(rightParts[i], 10);\n if (leftVersion > rightVersion) {\n return left;\n }\n if (leftVersion < rightVersion) {\n return right;\n }\n }\n};\n\nconst handlerWrite = (handler, request, context) => {\n /// Invokes the serializer associated with a handler for generating the payload of a HTTP request.\n /// Handler object that is processing the request.\n /// Serializer function that will generate the request payload.\n /// HTTP request whose payload is going to be generated.\n /// Object used as the context for serializing the request.\n /// True if the handler serialized the request payload and the request.body property was set; false otherwise.\n if (!request || !request.headers) {\n return false;\n }\n\n const cType = contentType(request.headers[CONTENT_TYPE_HEADER_NAME]);\n const version = getDataServiceVersion(request.headers[ODATA_VERSION]);\n\n if (!cType || jsonMediaType.indexOf(cType.mediaType)) {\n const writeContext = createReadWriteContext(cType, version, context, handler);\n writeContext.request = request;\n request.body = request.data;\n\n if (request.body !== undefined) {\n request.headers[ODATA_VERSION] = version ? maxVersion(version, '4.0') : '4.0';\n request.headers.ContentType = request.headers[CONTENT_TYPE_HEADER_NAME] || contentTypeToString(writeContext.contentType);\n request.headers[ODATA_MAX_VERSION] = request.headers[ODATA_MAX_VERSION] || handler.maxDataServiceVersion;\n return true;\n }\n }\n\n return false;\n};\n\nexport const jsonHandler = {\n accept: jsonMediaType,\n maxDataServiceVersion: MAX_DATA_SERVICE_VERSION,\n read(response, context) {\n return handlerRead(this, response, context);\n },\n\n write(request, context) {\n return handlerWrite(this, request, context);\n }\n};\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { Recommendation, RecommendationCriteria, RecommendedElement } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function recommendationsQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"Recommendations\", \"Recommendation\", \"RecommendationClass\", key);\n }\n \n export function createCreateInput(entity: Recommendation): IDataServiceRequest {\n return recommendationsQuery().create(entity);\n }\n\n export function createRecommendationAsync(context: IContext, entity: Recommendation): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: Recommendation): IDataServiceRequest {\n return recommendationsQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: Recommendation): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: Recommendation): IDataServiceRequest {\n return recommendationsQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: Recommendation): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return recommendationsQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return recommendationsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createGetElementsInput(queryResultSettings: IQueryResultSettings, id: string, recommendationCriteria?: RecommendationCriteria | null): IDataServiceRequest { \n const query = recommendationsQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetElements', true, \n 'RecommendedElementClass'\n , 'true', {bypassCache: 'none', returnEntity: 'RecommendedElement'}, {recommendationCriteria: recommendationCriteria });\n } \n \n export function getElementsAsync(context: IContext, id: string, recommendationCriteria?: RecommendationCriteria | null):AsyncResult {\n const request = createGetElementsInput(context.queryResultSettings, id, recommendationCriteria);\n return executeAction(request, context);\n } \n \n ","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { SalesOrder, SalesOrderSearchCriteria, OrderSearchCriteria, FulfillmentLineSearchCriteria, FulfillmentLine, ReceiptRetrievalCriteria, Receipt, SearchReceiptCriteria, ElectronicAddress, ChannelReferenceLookupCriteria, OrderOriginatorSearchCriteria, OrderOriginator, SalesOrdersLookupCriteria, ShipFulfillmentLine, FulfillmentLineParameter, RejectFulfillmentLine, SalesInvoice, OrderInvoice, InvoiceSearchCriteria, InvoiceDetailsSearchCriteria, SalesLine, InvoicedSalesLinesSearchCriteria, PickAndPackSalesLineParameter, PickingList, FulfillmentLineUserAlerts, CommerceProperty, CheckInForOrderPickupConfirmation, SalesOrderConfirmedShipDateChange, OrderCancellationResult, PackingSlipData } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function salesOrdersQuery(id?: string): DataServiceQuery {\n var key = (id) ? { Id: id } : null;\n return new DataServiceQuery(\"SalesOrders\", \"SalesOrder\", \"SalesOrderClass\", key);\n }\n \n export function createCreateInput(entity: SalesOrder): IDataServiceRequest {\n return salesOrdersQuery().create(entity);\n }\n\n export function createSalesOrderAsync(context: IContext, entity: SalesOrder): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: SalesOrder): IDataServiceRequest {\n return salesOrdersQuery(entity.Id).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: SalesOrder): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: SalesOrder): IDataServiceRequest {\n return salesOrdersQuery(entity.Id).delete();\n }\n\n export function deleteAsync(context: IContext, entity: SalesOrder): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(id: string): IDataServiceRequest {\n return salesOrdersQuery(id).read();\n }\n\n export function readAsync(context: IContext, id: string): AsyncResult {\n const request = createReadAsync(id);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return salesOrdersQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n export function createSearchInput(queryResultSettings: IQueryResultSettings, salesOrderSearchCriteria?: SalesOrderSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('Search', true, \n 'SalesOrderClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {salesOrderSearchCriteria: salesOrderSearchCriteria });\n } \n \n export function searchAsync(context: IContext, salesOrderSearchCriteria?: SalesOrderSearchCriteria | null):AsyncResult {\n const request = createSearchInput(context.queryResultSettings, salesOrderSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createSearchSalesTransactionsByReceiptIdInput(queryResultSettings: IQueryResultSettings, receiptId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchSalesTransactionsByReceiptId', true, \n 'SalesOrderClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {receiptId: receiptId });\n } \n \n export function searchSalesTransactionsByReceiptIdAsync(context: IContext, receiptId?: string | null):AsyncResult {\n const request = createSearchSalesTransactionsByReceiptIdInput(context.queryResultSettings, receiptId);\n return executeAction(request, context);\n } \n \n export function createSearchOrdersInput(queryResultSettings: IQueryResultSettings, orderSearchCriteria?: OrderSearchCriteria | null, nextPageToken?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchOrders', true, \n 'SalesOrderClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {orderSearchCriteria: orderSearchCriteria, nextPageToken: nextPageToken });\n } \n \n export function searchOrdersAsync(context: IContext, orderSearchCriteria?: OrderSearchCriteria | null, nextPageToken?: string | null):AsyncResult {\n const request = createSearchOrdersInput(context.queryResultSettings, orderSearchCriteria, nextPageToken);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentLinesInput(queryResultSettings: IQueryResultSettings, fulfillmentLineSearchCriteria?: FulfillmentLineSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentLines', true, \n 'FulfillmentLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'FulfillmentLine'}, {fulfillmentLineSearchCriteria: fulfillmentLineSearchCriteria });\n } \n \n export function getFulfillmentLinesAsync(context: IContext, fulfillmentLineSearchCriteria?: FulfillmentLineSearchCriteria | null):AsyncResult {\n const request = createGetFulfillmentLinesInput(context.queryResultSettings, fulfillmentLineSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetReceiptsInput(queryResultSettings: IQueryResultSettings, id: string, receiptRetrievalCriteria: ReceiptRetrievalCriteria | null, customerOrderType?: number): IDataServiceRequest { \n const query = salesOrdersQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetReceipts', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {receiptRetrievalCriteria: receiptRetrievalCriteria, customerOrderType: customerOrderType });\n } \n \n export function getReceiptsAsync(context: IContext, id: string, receiptRetrievalCriteria: ReceiptRetrievalCriteria | null, customerOrderType?: number):AsyncResult {\n const request = createGetReceiptsInput(context.queryResultSettings, id, receiptRetrievalCriteria, customerOrderType);\n return executeAction(request, context);\n } \n \n export function createSendReceiptInput(searchCriteria?: SearchReceiptCriteria | null, recipientAddresses?: ElectronicAddress[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('SendReceipt', true, '', '', {bypassCache: 'get', returnEntity: ''}, {searchCriteria: searchCriteria, recipientAddresses: recipientAddresses });\n } \n \n export function sendReceiptAsync(context: IContext, searchCriteria?: SearchReceiptCriteria | null, recipientAddresses?: ElectronicAddress[] | null):AsyncResult {\n const request = createSendReceiptInput(searchCriteria, recipientAddresses);\n return executeAction(request, context);\n } \n \n export function createGetGiftReceiptsInput(queryResultSettings: IQueryResultSettings, id: string, salesLineNumbers: number[], receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetGiftReceipts', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {SalesLineNumbers: salesLineNumbers, receiptRetrievalCriteria: receiptRetrievalCriteria });\n } \n \n export function getGiftReceiptsAsync(context: IContext, id: string, salesLineNumbers: number[], receiptRetrievalCriteria?: ReceiptRetrievalCriteria | null):AsyncResult {\n const request = createGetGiftReceiptsInput(context.queryResultSettings, id, salesLineNumbers, receiptRetrievalCriteria);\n return executeAction(request, context);\n } \n \n export function createGetByReceiptIdInput(queryResultSettings: IQueryResultSettings, receiptId?: string | null, orderStoreNumber?: string | null, orderTerminalId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetByReceiptId', true, \n 'SalesOrderClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {receiptId: receiptId, orderStoreNumber: orderStoreNumber, orderTerminalId: orderTerminalId });\n } \n \n export function getByReceiptIdAsync(context: IContext, receiptId?: string | null, orderStoreNumber?: string | null, orderTerminalId?: string | null):AsyncResult {\n const request = createGetByReceiptIdInput(context.queryResultSettings, receiptId, orderStoreNumber, orderTerminalId);\n return executeAction(request, context);\n } \n \n export function createGetSalesOrderDetailsByTransactionIdInput(transactionId: string | null, searchLocationValue: number): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetSalesOrderDetailsByTransactionId', false, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {transactionId: transactionId, searchLocationValue: searchLocationValue });\n } \n \n export function getSalesOrderDetailsByTransactionIdAsync(context: IContext, transactionId: string | null, searchLocationValue: number):AsyncResult {\n const request = createGetSalesOrderDetailsByTransactionIdInput(transactionId, searchLocationValue);\n return executeAction(request, context);\n } \n \n export function createGetSalesOrderDetailsBySalesIdInput(salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetSalesOrderDetailsBySalesId', false, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {salesId: salesId });\n } \n \n export function getSalesOrderDetailsBySalesIdAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createGetSalesOrderDetailsBySalesIdInput(salesId);\n return executeAction(request, context);\n } \n \n export function createGetOrderByChannelReferenceLookupCriteriaInput(channelReferenceLookupCriteria?: ChannelReferenceLookupCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetOrderByChannelReferenceLookupCriteria', true, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {channelReferenceLookupCriteria: channelReferenceLookupCriteria });\n } \n \n export function getOrderByChannelReferenceLookupCriteriaAsync(context: IContext, channelReferenceLookupCriteria?: ChannelReferenceLookupCriteria | null):AsyncResult {\n const request = createGetOrderByChannelReferenceLookupCriteriaInput(channelReferenceLookupCriteria);\n return executeAction(request, context);\n } \n \n export function createGetSalesOrderDetailsByQuotationIdInput(quotationId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetSalesOrderDetailsByQuotationId', false, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {quotationId: quotationId });\n } \n \n export function getSalesOrderDetailsByQuotationIdAsync(context: IContext, quotationId?: string | null):AsyncResult {\n const request = createGetSalesOrderDetailsByQuotationIdInput(quotationId);\n return executeAction(request, context);\n } \n \n export function createGetOrderOriginatorsInput(queryResultSettings: IQueryResultSettings, orderOriginatorSearchCriteria?: OrderOriginatorSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderOriginators', true, \n 'OrderOriginatorClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrderOriginator'}, {orderOriginatorSearchCriteria: orderOriginatorSearchCriteria });\n } \n \n export function getOrderOriginatorsAsync(context: IContext, orderOriginatorSearchCriteria?: OrderOriginatorSearchCriteria | null):AsyncResult {\n const request = createGetOrderOriginatorsInput(context.queryResultSettings, orderOriginatorSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetSalesOrdersByLookupCriteriaInput(queryResultSettings: IQueryResultSettings, salesOrdersLookupCriteria?: SalesOrdersLookupCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetSalesOrdersByLookupCriteria', true, \n 'SalesOrderClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesOrder'}, {salesOrdersLookupCriteria: salesOrdersLookupCriteria });\n } \n \n export function getSalesOrdersByLookupCriteriaAsync(context: IContext, salesOrdersLookupCriteria?: SalesOrdersLookupCriteria | null):AsyncResult {\n const request = createGetSalesOrdersByLookupCriteriaInput(context.queryResultSettings, salesOrdersLookupCriteria);\n return executeAction(request, context);\n } \n \n export function createShipFulfillmentLinesInput(shipFulfillmentLines?: ShipFulfillmentLine[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('ShipFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {ShipFulfillmentLines: shipFulfillmentLines });\n } \n \n export function shipFulfillmentLinesAsync(context: IContext, shipFulfillmentLines?: ShipFulfillmentLine[] | null):AsyncResult {\n const request = createShipFulfillmentLinesInput(shipFulfillmentLines);\n return executeAction(request, context);\n } \n \n export function createAcceptFulfillmentLinesInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('AcceptFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function acceptFulfillmentLinesAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createAcceptFulfillmentLinesInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createPickFulfillmentLinesInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('PickFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function pickFulfillmentLinesAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createPickFulfillmentLinesInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createPackFulfillmentLinesInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('PackFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function packFulfillmentLinesAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createPackFulfillmentLinesInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createMarkFulfillmentLinesAsPackedInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('MarkFulfillmentLinesAsPacked', true, '', 'false', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function markFulfillmentLinesAsPackedAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createMarkFulfillmentLinesAsPackedInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createMarkAsPickedInput(fulfillmentLineParameter?: FulfillmentLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('MarkAsPicked', true, '', '', {bypassCache: 'get', returnEntity: ''}, {FulfillmentLineParameter: fulfillmentLineParameter });\n } \n \n export function markAsPickedAsync(context: IContext, fulfillmentLineParameter?: FulfillmentLineParameter[] | null):AsyncResult {\n const request = createMarkAsPickedInput(fulfillmentLineParameter);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentPickingListsInput(queryResultSettings: IQueryResultSettings, pickingListFulfillmentLine?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentPickingLists', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {pickingListFulfillmentLine: pickingListFulfillmentLine, hardwareProfileId: hardwareProfileId });\n } \n \n export function getFulfillmentPickingListsAsync(context: IContext, pickingListFulfillmentLine?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFulfillmentPickingListsInput(context.queryResultSettings, pickingListFulfillmentLine, hardwareProfileId);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentPackingSlipsInput(queryResultSettings: IQueryResultSettings, packFulfillmentLines?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentPackingSlips', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {packFulfillmentLines: packFulfillmentLines, hardwareProfileId: hardwareProfileId });\n } \n \n export function getFulfillmentPackingSlipsAsync(context: IContext, packFulfillmentLines?: FulfillmentLineParameter[] | null, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFulfillmentPackingSlipsInput(context.queryResultSettings, packFulfillmentLines, hardwareProfileId);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentPackingSlipsByIdInput(queryResultSettings: IQueryResultSettings, salesId?: string | null, packingSlipId?: string | null, hardwareProfileId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentPackingSlipsById', true, \n 'ReceiptClass'\n , 'true', {bypassCache: 'none', returnEntity: 'Receipt'}, {salesId: salesId, PackingSlipId: packingSlipId, hardwareProfileId: hardwareProfileId });\n } \n \n export function getFulfillmentPackingSlipsByIdAsync(context: IContext, salesId?: string | null, packingSlipId?: string | null, hardwareProfileId?: string | null):AsyncResult {\n const request = createGetFulfillmentPackingSlipsByIdInput(context.queryResultSettings, salesId, packingSlipId, hardwareProfileId);\n return executeAction(request, context);\n } \n \n export function createRejectFulfillmentLinesInput(rejectFulfillmentLines?: RejectFulfillmentLine[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('RejectFulfillmentLines', true, '', '', {bypassCache: 'get', returnEntity: ''}, {RejectFulfillmentLines: rejectFulfillmentLines });\n } \n \n export function rejectFulfillmentLinesAsync(context: IContext, rejectFulfillmentLines?: RejectFulfillmentLine[] | null):AsyncResult {\n const request = createRejectFulfillmentLinesInput(rejectFulfillmentLines);\n return executeAction(request, context);\n } \n \n export function createGetInvoicesBySalesIdInput(queryResultSettings: IQueryResultSettings, salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInvoicesBySalesId', true, \n 'SalesInvoiceClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesInvoice'}, {salesId: salesId });\n } \n \n export function getInvoicesBySalesIdAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createGetInvoicesBySalesIdInput(context.queryResultSettings, salesId);\n return executeAction(request, context);\n } \n \n export function createGetOrderInvoicesInput(queryResultSettings: IQueryResultSettings, customerId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetOrderInvoices', true, \n 'OrderInvoiceClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrderInvoice'}, {customerId: customerId });\n } \n \n export function getOrderInvoicesAsync(context: IContext, customerId?: string | null):AsyncResult {\n const request = createGetOrderInvoicesInput(context.queryResultSettings, customerId);\n return executeAction(request, context);\n } \n \n export function createGetInvoicesInput(queryResultSettings: IQueryResultSettings, invoiceSearchCriteria?: InvoiceSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInvoices', true, \n 'OrderInvoiceClass'\n , 'true', {bypassCache: 'none', returnEntity: 'OrderInvoice'}, {invoiceSearchCriteria: invoiceSearchCriteria });\n } \n \n export function getInvoicesAsync(context: IContext, invoiceSearchCriteria?: InvoiceSearchCriteria | null):AsyncResult {\n const request = createGetInvoicesInput(context.queryResultSettings, invoiceSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetInvoiceDetailsInput(invoiceDetailsSearchCriteria?: InvoiceDetailsSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('GetInvoiceDetails', true, \n 'SalesInvoiceClass'\n , 'false', {bypassCache: 'none', returnEntity: 'SalesInvoice'}, {invoiceDetailsSearchCriteria: invoiceDetailsSearchCriteria });\n } \n \n export function getInvoiceDetailsAsync(context: IContext, invoiceDetailsSearchCriteria?: InvoiceDetailsSearchCriteria | null):AsyncResult {\n const request = createGetInvoiceDetailsInput(invoiceDetailsSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createGetInvoicedSalesLinesBySalesIdsInput(queryResultSettings: IQueryResultSettings, salesIds?: string[] | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetInvoicedSalesLinesBySalesIds', true, \n 'SalesLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesLine'}, {salesIds: salesIds });\n } \n \n export function getInvoicedSalesLinesBySalesIdsAsync(context: IContext, salesIds?: string[] | null):AsyncResult {\n const request = createGetInvoicedSalesLinesBySalesIdsInput(context.queryResultSettings, salesIds);\n return executeAction(request, context);\n } \n \n export function createSearchInvoicedSalesLinesInput(queryResultSettings: IQueryResultSettings, invoicedSalesLinesSearchCriteria?: InvoicedSalesLinesSearchCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('SearchInvoicedSalesLines', true, \n 'SalesLineClass'\n , 'true', {bypassCache: 'none', returnEntity: 'SalesLine'}, {invoicedSalesLinesSearchCriteria: invoicedSalesLinesSearchCriteria });\n } \n \n export function searchInvoicedSalesLinesAsync(context: IContext, invoicedSalesLinesSearchCriteria?: InvoicedSalesLinesSearchCriteria | null):AsyncResult {\n const request = createSearchInvoicedSalesLinesInput(context.queryResultSettings, invoicedSalesLinesSearchCriteria);\n return executeAction(request, context);\n } \n \n export function createCreatePickingListInput(salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('CreatePickingList', true, '', '', {bypassCache: 'get', returnEntity: ''}, {salesId: salesId });\n } \n \n export function createPickingListAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createCreatePickingListInput(salesId);\n return executeAction(request, context);\n } \n \n export function createCreatePickingListForItemsInput(salesId?: string | null, pickAndPackSalesLineParameters?: PickAndPackSalesLineParameter[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('CreatePickingListForItems', true, '', 'false', {bypassCache: 'get', returnEntity: ''}, {salesId: salesId, pickAndPackSalesLineParameters: pickAndPackSalesLineParameters });\n } \n \n export function createPickingListForItemsAsync(context: IContext, salesId?: string | null, pickAndPackSalesLineParameters?: PickAndPackSalesLineParameter[] | null):AsyncResult {\n const request = createCreatePickingListForItemsInput(salesId, pickAndPackSalesLineParameters);\n return executeAction(request, context);\n } \n \n export function createGetPickingListsInput(queryResultSettings: IQueryResultSettings, id: string, ): IDataServiceRequest { \n const query = salesOrdersQuery(id).resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPickingLists', false, \n 'PickingListClass'\n , 'true', {bypassCache: 'none', returnEntity: 'PickingList'}, { });\n } \n \n export function getPickingListsAsync(context: IContext, id: string):AsyncResult {\n const request = createGetPickingListsInput(context.queryResultSettings, id);\n return executeAction(request, context);\n } \n \n export function createCreatePackingSlipInput(salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('CreatePackingSlip', true, '', '', {bypassCache: 'get', returnEntity: ''}, {salesId: salesId });\n } \n \n export function createPackingSlipAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createCreatePackingSlipInput(salesId);\n return executeAction(request, context);\n } \n \n export function createGetFulfillmentLineUserAlertsInput(queryResultSettings: IQueryResultSettings, fulfillmentLineParameter: FulfillmentLineParameter[] | null, fulfillmentOperation: number): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetFulfillmentLineUserAlerts', true, \n 'FulfillmentLineUserAlertsClass'\n , 'true', {bypassCache: 'none', returnEntity: 'FulfillmentLineUserAlerts'}, {FulfillmentLineParameter: fulfillmentLineParameter, FulfillmentOperation: fulfillmentOperation });\n } \n \n export function getFulfillmentLineUserAlertsAsync(context: IContext, fulfillmentLineParameter: FulfillmentLineParameter[] | null, fulfillmentOperation: number):AsyncResult {\n const request = createGetFulfillmentLineUserAlertsInput(context.queryResultSettings, fulfillmentLineParameter, fulfillmentOperation);\n return executeAction(request, context);\n } \n \n export function createCheckInForOrderPickupInput(channelId: number, packingSlipId?: string | null, channelReferenceId?: string | null, extensionProperties?: CommerceProperty[] | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('CheckInForOrderPickup', true, \n 'CheckInForOrderPickupConfirmationClass'\n , 'false', {bypassCache: 'get', returnEntity: 'CheckInForOrderPickupConfirmation'}, {channelId: channelId, PackingSlipId: packingSlipId, channelReferenceId: channelReferenceId, extensionProperties: extensionProperties });\n } \n \n export function checkInForOrderPickupAsync(context: IContext, channelId: number, packingSlipId?: string | null, channelReferenceId?: string | null, extensionProperties?: CommerceProperty[] | null):AsyncResult {\n const request = createCheckInForOrderPickupInput(channelId, packingSlipId, channelReferenceId, extensionProperties);\n return executeAction(request, context);\n } \n \n export function createUpdateConfirmedShipDateInput(confirmedShipDateChange?: SalesOrderConfirmedShipDateChange | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('UpdateConfirmedShipDate', true, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {confirmedShipDateChange: confirmedShipDateChange });\n } \n \n export function updateConfirmedShipDateAsync(context: IContext, confirmedShipDateChange?: SalesOrderConfirmedShipDateChange | null):AsyncResult {\n const request = createUpdateConfirmedShipDateInput(confirmedShipDateChange);\n return executeAction(request, context);\n } \n \n export function createRequestCancellationInput(salesOrdersLookupCriteria?: SalesOrdersLookupCriteria | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('RequestCancellation', true, \n 'OrderCancellationResultClass'\n , 'false', {bypassCache: 'get', returnEntity: 'OrderCancellationResult'}, {salesOrdersLookupCriteria: salesOrdersLookupCriteria });\n } \n \n export function requestCancellationAsync(context: IContext, salesOrdersLookupCriteria?: SalesOrdersLookupCriteria | null):AsyncResult {\n const request = createRequestCancellationInput(salesOrdersLookupCriteria);\n return executeAction(request, context);\n } \n \n export function createConfirmInput(salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery();\n return query.createDataServiceRequestForOperation('Confirm', true, \n 'SalesOrderClass'\n , 'false', {bypassCache: 'get', returnEntity: 'SalesOrder'}, {salesId: salesId });\n } \n \n export function confirmAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createConfirmInput(salesId);\n return executeAction(request, context);\n } \n \n export function createGetPackingSlipsDataInput(queryResultSettings: IQueryResultSettings, salesId?: string | null): IDataServiceRequest { \n const query = salesOrdersQuery().resultSettings(queryResultSettings);\n return query.createDataServiceRequestForOperation('GetPackingSlipsData', false, \n 'PackingSlipDataClass'\n , 'true', {bypassCache: 'none', returnEntity: 'PackingSlipData'}, {salesId: salesId });\n } \n \n export function getPackingSlipsDataAsync(context: IContext, salesId?: string | null):AsyncResult {\n const request = createGetPackingSlipsDataInput(context.queryResultSettings, salesId);\n return executeAction(request, context);\n } \n \n ","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw new $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport type CacheType = 'none' | 'instance' | 'application' | 'request';\n\n/**\n * BypassCache type.\n */\nexport type BypassCache = 'none' | 'get' | 'put' | 'getAndPut';\n\nexport enum ICacheSource {\n RequestCache,\n AppCache\n}\n\nexport interface ICacheKey {\n key: string;\n typeName: string;\n}\n\nexport interface ICacheItem {\n item: T;\n cacheType?: CacheType;\n shouldRefresh?: boolean;\n error?: boolean;\n s?: ICacheSource;\n}\n\n/**\n * Interface exposing methods for caching\n */\nexport interface ICache {\n /**\n * @function {put} - Method to insert an item in the cache\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param cacheItem {ICacheItem} - item that needs to be inserted in the cache\n */\n put(cacheKey: ICacheKey, item: ICacheItem): boolean;\n\n /**\n * @function {get} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {ICacheItem} - cached value against the given cache key\n */\n get(cacheKey: ICacheKey): ICacheItem | undefined;\n\n /**\n * @function {getValue} - Method to get the cached item\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @return {T} - cached value against the given cache key\n */\n getValue(cacheKey: ICacheKey): T | undefined;\n\n /**\n * @function {getAllItems} - Method to get all cached items for a given type\n * @param typeName {typeName} - typeName for which all items need to be fetched\n * @return {ICacheItem} - dictionary of cache items of the given typeName\n */\n getAllItems(typeName: string): { [cacheKey: string]: ICacheItem } | undefined;\n\n /**\n * @param cacheKey {ICacheKey} - object to build the cache key\n * @param toCache {ICache} - cache object to which the item needs to be copied\n * @return {ICacheItem} - cache item that was copied\n */\n copyTo(cacheKey: ICacheKey, toCache: ICache): ICacheItem | undefined;\n\n /**\n * @function {del} - Method to delete an item from the cache\n * @param key {ICacheKey[]} - Array of ICacheGetData items whose values need to be deleted from cache\n * @return {number} - returns true if the cache key is deleted successfully. Does not throw errors.\n */\n del(cacheKey: ICacheKey): boolean;\n\n /**\n * @function {flushAll} - Method to flush all data from the cache\n */\n flushAll(): void;\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-var-requires */\nimport { toJS } from 'mobx';\n\nimport { ApiVersion, EntityIdentifier, SortColumn } from './Entities/CommerceTypes.g';\n\nimport {\n BypassCache,\n CacheType,\n ICallerContext,\n IDataServiceQueryInternal,\n IDataServiceRequest,\n IDictionary,\n IPartialCookieContext\n} from './Interfaces';\nimport {\n modelManagersRetailServerRequestError,\n modelManagersRetailServerRequestFinished,\n modelManagersRetailServerRequestStarted,\n Tracer,\n Utils\n} from './logging';\n\nimport { ProxyError } from './exceptions';\nimport { ErrorParser } from './exceptions/ErrorParser';\nimport {\n convertToString,\n EMPTY,\n format,\n hasElements,\n isEmpty,\n isNullOrWhitespace,\n isObjectNotEmptyOrNull\n} from './extensions/StringExtensions';\n\nimport { IODataRequest, ODataHttpRequest } from './externals/DataJS.New';\nexport const ODATA_HAS_NEXT_PAGE_PROPERTY = '@odata.nextLink';\nexport const GET: string = 'GET';\nexport const POST: string = 'POST';\nexport const PATCH: string = 'PATCH';\nexport const DELETE: string = 'DELETE';\nexport const GET_FROM_RETURNIDENTIFIER: string = '___GET__FROM__RETURNIDENTIIER___';\nexport const ODATA_TOTAL_COUNT_PROPERTY = '@odata.count';\n\nlet serverWorkerNotUpdated = false;\nconst ApiTimeoutInMilliSecond = 10000;\nconst OPERATINGUNITNUMBER_HEADERNAME = 'OUN';\nconst AUTHORIZATION_HEADERNAME = 'Authorization';\nconst ACCEPT_LANGUAGE = 'Accept-Language';\nconst REQUEST_ID = 'RequestId';\nconst APPSESSION_ID = 'AppSessionId';\nconst USERSESSION_ID = 'UserSessionId';\nconst DEFAULT_HEADER: { [headerName: string]: string } = {\n Prefer: 'return=representation'\n};\nconst OBO_REQUEST = 'isOBORequest';\nconst GET_ACCOUNT_SELECTION_COOKIE = 'getAccountSelectionCookie';\nconst CUSTOMER_ACCOUNT_NUMBER = 'CAN';\n\nconst fetchCommerceModels = async () => {\n return import('./Entities/CommerceModels.g');\n};\n\nconst isServiceWorkerSupportedOnClient = () => {\n return typeof navigator !== 'undefined' && 'serviceWorker' in navigator;\n};\n\nconst shouldSkipSerializationFromSW = (initialData: any, resultType: any) => {\n if (process.env.NODE_ENV === 'test' || process.env.DEPLOYMENT_ENV !== 'WEBAPP') {\n return true;\n }\n\n if (!initialData || !initialData.requestContext || !initialData.requestContext.features.enable_service_worker) {\n console.log('service worker turned off, skipping sw serialization');\n return true;\n }\n\n if (typeof resultType !== 'string') {\n return true;\n }\n\n // service worker could be old or pending update version\n if (serverWorkerNotUpdated) {\n return true;\n }\n\n if (isServiceWorkerSupportedOnClient()) {\n return initialData.requestContext.features.disableRetailProxySW || initialData.requestContext.query['skip-rp-sw'];\n }\n\n return false;\n};\n\nconst initServerWorker = async () => {\n if (process.env.CURRENT_ENVIRONMENT !== 'node') {\n if (isServiceWorkerSupportedOnClient()) {\n const serviceWorker = await navigator.serviceWorker.ready;\n return serviceWorker;\n }\n }\n};\n\n/***\n * Parses the odata result returned from server.\n *\n * @param {any} data The result returned from server.\n * @param {any} resultType The entity type to parse the result as.\n */\nexport const parseOdataResult = async (data: any, resultType: any): Promise => {\n let serviceWorker;\n let Models;\n const initialData = typeof window !== 'undefined' && (window as any).___initialData___;\n const skipSerializationFromSW = shouldSkipSerializationFromSW(initialData, resultType);\n\n if (!skipSerializationFromSW) {\n serviceWorker = await initServerWorker();\n } else {\n // If service workder is skipped, load the commerce models object dynamically\n Models = await fetchCommerceModels();\n }\n\n if (!data) {\n return data;\n }\n\n if (!data.value) {\n if (typeof resultType === 'string') {\n if (process.env.CURRENT_ENVIRONMENT === 'node') {\n Models = require('./Entities/CommerceModels.g');\n return resultType ? new Models[resultType](data) : data;\n } else if (skipSerializationFromSW) {\n return resultType && Models[resultType] ? new Models[resultType](data) : data;\n } else {\n if (!resultType) {\n return data;\n }\n\n return getSerializedResponseFromServiceWorker(serviceWorker, resultType, data);\n }\n }\n\n return resultType ? new resultType(data) : data;\n }\n\n let resultSet = data.value;\n\n if (resultType) {\n if (Object.prototype.toString.call(resultSet) === '[object Array]') {\n if (typeof resultType === 'string') {\n // Include commercemodels in the bundle in the context of node only\n if (process.env.CURRENT_ENVIRONMENT === 'node') {\n Models = require('./Entities/CommerceModels.g');\n for (let i = 0; i < resultSet.length; i++) {\n resultSet[i] = new Models[resultType](resultSet[i]);\n }\n } else if (skipSerializationFromSW) {\n for (let i = 0; i < resultSet.length; i++) {\n resultSet[i] = new Models[resultType](resultSet[i]);\n }\n } else {\n resultSet = await getSerializedResponseFromServiceWorker(serviceWorker, resultType, resultSet);\n }\n } else {\n for (let i = 0; i < resultSet.length; i++) {\n resultSet[i] = new resultType(resultSet[i]);\n }\n }\n }\n }\n\n // hasNextPage only apply to array which is typeof 'object'\n typeof resultSet === 'object' ? (resultSet.hasNextPage = !(data[ODATA_HAS_NEXT_PAGE_PROPERTY] === undefined)) : null;\n return resultSet;\n};\n\n/**\n * @param serviceWorker serviceWorker instance\n * @param resultType CommerceModels type\n * @param data retail serve response to be serialized\n * @returns serialized CommerceModels object\n */\nconst getSerializedResponseFromServiceWorker = (serviceWorker: any, resultType: any, data: any | any[]) => {\n // Import commerce modesl dynamically and serialize, in case if the serialization response is not received\n // from service worker in time\n let timerId;\n const dynamicImportPromise = new Promise((resolve, reject) => {\n timerId = setTimeout(async () => {\n const Models = await fetchCommerceModels();\n serverWorkerNotUpdated = true;\n if (Array.isArray(data)) {\n for (let i = 0; i < data.length; i++) {\n data[i] = resultType && Models[resultType] ? new Models[resultType](data[i]) : data[i];\n }\n\n resolve(data);\n } else {\n resolve(resultType && Models[resultType] ? new Models[resultType](data) : data);\n }\n }, 2000);\n });\n\n const serializePromise = new Promise((resolve, reject) => {\n const messageChannel = new MessageChannel();\n\n messageChannel.port1.onmessage = e => {\n resolve(e.data.serializedData);\n clearTimeout(timerId);\n };\n\n serviceWorker.active.postMessage(\n {\n type: 'SERIALIZE_DATA',\n resultType,\n payload: data\n },\n [messageChannel.port2]\n );\n });\n\n return Promise.race([serializePromise, dynamicImportPromise]);\n};\n\n/**\n * Represents a data service request object.\n */\nexport class DataServiceRequest implements IDataServiceRequest {\n private get batchRequestUri(): string {\n return this._callerContext.requestContext.apiSettings.baseUrl + '/$batch';\n }\n\n /**\n * Gets Locale for the current data service factory instance.\n */\n public get locale(): string {\n return this._callerContext.requestContext.locale;\n }\n\n /**\n * Sets Locale for the current data service factory instance.\n */\n public set locale(locale: string) {\n this._callerContext.requestContext.locale = locale;\n }\n\n /**\n * get cacheKeyFromInput.\n */\n public get cacheKeyFromInput(): string {\n return this._cacheKeyFromInput;\n }\n\n /**\n * get cacheKeyIdentifierFromReturnType.\n */\n public get cacheKeyIdentifierFromReturnType(): string {\n return this._cacheKeyIdentifierFromReturnType;\n }\n\n /**\n * get cacheObjectType.\n */\n public get cacheObjectType(): string {\n return this._cacheObjectType;\n }\n\n /**\n * get cacheKeyFromReturnType.\n */\n public get cacheKeyFromReturnType(): string[] {\n return this._cacheKeyFromReturnType;\n }\n\n /**\n * get totalCount.\n */\n public get totalCount(): number {\n return this._totalCount;\n }\n\n /**\n * get query.\n */\n public get query(): IDataServiceQueryInternal {\n return this._query;\n }\n\n /**\n * Gets query parameters for data service request.\n */\n public queryParams(): T {\n return this._query.data.parameters as T;\n }\n\n /**\n * Gets Odata properties\n */\n public get otherOdataProperties(): IDictionary {\n return this._otherOdata;\n }\n\n private _actionId: string;\n private _cacheObjectType: string;\n private _cacheKeyFromInput: string;\n private _cacheKeyFromReturnType: string[] = [];\n private _cacheKeyIdentifierFromReturnType: string;\n\n private _query: IDataServiceQueryInternal;\n private _callerContext: ICallerContext;\n private _requestUri: string;\n private _method: string;\n private _id: number;\n private _hasOperationName: boolean;\n private _totalCount: number;\n private _otherOdata: IDictionary;\n private _clientTimeoutInMs?: number;\n\n private static buildBatchRequest(batchRequestUri: string, requests: DataServiceRequest[]): IODataRequest {\n let requestId = 1;\n\n // Creates an empty batch request.\n const odataBatchRequest: IODataRequest = {\n requestUri: batchRequestUri,\n method: POST,\n data: { __batchRequests: [] }\n };\n\n const batchRequests = odataBatchRequest.data.__batchRequests;\n let changeRequests: IODataRequest[];\n\n requests.forEach(request => {\n request._id = requestId++;\n\n const odataRequest: IODataRequest = {\n requestUri: request._requestUri,\n method: request._method,\n data: DataServiceRequest.toJson(request._query.data),\n headers: { 'Content-ID': request.id(), Prefer: 'return=representation' }\n };\n\n if (request._method === GET) {\n batchRequests.push(odataRequest);\n } else {\n if (!changeRequests) {\n changeRequests = [];\n batchRequests.push({ __changeRequests: changeRequests });\n }\n changeRequests.push(odataRequest);\n }\n });\n\n return odataBatchRequest;\n }\n\n /**\n * Parse the batch responses.\n * @param {any[]} batchResponses The server responses.\n * @param {any[]} requests The request objects.\n * @param {any[]} responses The responses passed down to the success callback.\n */\n private static parseBatchResponses = async (\n batchResponses: any[],\n requests: any[],\n responses: any[],\n callerContext?: ICallerContext\n ): Promise => {\n let errors: ProxyError[] = new Array();\n\n batchResponses.map(async response => {\n if (response.__changeResponses) {\n errors = errors.concat(\n await DataServiceRequest.parseBatchResponses(response.__changeResponses, requests, responses, callerContext)\n );\n } else {\n if (!response.message) {\n const requestId = parseInt(response.headers['Content-ID'], 10);\n\n responses[requestId] = await parseOdataResult(response.data, requests[requestId - 1]._query.returnType);\n } else {\n errors = errors.concat(ErrorParser.parseErrorMessage(response, callerContext));\n }\n }\n });\n\n return errors;\n };\n\n /**\n * TODO - check if below function can be replaced with JSON.stringify.\n * Helper function to convert data into a stringified JSON object.\n * @param {any} parent The container of the element.\n * @param {any} data The data to be converted to a stringified JSON object.\n * @param {boolean} [modifyDataInPlace] Whether the object passed should be modified in place. If not, a clone is created instead.\n */\n private static toJson(data: any, parent?: any, modifyDataInPlace?: boolean): string {\n let clone = data;\n\n if (data === null) {\n return null;\n } else if (typeof data !== 'object') {\n // if data type is primitive type, no need to process further\n // as calling jquery extend or calling foreach prop on string type\n // will transform string to array of chars which will be incorrect result.\n return data;\n }\n\n if (data && data.parameters) {\n data = data.parameters;\n parent = null;\n } else {\n parent = data;\n }\n\n // clones the data object instead of changing it, if no modifications in place\n if (!modifyDataInPlace) {\n clone = { ...data };\n }\n\n for (const prop in clone) {\n if (clone.hasOwnProperty(prop)) {\n const property = clone[prop];\n\n // only non-undefined properties are added to the object\n if (typeof property !== 'undefined') {\n let value;\n if (property === null) {\n value = null;\n } else if (typeof property === 'object') {\n if (property instanceof Array) {\n value = DataServiceRequest.arrayToJson(property, parent, modifyDataInPlace);\n } else if (property instanceof Date) {\n value = DataServiceRequest.toDateTimeOffset(property);\n } else {\n // recursively stringifies objects\n value = DataServiceRequest.toJson(property, clone, modifyDataInPlace);\n }\n } else {\n value = property;\n }\n\n clone[prop] = value;\n }\n }\n }\n\n return clone;\n }\n\n /**\n * Helper function to convert array into a stringified JSON object following OData specifications.\n * @param {Array} array The data to be converted to a stringified JSON object.\n * @param {any} parent The container of the array.\n * @param {boolean} [modifyDataInPlace] Whether the object passed should be modified in place. If not, a clone is created instead.\n */\n private static arrayToJson(array: any[], parent: any, modifyDataInPlace?: boolean): any {\n const data = [];\n for (let i = 0; i < array.length; i++) {\n data[i] = DataServiceRequest.toJson(array[i], array, modifyDataInPlace);\n }\n\n // if array is not a top level data on an action\n return data;\n }\n\n /**\n * Add offset fields to Date object for serialization purposes.\n * @param {Date} dateTime The date.\n * @return {Date} The date with __edmType and __offset fields injected.\n */\n private static toDateTimeOffset(dateTime: Date): Date {\n if (!(dateTime as any).__edmType || !(dateTime as any).__offset) {\n const pad: (val: number) => string = (val: number) => (val < 10 ? '0' + val : val.toString());\n const sign: string = dateTime.getTimezoneOffset() > 0 ? '-' : '+';\n const offset: number = Math.abs(dateTime.getTimezoneOffset());\n const hours: string = pad(Math.floor(offset / 60));\n const minutes: string = pad(offset % 60);\n\n (dateTime as any).__edmType = 'Edm.DateTimeOffset';\n (dateTime as any).__offset = sign + hours + ':' + minutes;\n }\n\n return dateTime;\n }\n\n /**\n * Formats entity key(s) in request Uri.\n * @param {any} key The key dictionary.\n * @return {string} The formated string of the key(s).\n */\n private static formatKey(key: any): string {\n let result: string = EMPTY;\n\n if (key) {\n const formattedKey = [];\n let propertyName: string = EMPTY;\n\n for (const property in key) {\n if (key.hasOwnProperty(property)) {\n propertyName = property;\n if (typeof key[propertyName] === 'string') {\n formattedKey.push(propertyName + `='${key[propertyName]}'`);\n } else {\n formattedKey.push(propertyName + '=' + key[propertyName]);\n }\n }\n }\n\n if (formattedKey.length === 1) {\n if (typeof key[propertyName] === 'string') {\n result = `'${key[propertyName]}'`;\n } else {\n result = key[propertyName];\n }\n } else {\n result = formattedKey.join();\n }\n }\n\n return result;\n }\n\n /**\n * Formats function parameters in request Uri.\n * @param {any} parameters The parameter dictionary.\n * @return {string} The formated and encoded string of the parameters.\n */\n private static formatFunctionParameter(parameters: any): string {\n let result: string = EMPTY;\n\n if (parameters) {\n for (const parameter in parameters) {\n if (parameters.hasOwnProperty(parameter)) {\n const paramValue = parameters[parameter];\n\n if (!isEmpty(result)) {\n result += ',';\n }\n\n if (paramValue === undefined) {\n // handles undefined value\n continue;\n } else if (typeof paramValue === 'string') {\n // handles string type value\n result += parameter + `='${encodeURIComponent(paramValue)}'`;\n } else {\n // handles null and other types value\n result += parameter + '=' + encodeURIComponent(paramValue);\n }\n }\n }\n }\n\n return result;\n }\n\n // TODO - use node url api for url parsing\n private static addParameter(requestUri: string, key: string, value: any): string {\n if (value) {\n let parameterSeparator = '?';\n\n if (requestUri.indexOf(parameterSeparator) > 0) {\n parameterSeparator = '&';\n }\n\n return requestUri + parameterSeparator + key + '=' + value;\n } else {\n return requestUri;\n }\n }\n\n private static getActionIdFromInput(query: IDataServiceQueryInternal) {\n return `@msdyn365-commerce/retail-proxy/${query.entitySet}/${query.action}`;\n }\n\n private static getCacheObjectValueFromReturnType(returnType: any): string {\n // return type can be actual class itself like CategoryClass instead of string 'CategoryClass'\n const cacheObjectTypeValue = typeof returnType === 'function' ? returnType.name : returnType;\n return cacheObjectTypeValue.replace('Class', '');\n }\n\n private static buildCacheFromInput(query: IDataServiceQueryInternal, cacheKeyIdentifierFromReturnType: string): string {\n // TODO if return type have distinct primary key (and not a collection), cache key for action will be computed primary key\n\n let cacheKey = {};\n // if query have key like { RecordId: 56873008 }\n query.key && (cacheKey = { ...query.key });\n // parameters are input to function like query.createDataServiceRequestForOperation('GetCategories', true, CategoryClass, 'true', { channelId })\n // => {channelId} is parameters.\n query.data && query.data.parameters && (cacheKey = { ...cacheKey, ...(query.data.parameters as {}) });\n query.resultSettings &&\n (cacheKey = {\n ...cacheKey,\n ...query.resultSettings.Paging,\n ...query.resultSettings.Sorting\n });\n query.filterSettings && (cacheKey['filter'] = query.filterSettings);\n isObjectNotEmptyOrNull(query.tokens) && (cacheKey['token'] = query.tokens);\n // TODO - add OUN in cache key\n const cacheKeyValue =\n convertToString(cacheKey) ||\n (cacheKeyIdentifierFromReturnType ? GET_FROM_RETURNIDENTIFIER : `${query.entitySet}|${query.entityType}|NOKEY`);\n Tracer.Information(`{CacheKey - CacheValue} : ${cacheKey} - ${cacheKeyValue}`);\n return cacheKeyValue;\n }\n\n private static getDataCacheType(query: IDataServiceQueryInternal): CacheType {\n // cache all result in request cacheisObjectNotEmptyOrNull\n //\n // Follow following rule for app cache\n // -------------------------------------------------------------------------------------\n // scenario app cache\n // -------------------------------------------------------------------------------------\n // 1. if returnType is - true\n // a. Category\n // b. Product\n // c. OrgUnit\n // d. ProductCatalog\n // e. Warehouse\n if (query.entitySet === 'Carts' && query.action === 'GetMaxLoyaltyPointsToRedeemForTransactionBalance') {\n return 'none';\n }\n\n return query.options.bypassCache === 'get' || query.options.bypassCache === 'getAndPut' ? 'none' : 'request';\n }\n\n constructor(query: IDataServiceQueryInternal) {\n Tracer.Information('DataServiceRequest.constructor()');\n this._query = toJS(query, { recurseEverything: true });\n this._hasOperationName = false;\n\n switch (query.action) {\n case 'Read':\n case 'ReadAll':\n this._method = GET;\n break;\n\n case 'Create':\n this._method = POST;\n break;\n\n case 'Update':\n this._method = PATCH;\n break;\n\n case 'Delete':\n this._method = DELETE;\n break;\n\n default:\n if (query.isAction) {\n // Sets the HTTP method to be POST for actions\n this._method = POST;\n } else {\n // Sets the HTTP method to be GET for functions\n this._method = GET;\n }\n\n this._hasOperationName = true;\n }\n\n this._actionId = DataServiceRequest.getActionIdFromInput(query);\n\n this._cacheObjectType = DataServiceRequest.getCacheObjectValueFromReturnType(query.options.returnEntity);\n // TODO - handle Key when it is array like SHIFT case\n const entityIdentifier = this._cacheObjectType === 'SimpleProduct' ? 'Product' : this._cacheObjectType;\n this._cacheKeyIdentifierFromReturnType = EntityIdentifier[entityIdentifier] && EntityIdentifier[entityIdentifier].Key;\n\n this._cacheKeyFromInput = DataServiceRequest.buildCacheFromInput(this._query, this._cacheKeyIdentifierFromReturnType);\n }\n\n /**\n * Gets the Request Identifier.\n * Auto-generated unique identifier if executed in batch. Used to fetch the response from batch result array.\n */\n public id(): number {\n return this._id;\n }\n\n public getActionId = () => this._actionId;\n\n public getCacheObjectType = () => this._cacheObjectType;\n\n public getCacheKey = () => this._cacheKeyFromInput;\n\n public dataCacheType = () => DataServiceRequest.getDataCacheType(this._query);\n\n public shouldCacheOutput = () => true;\n\n public overrideCacheType = (bypassCache: BypassCache) => {\n bypassCache && (this._query.options.bypassCache = bypassCache);\n };\n\n public setClientTimeoutInMs = (timeout: number) => {\n this._clientTimeoutInMs = timeout;\n };\n\n /**\n * Executes the request.\n * @param {any} callerContext The caller context.\n * @return {IAsyncResult} The async result.\n */\n public execute(callerContext: ICallerContext): Promise {\n if (\n !callerContext.requestContext ||\n !callerContext.requestContext.apiSettings ||\n !callerContext.requestContext.apiSettings.oun ||\n !callerContext.requestContext.apiSettings.baseUrl\n ) {\n throw new Error(`CallerContext missing required request parameters - [${JSON.stringify(callerContext.requestContext)}]`);\n }\n\n if (!callerContext.requestContext.locale) {\n throw new Error(`CallerContext missing locale - [${JSON.stringify(callerContext.requestContext)}]`);\n }\n\n this._callerContext = callerContext;\n this._requestUri = this.getRequestUri();\n let result: Promise;\n const headers: { [headerName: string]: string } = this.buildQueryHeader();\n\n if (\n !this._query.isReturnTypeACollection ||\n (this._query.resultSettings &&\n this._query.resultSettings.Paging &&\n this._query.resultSettings.Paging.Top &&\n this._query.resultSettings.Paging.Top >= 0)\n ) {\n result = this.loadPage(headers);\n } else {\n result = this.getAllPages(headers, 0);\n }\n\n return result;\n }\n\n // Need to build batch handler ----------- PENDING\n /**\n * Executes the batch requests.\n * @param {DataServiceRequest[]} requests The collection of requests to execute.\n * @param {any} [callerContext] The caller context.\n * @return {IAsyncResult} The async result. Responses at index I correlates to request with identifier I.\n */\n public executeBatch(requests: DataServiceRequest[], callerContext?: ICallerContext): Promise {\n if (\n !callerContext.requestContext ||\n !callerContext.requestContext.apiSettings ||\n !callerContext.requestContext.apiSettings.oun ||\n !callerContext.requestContext.apiSettings.baseUrl\n ) {\n throw new Error(`CallerContext missing required request parameters - [${JSON.stringify(callerContext.requestContext)}]`);\n }\n\n if (!callerContext.requestContext.locale) {\n throw new Error(`CallerContext missing locale - [${JSON.stringify(callerContext.requestContext)}]`);\n }\n\n this._callerContext = callerContext;\n this._requestUri = this.getRequestUri();\n\n return new Promise((resolve, reject) => {\n ODataHttpRequest(\n DataServiceRequest.buildBatchRequest(this.batchRequestUri, requests),\n (data: any) => {\n const responses: any[] = new Array();\n DataServiceRequest.parseBatchResponses(data.__batchResponses, requests, responses, this._callerContext).then(\n (errors: ProxyError[]) => {\n if (errors.length === 0) {\n Tracer.Information(this.batchRequestUri + ' success');\n resolve(responses);\n } else {\n Tracer.Errors(errors, this.batchRequestUri + ' failed.');\n reject(errors);\n }\n }\n );\n },\n (error: any) => {\n Tracer.Error(this.batchRequestUri + ' failed');\n reject(ErrorParser.parseErrorMessage(error, this._callerContext));\n },\n this._query.returnType,\n this._clientTimeoutInMs,\n callerContext\n );\n });\n }\n\n /**\n * Gets the Request Uri.\n */\n private getRequestUri(): string {\n let requestUri: string = this._callerContext.requestContext.apiSettings.baseUrl + 'Commerce';\n if (this._query.entitySet) {\n requestUri = `${requestUri}/${this._query.entitySet}`;\n\n if (this._query.key) {\n requestUri = `${requestUri}(${DataServiceRequest.formatKey(this._query.key)})`;\n } else if (this._query.entitySet === 'Customers' && this._query.key !== null && this._query.key !== undefined) {\n requestUri = `${requestUri}('')`;\n }\n }\n\n // Appends the action (POST) or function (GET) name to the Uri\n if (this._hasOperationName) {\n requestUri += '/' + this._query.action;\n\n // Construct OData function Url with parameters. [e.g. Func(), Func(param1='',param2='')]\n if (!this._query.isAction && this._query.data && this._query.data.parameters) {\n requestUri += '(' + DataServiceRequest.formatFunctionParameter(this._query.data.parameters) + ')';\n }\n }\n\n if (this._query.isReturnTypeACollection) {\n requestUri = DataServiceRequest.addParameter(\n requestUri,\n '$top',\n this._query.resultSettings && this._query.resultSettings.Paging\n ? this._query.resultSettings.Paging.Top\n : ApiTimeoutInMilliSecond\n ); // Config.defaultPageSize);\n requestUri = DataServiceRequest.addParameter(\n requestUri,\n '$skip',\n this._query.resultSettings && this._query.resultSettings.Paging ? this._query.resultSettings.Paging.Skip : 0\n );\n requestUri = DataServiceRequest.addParameter(requestUri, '$inlinecount', this._query.inlineCount ? 'allpages' : null);\n\n if (this._query.resultSettings.count) {\n requestUri = DataServiceRequest.addParameter(requestUri, '$count', 'true');\n }\n\n requestUri = DataServiceRequest.addParameter(\n requestUri,\n '$filter',\n this._query.filterSettings ? this._query.filterSettings : 0\n );\n\n if (this._query.resultSettings && this._query.resultSettings.Sorting && this._query.resultSettings.Sorting.Columns) {\n const orderByColumns = [];\n this._query.resultSettings.Sorting.Columns.forEach((column: SortColumn) => {\n if (!isNullOrWhitespace(column.ColumnName || EMPTY)) {\n orderByColumns.push(format('{0}%20{1}', column.ColumnName, column.IsDescending ? 'desc' : 'asc'));\n }\n });\n if (orderByColumns.length > 0) {\n requestUri = DataServiceRequest.addParameter(requestUri, '$orderby', orderByColumns.join(','));\n }\n }\n }\n\n if (this._query.expands && hasElements(this._query.expands)) {\n requestUri = DataServiceRequest.addParameter(requestUri, '$expand', this._query.expands.join());\n }\n\n if (!isNullOrWhitespace(ApiVersion)) {\n requestUri = DataServiceRequest.addParameter(requestUri, 'api-version', ApiVersion);\n }\n\n return requestUri;\n }\n\n /**\n * Executes paginated requests for all entities.\n * @param {AsyncResult{T}} asyncResult The async result.\n * @param {{ [headerName: string]: string }} headerName the headers for the request.\n * @param {number} skip The offset.\n * @param {Array} The array result.\n */\n private getAllPages(headers: { [headerName: string]: string }, skip: number, results?: T[]): Promise {\n skip = skip || 0;\n const top = 1000; // Config.defaultPageSize;\n this._query.resultSettings = this._query.resultSettings || {};\n this._query.resultSettings.Paging = this._query.resultSettings.Paging || {};\n this._query.resultSettings.Paging.Top = top;\n results = results || [];\n\n return this.loadPage(headers, skip)\n .then((loadPageResults: T) => {\n if (loadPageResults) {\n if (typeof (loadPageResults as any).length === 'number') {\n results = results.concat(loadPageResults);\n\n if ((loadPageResults as any).length < top) {\n // This page contains less items than top\n if ((loadPageResults as any).hasNextPage) {\n // This means the pagesize defined on server side is smaller than the top\n skip += (loadPageResults as any).length;\n return this.getAllPages(headers, skip, results); // Try to fetch the next page\n } else {\n // No more pages need to fetch\n return Promise.resolve((results as any) as T);\n }\n } else {\n // This page contains exact amount of item as the top, should not contain more\n skip += top;\n return this.getAllPages(headers, skip, results); // Try to fetch the next page\n }\n } else {\n // The pageResult is a single item\n results.push((loadPageResults as unknown) as T);\n return Promise.resolve((results as unknown) as T);\n }\n }\n })\n .catch(error => {\n return Promise.reject(error);\n });\n }\n\n /**\n * Builds the header to be sent as part of the request.\n * @returns {{ [headerName: string]: string }} a key value pair collection of header names and header values.\n */\n private buildQueryHeader(): { [headerName: string]: string } {\n const headers: { [headerName: string]: string } = {};\n headers['from-keystone'] = 'true';\n\n // copy default values from default header\n for (const headerName in DEFAULT_HEADER) {\n if (DEFAULT_HEADER.hasOwnProperty(headerName)) {\n headers[headerName] = DEFAULT_HEADER[headerName];\n }\n }\n\n // Copy operating unit number if present for C2 (if an operation is done by a customer or by anonymous user) scenarios.\n if (!isNullOrWhitespace(this._callerContext.requestContext.apiSettings.oun)) {\n headers[OPERATINGUNITNUMBER_HEADERNAME] = this._callerContext.requestContext.apiSettings.oun;\n }\n\n // Add accept-language header to send user preferred locale to server.\n headers[ACCEPT_LANGUAGE] = this._callerContext.requestContext.locale;\n\n // Add custom AppInsights headers\n headers[REQUEST_ID] = this._callerContext.requestContext.operationId;\n\n // OBO request\n const { user, cookies } = this._callerContext.requestContext;\n if (user.hasOwnProperty(OBO_REQUEST)) {\n const isOBORequest = user[OBO_REQUEST];\n if (cookies.hasOwnProperty(GET_ACCOUNT_SELECTION_COOKIE)) {\n const accountSelectionCookie = cookies[GET_ACCOUNT_SELECTION_COOKIE];\n const accountSelectionCustomerId = accountSelectionCookie();\n if (!isNullOrWhitespace(accountSelectionCustomerId) && isOBORequest) {\n const accountSelectionCustomerIdParts: string[] = accountSelectionCustomerId.split(':');\n headers[CUSTOMER_ACCOUNT_NUMBER] = accountSelectionCustomerIdParts[1];\n } else if (isOBORequest) {\n headers[CUSTOMER_ACCOUNT_NUMBER] = '';\n }\n }\n }\n\n // add any tokens as part of the header\n for (const tokenName in this._query.tokens) {\n if (this._query.tokens.hasOwnProperty(tokenName)) {\n const tokenValue: string = this._query.tokens[tokenName];\n\n if (!isNullOrWhitespace(tokenValue)) {\n headers[tokenName] = tokenValue;\n }\n }\n }\n\n // Now check whether authentication token is present or not, if present it will be added into Authorization header.\n if (\n this._callerContext &&\n this._callerContext.requestContext.user &&\n !isNullOrWhitespace(this._callerContext.requestContext.user.token)\n ) {\n headers[AUTHORIZATION_HEADERNAME] = `id_token ${this._callerContext.requestContext.user.token}`;\n }\n\n // Check if an Bearer access token is being provided. If present it will be added into Authorization header\n if (\n this._callerContext &&\n this._callerContext.requestContext &&\n !isNullOrWhitespace(this._callerContext.requestContext.accessToken)\n ) {\n headers[AUTHORIZATION_HEADERNAME] = `Bearer ${this._callerContext.requestContext.accessToken}`;\n }\n\n // Add AppSessionId and UserSessionId to request header\n if (this._callerContext.requestContext[`cookies`]) {\n const cookieData: IPartialCookieContext = this._callerContext.requestContext[`cookies`];\n const appSessionCookie = cookieData.get('ai_session');\n const userSessionCookie = cookieData.get('ai_user');\n\n if (appSessionCookie && appSessionCookie.status === 'FOUND') {\n const appSessionId = appSessionCookie.value?.split('|')[0];\n headers[APPSESSION_ID] = appSessionId;\n }\n if (userSessionCookie && userSessionCookie.status === 'FOUND') {\n const userSessionId = userSessionCookie.value?.split('|')[0];\n headers[USERSESSION_ID] = userSessionId;\n }\n }\n\n return headers;\n }\n\n /**\n * Executes request for one page.\n * @param {AsyncResult} The async result.\n * @param {{ [headerName: string]: string }} headerName the headers for the request.\n */\n private loadPage(headers: { [headerName: string]: string }, skip?: number): Promise {\n if (skip) {\n this._query.resultSettings = this._query.resultSettings || {};\n this._query.resultSettings.Paging = this._query.resultSettings.Paging || {};\n this._query.resultSettings.Paging.Skip = skip;\n }\n\n const requestId = Utils.generateGuid();\n modelManagersRetailServerRequestStarted(requestId, this._requestUri);\n\n return new Promise((resolve, reject) => {\n // This is the pipe for all OData API calls.\n ODataHttpRequest(\n {\n requestUri: this.getRequestUri(),\n method: this._method,\n data: DataServiceRequest.toJson(this._query.data),\n headers\n },\n (data: any) => {\n modelManagersRetailServerRequestFinished(requestId, this._requestUri);\n parseOdataResult(data, this._query.returnType).then(resultSet => {\n if (data) {\n if (data[ODATA_TOTAL_COUNT_PROPERTY]) {\n this._totalCount = data[ODATA_TOTAL_COUNT_PROPERTY];\n }\n const otherOdata = DataServiceRequest.setMetadata(data);\n if (otherOdata) {\n this._otherOdata = otherOdata;\n }\n }\n\n if (this._cacheKeyIdentifierFromReturnType) {\n if (Object.prototype.toString.call(resultSet) === '[object Array]') {\n this._cacheKeyFromReturnType.concat(\n resultSet.map(result => result[this._cacheKeyIdentifierFromReturnType]).filter(Boolean)\n );\n } else if (typeof resultSet === 'object') {\n this._cacheKeyFromReturnType.push(resultSet[this._cacheKeyIdentifierFromReturnType]);\n }\n }\n\n resolve(resultSet);\n });\n },\n (error: any) => {\n modelManagersRetailServerRequestError(requestId, this._requestUri, error.message);\n reject(ErrorParser.parseErrorMessage(error, this._callerContext));\n },\n this._query.returnType,\n this._clientTimeoutInMs,\n this._callerContext\n );\n });\n }\n\n /**\n * Sets all the Odata propeties from retail api on DataServiceRequest\n * @param data retail api call data\n */\n private static setMetadata(data: any): IDictionary | undefined {\n // Sets all the Odata properties on DataServiceRequest\n const odataList = Object.keys(data).filter(key => {\n if (key !== ODATA_TOTAL_COUNT_PROPERTY) {\n return key.indexOf('@odata') === 0;\n }\n });\n\n if (odataList.length > 0) {\n const odata = odataList.reduce((newData, key) => {\n const newKey = key.replace('@odata.', '');\n newData[newKey] = data[key];\n return newData;\n }, {});\n\n return odata;\n }\n return undefined;\n }\n}\n","\n // \n\n import { AsyncResult } from '../async-result';\n import { DataServiceQuery } from '../DataServiceQuery';\n import { ScanResult } from '../Entities/CommerceTypes.g';\n import { IContext, IDataServiceRequest, IQueryResultSettings, NullResult } from '../Interfaces';\n import { executeAction } from '../retail-action';\n\n \n \n function scanResultsQuery(scannedText?: string): DataServiceQuery {\n var key = (scannedText) ? { ScannedText: scannedText } : null;\n return new DataServiceQuery(\"ScanResults\", \"ScanResult\", \"ScanResultClass\", key);\n }\n \n export function createCreateInput(entity: ScanResult): IDataServiceRequest {\n return scanResultsQuery().create(entity);\n }\n\n export function createScanResultAsync(context: IContext, entity: ScanResult): AsyncResult {\n const request = createCreateInput(entity);\n return executeAction(request, context);\n }\n\n export function createUpdateInput(entity: ScanResult): IDataServiceRequest {\n return scanResultsQuery(entity.ScannedText).update(entity);\n }\n\n export function updateAsync(context: IContext, entity: ScanResult): AsyncResult {\n const request = createUpdateInput(entity);\n return executeAction(request, context);\n }\n\n export function createDeleteAsync(entity: ScanResult): IDataServiceRequest {\n return scanResultsQuery(entity.ScannedText).delete();\n }\n\n export function deleteAsync(context: IContext, entity: ScanResult): AsyncResult {\n const request = createDeleteAsync(entity);\n return executeAction(request, context);\n }\n\n export function createReadAsync(scannedText: string): IDataServiceRequest {\n return scanResultsQuery(scannedText).read();\n }\n\n export function readAsync(context: IContext, scannedText: string): AsyncResult {\n const request = createReadAsync(scannedText);\n return executeAction(request, context);\n }\n\n export function createReadAllAsync(queryResultSettings: IQueryResultSettings): IDataServiceRequest {\n return scanResultsQuery().resultSettings(queryResultSettings).read();\n }\n\n export function readAllAsync(context: IContext): AsyncResult {\n const request = createReadAllAsync(context.queryResultSettings);\n return executeAction(request, context);\n }\n \n "],"names":["msdyn365Commerce","storeQuery","DataServiceQuery","createGetDeliveryOptionsInput","queryResultSettings","resultSettings","createDataServiceRequestForOperation","bypassCache","returnEntity","getDeliveryOptionsAsync","context","request","executeAction","createRoundAmountByTenderTypeInput","amount","tenderTypeId","roundAmountByTenderTypeAsync","createGetAffiliationsByNameInput","affiliationNames","getAffiliationsByNameAsync","createVoidSuspendedTransactionsInput","suspendedCartIds","shiftId","shiftTerminalId","reasonCodeLines","voidSuspendedTransactionsAsync","createGetAvailablePromotionsInput","searchCriteria","getAvailablePromotionsAsync","createGetMerchantPropertiesByServiceAccountIdInput","serviceAccountIds","getMerchantPropertiesByServiceAccountIdAsync","createGetStoreSafesInput","getStoreSafesAsync","createGetShiftReconciliationLinesInput","shiftReconciliationLineRetrievalCriteria","getShiftReconciliationLinesAsync","createReconcileLinesInput","shiftReconciliationLines","description","Description","reconcileLinesAsync","createUndoReconciliationInput","undoReconciliationAsync","createGetReceiptMasksInput","receiptTransactionType","getReceiptMasksAsync","createGetSearchSuggestionsInput","searchSuggestionCriteria","getSearchSuggestionsAsync","createStartSessionInput","transactionId","overrideSession","startSessionAsync","createEndSessionInput","endSessionAsync","createActivateDeviceInput","deviceNumber","terminalId","deviceId","forceActivate","deviceType","activateDeviceAsync","createMassActivateDeviceInput","massActivateDeviceAsync","createDeactivateDeviceInput","deactivateDeviceAsync","createCreateHardwareStationTokenInput","createHardwareStationTokenAsync","createValidateHardwareStationTokenInput","hardwareStationToken","validateHardwareStationTokenAsync","createGetBarcodeByIdInput","barcodeId","getBarcodeByIdAsync","createGetButtonGridByIdInput","buttonGridId","getButtonGridByIdAsync","createGetButtonGridsWithoutImageInput","height","width","getButtonGridsWithoutImageAsync","createGetButtonGridsByIdsInput","getButtonGridsByIdsCriteria","getButtonGridsByIdsAsync","createGetImageBlobsByPictureIdsInput","pictureIds","getImageBlobsByPictureIdsAsync","createGetCardTypesInput","getCardTypesAsync","createResolveCardTypesInput","cardNumberPrefix","cardType","paymentToken","resolveCardTypesAsync","createGetSupportedPaymentCardTypesInput","getSupportedPaymentCardTypesAsync","createGetCitiesInput","countryRegionId","stateProvinceId","countyId","getCitiesAsync","createGetCountryRegionsForShippingInput","getCountryRegionsForShippingAsync","createGetCountryRegionsByLanguageIdInput","languageId","getCountryRegionsByLanguageIdAsync","createGetOnlineChannelInput","channelId","getOnlineChannelAsync","createGetCountiesInput","getCountiesAsync","createGetCreditMemoByIdInput","creditMemoId","getCreditMemoByIdAsync","createGetDownloadIntervalInput","dataStoreName","getDownloadIntervalAsync","createGetTerminalDataStoreNameInput","getTerminalDataStoreNameAsync","createGetDownloadLinkInput","downloadSessionId","getDownloadLinkAsync","createGetDataDownloadParametersByTerminalInput","terminalDataDownloadRequestInfo","TerminalDataDownloadRequestInfo","getDataDownloadParametersByTerminalAsync","createGetDataUploadParametersByTerminalInput","terminalDataUploadRequestInfo","TerminalDataUploadRequestInfo","getDataUploadParametersByTerminalAsync","createGetDownloadSessionsInput","getDownloadSessionsAsync","createGetInitialDownloadSessionsInput","getInitialDownloadSessionsAsync","createGetUploadJobDefinitionsInput","getUploadJobDefinitionsAsync","createGetUploadIntervalInput","getUploadIntervalAsync","createPostOfflineTransactionsInput","offlineTransactionForMPOS","postOfflineTransactionsAsync","createSetOfflineTerminalStateInput","offlineTerminalState","setOfflineTerminalStateAsync","createGetRetailTrialPlanOfferInput","getRetailTrialPlanOfferAsync","createGetLatestNumberSequenceInput","searchLocationValue","getLatestNumberSequenceAsync","createGetReceiptNumberResetInfoInput","getReceiptNumberResetInfoAsync","createGetLoyaltyRewardPointActivityTimelineInput","cardNumber","rewardPointId","getLoyaltyRewardPointActivityTimelineAsync","createGetLoyaltyRewardPointActivityTimelineForExpiredPointsInput","getLoyaltyRewardPointActivityTimelineForExpiredPointsAsync","createCalculateTotalCurrencyAmountInput","currenciesAmount","calculateTotalCurrencyAmountAsync","createGetDiscountCodeInput","discountCode","getDiscountCodeAsync","createGetDiscountCodesByOfferIdInput","offerId","getDiscountCodesByOfferIdAsync","createGetDiscountCodesByKeywordInput","keyword","activeDate","getDiscountCodesByKeywordAsync","createGetDistrictsInput","cityName","getDistrictsAsync","createGetHardwareStationProfilesInput","getHardwareStationProfilesAsync","createGetHardwareProfileByIdInput","hardwareProfileId","getHardwareProfileByIdAsync","createGetLocalizedStringsInput","textId","getLocalizedStringsAsync","createGetOperationPermissionByIdInput","operationId","getOperationPermissionByIdAsync","createGetReasonCodesByIdInput","reasonCodeGroupId","getReasonCodesByIdAsync","createSearchReportDataSetInput","reportId","parameters","searchReportDataSetAsync","createGetReportDataSetByIdInput","getReportDataSetByIdAsync","createGetSrsReportDataSetInput","getSrsReportDataSetAsync","createGetIncomeExpenseAccountsInput","incomeExpenseAccountType","getIncomeExpenseAccountsAsync","createGetStateProvincesInput","getStateProvincesAsync","createGetZipCodesInput","district","getZipCodesAsync","createGetAddressFromZipCodeInput","zipPostalCode","getAddressFromZipCodeAsync","createDisassembleKitTransactionsInput","kitTransaction","disassembleKitTransactionsAsync","createIssueLoyaltyCardInput","loyaltyCard","issueLoyaltyCardAsync","createGetLoyaltyCardInput","getLoyaltyCardAsync","createGetCustomerLoyaltyCardsInput","accountNumber","getCustomerLoyaltyCardsAsync","createGetLoyaltyCardTransactionsInput","getLoyaltyCardTransactionsAsync","createGetLoyaltyRewardPointsExpiringSoonInput","daysToExpiry","getLoyaltyRewardPointsExpiringSoonAsync","createSearchJournalTransactionsInput","searchJournalTransactionsAsync","createGetGiftCardInput","giftCardId","pin","expirationMonth","expirationYear","getGiftCardAsync","createGetGiftCardInquiryInput","getGiftCardInquiryAsync","createGetNonSalesTransactionsInput","nonSalesTenderTypeValue","getNonSalesTransactionsAsync","createCreateNonSalesTransactionInput","nonSalesTransaction","createNonSalesTransactionAsync","createCreateDropAndDeclareTransactionInput","dropAndDeclareTransaction","createDropAndDeclareTransactionAsync","createGetTaxOverridesInput","overrideBy","getTaxOverridesAsync","createGetCustomerBalanceInput","invoiceAccountNumber","getCustomerBalanceAsync","createInitiateLinkToExistingCustomerInput","email","activationToken","emailTemplateId","emailProperties","ActivationToken","initiateLinkToExistingCustomerAsync","createFinalizeLinkToExistingCustomerInput","finalizeLinkToExistingCustomerAsync","createUnlinkFromExistingCustomerInput","unlinkFromExistingCustomerAsync","createGetOfflineSyncStatusInput","getOfflineSyncStatusAsync","createGetOfflinePendingTransactionCountInput","getOfflinePendingTransactionCountAsync","createGetOfflinePendingTransactionCountByShiftInput","getOfflinePendingTransactionCountByShiftAsync","createGetOfflineOpenShiftsInput","filterByCurrentUser","includeAllShiftsForStore","getOfflineOpenShiftsAsync","createDeleteOfflineShiftsInput","deleteOfflineShiftsAsync","createUpdateDownloadSessionInput","downloadSession","updateDownloadSessionAsync","createUpdateApplicationVersionInput","appVersion","updateApplicationVersionAsync","createGetStorageAccessTokenForUploadInput","getStorageAccessTokenForUploadAsync","createGetBusinessProcessModelLibrariesInput","getBusinessProcessModelLibrariesAsync","createGetBusinessProcessModelLibraryInput","businessProcessModelFrameworkLineId","hierarchyDepth","getBusinessProcessModelLibraryAsync","createSearchTaskGuidesByTitleInput","taskGuideSearchText","queryTypeValue","searchTaskGuidesByTitleAsync","createGenerateBusinessProcessModelPackageInput","taskRecording","generateBusinessProcessModelPackageAsync","createDownloadRecordingInput","businessProcessModelLineId","downloadRecordingAsync","createLoadRecordingFromFileInput","recordingUrl","loadRecordingFromFileAsync","createGenerateRecordingFileInput","generateRecordingFileAsync","createGenerateTrainingDocumentInput","generateTrainingDocumentAsync","createGenerateRecordingBundleInput","generateRecordingBundleAsync","createUploadRecordingInput","uploadRecordingAsync","createGetAttributeDefinitionsInput","attributeDefinitionCriteria","getAttributeDefinitionsAsync","createGetAttributeGroupDefinitionsInput","attributeGroupDefinitionCriteria","getAttributeGroupDefinitionsAsync","createSaveFiscalTransactionInput","fiscalTransaction","saveFiscalTransactionAsync","createValidatePrintReceiptCopyAllowedInput","salesOrderToPrint","validatePrintReceiptCopyAllowedAsync","createRegisterAuditEventInput","auditEvent","registerAuditEventAsync","createRegisterAndGetAuditEventInput","registerAndGetAuditEventAsync","createGetInventoryAvailableToPromiseInput","productId","itemId","inventLocationId","getInventoryAvailableToPromiseAsync","createGetSalesOrdersWithNoFiscalTransactionsInput","storeNumber","getSalesOrdersWithNoFiscalTransactionsAsync","createGetNotificationsInput","subscribedOperations","extensionProperties","getNotificationsAsync","createAcknowledgeNotificationsInput","lastPullDateTime","acknowledgeNotificationsAsync","createSearchPurchaseHistoryInput","searchPurchaseHistoryAsync","createGetFiscalIntegrationFiscalDocumentInput","functionalityProfileGroupId","fiscalIntegrationDocumentRetrievalCriteria","connectorType","getFiscalIntegrationFiscalDocumentAsync","createGetFiscalIntegrationNonFiscalDocumentInput","getFiscalIntegrationNonFiscalDocumentAsync","createGetFiscalIntegrationFiscalServiceSetupDocumentInput","getFiscalIntegrationFiscalServiceSetupDocumentAsync","createGetFiscalIntegrationFiscalServiceReadDataDocumentInput","getFiscalIntegrationFiscalServiceReadDataDocumentAsync","createProcessFiscalIntegrationFiscalServiceReadDataResultInput","documentToProcess","processFiscalIntegrationFiscalServiceReadDataResultAsync","createSaveFiscalIntegrationRegistrationResultInput","registrationResult","saveFiscalIntegrationRegistrationResultAsync","createGetFiscalIntegrationRegistrationProcessInput","getFiscalIntegrationRegistrationProcessAsync","createGetChannelSupportedFiscalIntegrationEventsByGroupInput","getChannelSupportedFiscalIntegrationEventsByGroupAsync","createGetFiscalIntegrationTechnicalProfilesInput","getFiscalIntegrationTechnicalProfilesAsync","createGetFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsInput","getFiscalIntegrationTechnicalProfilesByFunctionalityGroupIdsAsync","createGetFiscalRegistrationProcessSummaryInput","getFiscalRegistrationProcessSummaryAsync","createBackupFiscalRegistrationProcessContextInput","fiscalProcessCompleted","fiscalIntegrationSerializedContext","backupFiscalRegistrationProcessContextAsync","createGetActiveFiscalRegistrationProcessContextBackupInput","getActiveFiscalRegistrationProcessContextBackupAsync","createGetFiscalIntegrationTechnicalProfilesBySearchCriteriaInput","fiscalIntegrationTechnicalProfileSearchCriteria","getFiscalIntegrationTechnicalProfilesBySearchCriteriaAsync","createGetFiscalIntegrationServiceStatusInput","fiscalIntegrationServiceInfo","getFiscalIntegrationServiceStatusAsync","createSubmitFiscalIntegrationDocumentInput","documentToSubmit","submitFiscalIntegrationDocumentAsync","createGetFeatureStatesInput","featureNames","getFeatureStatesAsync","createGetLastFiscalIntegrationSequentialSignaturesInput","sequentialKeys","getLastFiscalIntegrationSequentialSignaturesAsync","createCreateFiscalTransactionInput","createFiscalTransactionAsync","createGetEstimatedPickupTimeslotAvailabilitiesInput","getEstimatedPickupTimeslotAvailabilitiesAsync","createCalculateSalesDocumentInput","salesDocument","calculateSalesDocumentAsync","createSearchVendorsInput","searchVendorsAsync","createValidateVendorApprovedForItemInput","vendorAccountNumber","validateVendorApprovedForItemAsync","createLocalizationIndiaGetBusinessVerticalsInput","localizationIndiaGetBusinessVerticalsAsync","createGetReportCopilotSummaryInput","getReportCopilotSummaryAsync","createGetButtonGridsInput","getButtonGridsAsync","createGetButtonGridsByScreenSizeInput","getButtonGridsByScreenSizeAsync","createGetOperationalInsightsConfigurationInput","getOperationalInsightsConfigurationAsync","createGetCashDeclarationsInput","getCashDeclarationsAsync","createGetCountryRegionsInput","getCountryRegionsAsync","createGetCustomerGroupsInput","getCustomerGroupsAsync","createGetChannelDeliveryOptionConfigurationInput","getChannelDeliveryOptionConfigurationAsync","createGetChannelsByTypeInput","channelType","getChannelsByTypeAsync","createGetChannelsInput","getChannelsAsync","createGetOnlineChannelAzureB2CConfigurationInput","getOnlineChannelAzureB2CConfigurationAsync","createSearchChannelsInput","searchChannelsAsync","createGetEnvironmentConfigurationInput","getEnvironmentConfigurationAsync","createGetOrderManagementConfigurationInput","getOrderManagementConfigurationAsync","createGetPaymentConfigurationInput","getPaymentConfigurationAsync","createGetSearchConfigurationInput","getSearchConfigurationAsync","createGetExtensionPackageDefinitionsInput","getExtensionPackageDefinitionsAsync","createGetExtensionProfileInput","getExtensionProfileAsync","createGetDeviceConfigurationInput","getDeviceConfigurationAsync","createGetVisualProfileInput","getVisualProfileAsync","createGetLanguagesInput","getLanguagesAsync","createGetAffiliationsInput","getAffiliationsAsync","createGetOperationPermissionsInput","getOperationPermissionsAsync","createGetReasonCodesInput","getReasonCodesAsync","createGetReturnOrderReasonCodesInput","getReturnOrderReasonCodesAsync","createGetSalesTaxGroupsInput","getSalesTaxGroupsAsync","createGetTenderTypesInput","getTenderTypesAsync","createGetUnitsOfMeasureInput","getUnitsOfMeasureAsync","createGetDiscountCodesInput","getDiscountCodesAsync","createGetCurrenciesInput","getCurrenciesAsync","createGetCurrenciesAmountInput","currencyCode","getCurrenciesAmountAsync","createGetCommissionSalesGroupsInput","getCommissionSalesGroupsAsync","createSearchCommissionSalesGroupsInput","searchText","searchCommissionSalesGroupsAsync","createGetPaymentMerchantInformationInput","getPaymentMerchantInformationAsync","createGetPaymentPropertiesIfModifiedInput","merchantInformationHash","getPaymentPropertiesIfModifiedAsync","createGetOnlineChannelPublishStatusInput","getOnlineChannelPublishStatusAsync","createSetOnlineChannelPublishStatusInput","publishingStatus","statusMessage","setOnlineChannelPublishStatusAsync","createGetInventoryConfigurationInput","getInventoryConfigurationAsync","createGetMerchandisingConfigurationInput","getMerchandisingConfigurationAsync","createGetPurchaseConfigurationInput","getPurchaseConfigurationAsync","createSearchJournalNamesInput","searchJournalNamesAsync","createGetAvailableDevicesInput","getAvailableDevicesAsync","createGetUserDefinedSecretStringInput","secretName","getUserDefinedSecretStringAsync","createGetUserDefinedSecretCertificateInput","getUserDefinedSecretCertificateAsync","createGetImageBlobInput","imageId","getImageBlobAsync","createGetExtensibleEnumerationsInput","getExtensibleEnumerationsAsync","createGetAddressPurposesInput","getAddressPurposesAsync","createGetReturnPolicyInput","getReturnPolicyAsync","createGetEmailReceiptSettingsInput","getEmailReceiptSettingsAsync","createCheckFiscalIntegrationComplianceInput","checkFiscalIntegrationComplianceAsync","createGetCustomerInsightsCopilotSummaryInput","customerAccountNumber","getCustomerInsightsCopilotSummaryAsync","createGetProductCopilotSummaryInput","getProductCopilotSummaryAsync","createGetCustomerTimelineCopilotSummaryInput","getCustomerTimelineCopilotSummaryAsync","productsQuery","recordId","key","RecordId","createCreateInput","entity","create","createProductAsync","createUpdateInput","update","updateAsync","createDeleteAsync","delete","deleteAsync","createReadAsync","read","readAsync","createReadAllAsync","readAllAsync","createSearchInput","productSearchCriteria","searchAsync","createGetRefinersInput","getRefinersAsync","createGetDimensionValuesInput","dimension","matchingDimensionValues","kitVariantResolutionContext","getDimensionValuesAsync","createGetDimensionValuesWithEstimatedAvailabilitiesInput","getDimensionValuesWithEstimatedAvailabilitiesAsync","createGetVariantsByDimensionValuesInput","getVariantsByDimensionValuesAsync","createGetVariantsByComponentsInSlotsInput","matchingSlotToComponentRelationship","getVariantsByComponentsInSlotsAsync","createGetByIdsInput","productIds","catalogId","getByIdsAsync","createCompareInput","compareAsync","createGetRecommendedProductsInput","customerId","getRecommendedProductsAsync","createRefineSearchByCategoryInput","categoryId","refinementCriteria","refineSearchByCategoryAsync","createRefineSearchByTextInput","refineSearchByTextAsync","createGetProductSearchRefinersInput","getProductSearchRefinersAsync","address","filterOption","createChangesInput","changesAsync","createBeginReadChangedProductsInput","changedProductSearchCriteria","beginReadChangedProductsAsync","createReadChangedProductsInput","skipProductPriceCalculation","readChangedProductsAsync","createGetDeletedListingsInput","skip","top","getDeletedListingsAsync","createGetAssortedProductIdsInput","includeFutureAssortedProducts","getAssortedProductIdsAsync","createCheckProductsExistenceInput","productExistenceCriteria","checkProductsExistenceAsync","createGetDeletedCatalogsInput","getDeletedCatalogsAsync","createGetDeletedLanguagesInput","getDeletedLanguagesAsync","createGetProductRatingsInput","getProductRatingsAsync","createGetProductAssortmentIntervalsInput","getProductAssortmentIntervalsAsync","createDeleteListingsByCatalogsInput","catalogIds","deleteListingsByCatalogsAsync","createDeleteListingsByLanguagesInput","languages","deleteListingsByLanguagesAsync","createEndReadChangedProductsInput","session","endReadChangedProductsAsync","createUpdateListingPublishingStatusInput","publishingStatuses","updateListingPublishingStatusAsync","createGetCatalogProductAttributesInput","getCatalogProductAttributesAsync","createSearchMediaLocationsInput","mediaLocationSearchCriteria","searchMediaLocationsAsync","createGetPricesInput","inventoryDimensionId","barcode","unitOfMeasureSymbol","quantity","getPricesAsync","createGetProductAvailabilitiesInput","itemIds","getProductAvailabilitiesAsync","createGetActivePricesInput","projectDomain","affiliationLoyaltyTiers","includeSimpleDiscountsInContextualPrice","includeVariantPriceRange","includeAttainablePricesAndDiscounts","priceLookupContext","getActivePricesAsync","createGetProductPromotionsInput","productDiscountIds","getProductPromotionsAsync","createGetFilteredSlotComponentsInput","slotId","selectedComponents","getFilteredSlotComponentsAsync","createGetComponentByProductSlotRelationInput","componentRelation","getComponentByProductSlotRelationAsync","hitPrefix","hitSuffix","createGetCategoryPathsInput","categoryPathLookups","CategoryPathLookups","getCategoryPathsAsync","createGetProductUnitsOfMeasureInput","unitOfMeasureSearchCriteria","getProductUnitsOfMeasureAsync","createSearchByCategoryInput","searchByCategoryAsync","createSearchByTextInput","searchByTextAsync","createSearchByCriteriaInput","searchByCriteriaAsync","createGetByLookupClausesInput","productLookupClauses","getByLookupClausesAsync","createGetRefinersByCategoryInput","getRefinersByCategoryAsync","createGetRefinersByTextInput","getRefinersByTextAsync","createGetRefinerValuesByCategoryInput","refinerId","refinerSourceValue","getRefinerValuesByCategoryAsync","createGetRefinerValuesByTextInput","getRefinerValuesByTextAsync","createGetChannelProductAttributesInput","getChannelProductAttributesAsync","createGetByIdInput","getByIdAsync","createGetAttributeValuesInput","getAttributeValuesAsync","createGetMediaLocationsInput","getMediaLocationsAsync","createGetMediaBlobsInput","getMediaBlobsAsync","createGetDefaultComponentsInput","getDefaultComponentsAsync","createGetSlotComponentsInput","getSlotComponentsAsync","createGetAllRelationTypesInput","getAllRelationTypesAsync","createGetRelationTypesInput","getRelationTypesAsync","createGetRelatedProductsInput","relationTypeId","getRelatedProductsAsync","createGetApplicableWarrantiesInput","warrantableProductIds","getApplicableWarrantiesAsync","createGetPriceInput","getPriceAsync","createCalculateProductPriceInput","loyaltyCardId","calculateProductPriceAsync","createGetEstimatedProductWarehouseAvailabilityInput","productWarehouses","quantityUnitType","getEstimatedProductWarehouseAvailabilityAsync","createUpdateProductWarehouseAvailabilityInput","quantities","updateProductWarehouseAvailabilityAsync","createGetEstimatedAvailabilityInput","getEstimatedAvailabilityAsync","cartsQuery","id","Id","createCartAsync","cartSearchCriteria","createCheckoutInput","receiptEmail","tokenizedPaymentCard","receiptNumberSequence","cartTenderLines","cartVersion","checkoutLocation","checkoutAsync","createGetMaxLoyaltyPointsToRedeemForTransactionBalanceInput","getMaxLoyaltyPointsToRedeemForTransactionBalanceAsync","createGetPaymentsHistoryInput","getPaymentsHistoryAsync","createGetLineDeliveryOptionsByChannelIdInput","lineShippingAddresses","getLineDeliveryOptionsByChannelIdAsync","createGetLineDeliveryOptionsInput","getLineDeliveryOptionsAsync","createGetDeliveryPreferencesInput","getDeliveryPreferencesAsync","shippingAddress","cartLineIds","ignoreLinesWithDeliveryMode","createUpdateLineDeliverySpecificationsInput","lineDeliverySpecifications","updateLineDeliverySpecificationsAsync","createUpdateDeliverySpecificationInput","deliverySpecification","updateDeliverySpecificationAsync","createAddChargeInput","moduleTypeValue","chargeCode","addChargeAsync","createOverrideChargeInput","chargeLineId","overrideChargeAsync","createAddCartLineChargeInput","cartLineId","addCartLineChargeAsync","createOverrideCartLineChargeInput","overrideCartLineChargeAsync","createVoidInput","voidAsync","createAddCartLinesInput","cartLines","addCartLinesAsync","createAddReturnCartLinesInput","returnCartLines","returnTransactionSearchLocation","addReturnCartLinesAsync","createUpdateCartLinesInput","updateCartLinesAsync","createVoidCartLinesInput","voidCartLinesAsync","createRemoveCartLinesInput","removeCartLinesAsync","createAddTenderLineInput","cartTenderLine","addTenderLineAsync","createCalculateTenderDiscountInput","tenderLine","calculateTenderDiscountAsync","createAddPreprocessedTenderLineInput","preprocessedTenderLine","addPreprocessedTenderLineAsync","createValidateTenderLineForAddInput","validateTenderLineForAddAsync","createUpdateTenderLineSignatureInput","tenderLineId","signatureData","updateTenderLineSignatureAsync","createGetDeclinedOrVoidedCardReceiptsInput","receiptRetrievalCriteria","getDeclinedOrVoidedCardReceiptsAsync","createCopyInput","targetCartType","copyAsync","createAddInvoicedSalesLinesToCartInput","invoicedSalesLinesIds","addInvoicedSalesLinesToCartAsync","createRecallInvoicedSalesLinesInput","recallInvoicedSalesLineLookups","recallInvoicedSalesLinesAsync","createVoidTenderLineInput","isPreprocessed","forceVoid","voidTenderLineAsync","createIssueGiftCardInput","lineDescription","issueGiftCardAsync","createRefillGiftCardInput","refillGiftCardAsync","createCashOutGiftCardInput","cashOutGiftCardAsync","createSuspendInput","suspendAsync","createSuspendWithJournalInput","journalCartId","suspendWithJournalAsync","createResumeInput","resumeAsync","createResumeFromReceiptIdInput","receiptId","resumeFromReceiptIdAsync","createRemoveDiscountCodesInput","discountCodes","removeDiscountCodesAsync","createGetSuspendedInput","getSuspendedAsync","createOverrideCartLinePriceInput","price","overrideCartLinePriceAsync","createGetCardPaymentAcceptPointInput","cardPaymentAcceptSettings","getCardPaymentAcceptPointAsync","createRetrieveCardPaymentAcceptResultInput","resultAccessCode","cartId","settings","retrieveCardPaymentAcceptResultAsync","createRecallOrderInput","salesId","recallOrderSearchCriteria","recallOrderAsync","createRecallQuoteInput","quoteId","recallQuoteAsync","createRecalculateOrderInput","recalculateOrderAsync","createResetAllChargesInput","resetAllChargesAsync","createGetPromotionsInput","getPromotionsAsync","createRecallSalesInvoiceInput","invoiceId","recallSalesInvoiceAsync","createAddOrderInvoiceInput","addOrderInvoiceAsync","createAddInvoicesInput","invoiceIds","addInvoicesAsync","createUpdateCommissionSalesGroupInput","commissionSalesGroup","isUserInitiated","updateCommissionSalesGroupAsync","createAddCouponsInput","couponCodes","isLegacyDiscountCode","addCouponsAsync","createRemoveCouponsInput","removeCouponsAsync","createGetCartLineUserAlertsForAddInput","getCartLineUserAlertsForAddAsync","createGetCartLineUserAlertsInput","getCartLineUserAlertsAsync","createGetChargeCodesInput","getChargeCodesAsync","createGetReceiptTypesInput","getReceiptTypesAsync","createSetInvoiceLinePriceInput","setInvoiceLinePriceAsync","createAddDiscountCodeInput","addDiscountCodeAsync","createGetReturnOptionsInput","getReturnOptionsAsync","createGetConfigurationInput","getConfigurationAsync","createValidateForCheckoutInput","validateForCheckoutAsync","createGetTenderSuggestionsInput","getTenderSuggestionsAsync","ApiVersion","EntityIdentifier","AutoExitMethodType","CardType","PublishingAction","ListingPublishingActionStatus","OnlineChannelPublishStatusType","ReceiptTransactionType","EmployeePriceOverrideType","KeyInPriceRestriction","KeyInQuantityRestriction","ProductDimensionType","ProductType","NumberSequenceSeedType","ReasonCodeSourceType","TriggerFunctionType","QueryType","ChangeAction","PeriodicDiscountOfferType","SearchFilterType","InfoCodeActivity","SrsReportFileFormat","ShiftReconciliationLineStatus","ProductSearchServiceType","SearchSuggestionType","SalesStatus","EFTType","FilterDeliveryModeOption","InventoryDocumentLineOperationResultMode","InventoryDocumentStatus","InventoryDocumentUpdateLinesActionType","InventoryInboundOutboundDocumentOperationType","InventoryInboundOutboundSourceDocumentStatus","InventorySourceDocumentType","InventoryInboundOutboundDocumentState","ReceiptNumberResetType","PeriodUnit","WarrantyPriceRangeBaseType","LogOnKeyboardType","LogOnLayoutType","DeliveryModeTypeFilter","InventoryDocumentValidationResultSeverity","InventoryDocumentOverreceivingErrors","InventoryDocumentSerialNumberErrors","EmployeeIdentityType","FulfillmentOperationType","PaymentStatus","UserAlertSourceType","CustomerOrderMode","InventoryValidationErrors","InventoryJournalPosAdjustmentType","ProductDataValidationErrors","MediaType","CheckoutLocation","CountryRegionISOCode","AddressOperationType","AddressType","AttributeDataType","BarcodeEntryMethodType","BarcodeMaskType","TransactionStatus","GiftCardOperationType","RetailGiftCardType","PriceMethod","ManualPriceEntryType","ConcurrencyMode","SalesAgreementLineType","DiscountLineType","ManualDiscountType","CustomerDiscountType","ReasonCodeInputType","ReasonCodeLineType","ChargeModule","ChargeType","ChargeMethod","CustType","CashType","IncomeExpenseAccountType","TenderLineStatus","TenderLineVoidStatus","PaymentProcessingType","CreditCardProcessorStatus","ContactInformationType","CommerceEntityDataLevel","ProductPropertyType","AttributeGroupType","ProductSource","RoundingMethod","LineMultilineDiscountOnItem","LoyaltyRewardPointEntryType","LoyaltyRewardPointType","TransactionType","CashManagementTransactionContext","CustomerTimelineItemEntityType","EmployeePermissionsAllowPrintingReceiptCopy","AddressFormatLineType","CustomerOrderSynchronizationMode","StatementMethod","SalesRepPromptType","RetailProductSearchType","RetailDenominationsToDisplay","EmployeeLogonType","RetailCustomerSearchMode","RequirePaymentForFulfillment","CardNotPresentProcessingConfiguration","ChangeDueBehavior","FontSchemeType","DefaultSearchResultDisplayViewType","DeviceActivationStatus","DeviceType","DualDisplayType","FiscalRegisterType","PrinterLogotype","PrinterLogoAlignmentType","FiscalIntegrationConnectorType","FiscalIntegrationConnectorLocation","ReceiptType","PrintBehavior","DistanceUnit","StockCountStatus","UnitOfMeasureSource","RecommendedElementType","CommerceListInvitationStatus","CommerceListInvitationType","SearchLocation","OrderSearchType","SalesTransactionType","CustomerRefinerSource","PriceSourceType","RetailAffiliationType","InventoryDocumentLineOriginType","InventorySerialNumberLineStatus","InventoryTrackingDimensionLineStatus","InventorySourceDocumentLineStatus","RetailOperation","RefinerType","DisplayTemplate","ClientBookRefinerSource","ProductRefinerSource","LoyaltyCardTenderType","ReleasedProductType","RetailChannelType","LogOnConfiguration","TransactionServiceAuthenticationType","IncludePersonalDataInGuestOrderLookupPolicy","RetailAddressBookType","InventAvailabilityCalculationMode","InventoryAvailabilityClientDisplayMode","EmployeeActivityType","DeliveryPreferenceType","LayoutType","SalesInvoiceType","InvoiceType","InvoicePaidStatus","TaxOverrideType","TaxOverrideBy","ReasonCodeInputRequiredType","RecordingValueType","UserActionType","ArtifactType","FrameworkAccess","MetadataControl","FiscalIntegrationRegistrationStatus","CustomerOrderOperation","BusinessPartnerOperationType","BusinessPartnerOperationStatus","NatureOfAssessee","CartType","CartStatus","PeriodicDiscountsCalculateScope","TaxCalculationType","NoteRestriction","CustomerType","ContactInfoType","ChecklistStatus","ChecklistTaskDeepLinkType","ChecklistTaskStatus","DocumentStatus","CustomerOrderType","LineDiscountCalculationType","ShiftStatus","TaxRegistrationType","CommerceListType","ProductListType","RecommendationType","PurchaseTransferOrderType","BusinessPartnerUserStatus","InventoryAccuracy","ElectronicAddressType","MediaUsageType","DateValidationType","AffiliationFilterType","DownloadSessionStatus","HardwareStationType","AuditEventUploadType","AuditEventType","AuditLogTraceLevel","FiscalIntegrationEventType","FiscalIntegrationDocumentGenerationResultType","FiscalIntegrationRegistrationProcessMode","FiscalIntegrationServiceCommunicationResultType","FiscalIntegrationServiceFailureType","PickupTimeslotAvailabilitySearchOption","VendorValidationResultLevel","AttachedServiceStatus","ReceiptEmailBehavior","CartLineQuantityLimitsErrors","CommunicationErrors","ConfigurationErrors","DataValidationErrors","InvoiceDataValidationErrors","FeatureNotSupportedErrors","SecurityErrors","StorageErrors","VersionNotSupportedErrors","PaymentErrors","FiscalIntegrationServiceErrors","CommerceDataExchangeErrors","TaskManagementErrorCode","PricingDataValidationErrors","ProductPricingConfigurationErrorCode","OrderDataValidationErrors","PaymentConfigurationErrors","TaxLimitBase","OnlineStoreCustomerType","BusinessPartnerOperationDeliveryType","ProspectType","WrongEndpointErrors","RetailServerApiErrors","ExceptionSeverity","retailAction","input","callerContext","execute","callActionOrExecute","chainAction","Error","overrideCacheType","clientTimeoutInMs","setClientTimeoutInMs","AsyncResult","resolve","reject","then","result","catch","error","prototype","isAction","isObservable","constructor","entitySet","entityType","returnType","this","_query","tokens","options","Paging","Sorting","value","count","filter","filterSettings","Top","Skip","expand","propertyName","expands","push","inlineCount","orderBy","Columns","ColumnName","object","action","data","_createODataParameters","_createRequest","undefined","isReturnTypeACollection","setGetAllRecords","isGetAllRecords","operationName","_objectSpread","DataServiceRequest","productListsQuery","createProductListAsync","createGetProductListLinesInput","getProductListLinesAsync","createAddProductListLinesInput","productListLines","addProductListLinesAsync","createUpdateProductListLinesInput","updateProductListLinesAsync","createRemoveProductListLinesInput","removeProductListLinesAsync","createCopyCartToProductListInput","isRewrite","isQuantityAggregate","copyCartToProductListAsync","orgUnitsQuery","orgUnitNumber","OrgUnitNumber","createOrgUnitAsync","createGetTillLayoutInput","includeImage","getTillLayoutAsync","storeSearchCriteria","createGetOrgUnitLocationsByAreaInput","searchArea","deliveryModeTypeFilter","getOrgUnitLocationsByAreaAsync","createSearchOrgUnitLocationsInput","orgUnitLocationSearchCriteria","searchOrgUnitLocationsAsync","createGetOrgUnitConfigurationInput","getOrgUnitConfigurationAsync","createGetStoreHoursInput","getStoreHoursAsync","createGetChannelDeliveryOptionsInput","channelIds","getChannelDeliveryOptionsAsync","createGetAvailableInventoryInput","variantId","getAvailableInventoryAsync","createGetAvailableInventoryNearbyInput","getAvailableInventoryNearbyAsync","createGetProductAvailabilityByDimensionsInput","inventLocationIds","productDimensionCombinations","getProductAvailabilityByDimensionsAsync","createSearchProductAvailabilityInput","orgUnitAvailabilitySearchCriteria","searchProductAvailabilityAsync","createSearchAffiliationsInput","affiliationSearchCriteria","searchAffiliationsAsync","createGetTerminalInfoInput","getTerminalInfoAsync","createGetProductAvailabilityInput","getProductAvailabilityAsync","$","uncurryThis","aCallable","toObject","lengthOfArrayLike","deletePropertyOrThrow","toString","fails","internalSort","arrayMethodIsStrict","FF","IE_OR_EDGE","V8","WEBKIT","test","nativeSort","sort","FAILS_ON_UNDEFINED","FAILS_ON_NULL","STRICT_METHOD","STABLE_SORT","code","chr","index","String","fromCharCode","k","v","a","b","length","charAt","target","proto","forced","comparefn","array","itemsLength","items","arrayLength","x","y","getSortCompare","customersQuery","AccountNumber","createCustomerAsync","customerSearchCriteria","createSearchByFieldsInput","customerSearchByFieldCriteria","CustomerSearchByFieldCriteria","searchByFieldsAsync","createGetByAccountNumbersInput","accountNumbers","getByAccountNumbersAsync","createCreateCustomerTimelineItemInput","customerTimelineItem","createCustomerTimelineItemAsync","createUpdateCustomerTimelineItemInput","updateCustomerTimelineItemAsync","refinerSourceTypes","createGetOrderHistoryInput","getOrderHistoryAsync","createGetOrderShipmentsHistoryInput","nextPageToken","getOrderShipmentsHistoryAsync","createPostNonTransactionalActivityLoyaltyPointsInput","affiliationId","activityTypeId","postNonTransactionalActivityLoyaltyPointsAsync","createGetPurchaseHistoryInput","getPurchaseHistoryAsync","createGetCustomerSearchFieldsInput","getCustomerSearchFieldsAsync","createGetCustomerTimelineItemTypesInput","getCustomerTimelineItemTypesAsync","createGetCustomerTimelineItemsInput","getCustomerTimelineItemsAsync","createGetCustomerTimelineRefinersInput","getCustomerTimelineRefinersAsync","createGetTitlesInput","getTitlesAsync","businessPartnerUsersQuery","b2BUserId","B2BUserId","createBusinessPartnerUserAsync","createRequestAccountStatementInput","accountStatementParameters","requestAccountStatementAsync","createRequestInvoiceCopyInput","deliveryType","requestInvoiceCopyAsync","createGetOperationRequestsInput","startDateTime","endDateTime","getOperationRequestsAsync","createGetCurrentInput","getCurrentAsync","DEPRECATED_HOOK_TYPES","ActionRegistrar","dataActionRegister","getRegistration","getPartnerOverrideAction","partnerDataAction","default","Action","unwrapAction","getAction","registeredAction","registerAction","dataAction","actionRegister","registration","registerHook","hookType","hook","isBrowser","indexOf","StaticTelemetry","log","LogLevel","Warning","hooks","Array","isArray","hookRegistration","Set","forEach","h","add","newRegistration","registerPostHook","registerPreHook","registerPreReadOnlyHook","registerPostReadOnlyHook","registerPreReaderHook","registerPostReaderHook","getPreHooks","actionRegistration","pre","getPostHooks","post","getPreReadHooks","preRead","getPostReadHooks","postRead","getPreReaderHooks","preReader","getPostReaderHooks","postReader","resolveAction","resolveRegistration","preHooks","postHooks","preReadHooks","postReadHooks","preReaderHooks","postReaderHooks","createObservableDataAction","wrappedAction","wrapDataAction","actionWrap","name","inputFunc","isBatched","_action","registrationId","RegistrationId","func","_isBatched","newAction","setProperty","arg1","arg2","createDataActionHook","preHook","actionId","postHook","preReadonlyHook","postReadonlyHook","preReaderHook","postReaderHook","ActionError","super","Name","message","status","Object","setPrototypeOf","shouldReadFromAppCache","appCache","dataCacheType","shouldWriteToAppCache","isAppCacheData","hasCacheSetting","getCacheObjectType","GET_FROM_RETURNIDENTIFIER","addLocaleInformation","inputs","locale","getCacheKey","endsWith","tmp","_cacheKeyFromInput","_resolveCacheEntryReference","dataServiceRequest","item","requestCache","isWrappingPromise","arguments","cacheValueAsArray","map","cacheObjectType","_cacheObjectType","get","typeName","copyTo","valueItem","isAsyncResult","logTelemetrySource","cacheValue","cacheKey","telemetry","s","ICacheSource","AppCache","verboseLogger","values","RequestCache","readCacheEntriesBasedOnCacheKeyFromReturnType","cacheKeyFromReturnType","_cacheKeyFromReturnType","cacheKeyIdentifierFromReturnType","_cacheKeyIdentifierFromReturnType","entry","shouldRefresh","shouldRefreshAll","cacheEntries","Boolean","cacheEntriesReturn","readCacheEntries","cacheKeyFromInput","entries","cachedValueBasedOnInput","$ref","cachedValueBasedOnInputItem","resolvedRef","_saveEntityToCache","isCacheTypeApplication","isInstance","dataServiceRequestQuery","results","call","identifierValue","existingCacheItem","existingCacheObjectType","existingCacheKeyIdentifierFromReturnType","existingCacheIsReturnTypeACollection","existingCacheTotalCount","_totalCount","type","identifier","isCollection","_existingCacheItem","keys","entryKey","put","instance","saveCacheEntries","metadata","_otherOdata","others","listeners","Map","eventEmitter","window","EventEmitter","on","event","callback","set","emit","_len","args","_key","listener","removeAllListeners","defaultHookTimeoutInMS","CLIENT_HYDRATE_KEY","CLIENT_HYDRATE_TYPE","Timer","timeoutInMS","Promise","setTimeout","bind","ActionTimer","_resolve","ActionExecutor","dataActionOption","_shouldUseInstanceCache","_msdyn365Commerce$pla","checkVersionForFeature","platformSettings","shouldUseInstanceCache","eventId","uuidv1","masterInput","cacheType","shouldCacheOutput","trace","addInputs","bypassAppCache","refreshingInputs","unique","_removeDuplicates","_getActionIdFromInputs","performanceUtils","getPerformanceUtils","executionId","performanceUtilsPackage","Random","Guid","generateGuid","runPreReadonlyDataActionPerformanceHook","internalCache","cache","_executeDataAction","runPostReadonlyDataActionPerformanceHook","isRefreshingAction","_runPreReadHooks","err","_runPreReaderHooks","uncached","needsRefresh","_checkForCachedData","_fetchOutputsAndRunPostReadHook","cachedActions","includes","outputs","_executeBatchedObservableActions","_executeObservableAction","_actionWrapper","Trace","_saveResponseToCache","_checkShouldInteractWithCache","i","cacheItem","getValue","_runPostReadHooks","_runPostReaderHooks","_uniqWith","inputA","inputB","inputsActionId","getActionId","_getActionFromId","hookTimeout","Number","_get2","timer","from","reduce","async","previousTask","currentTask","race","requestContext","asSystemMetadata","exception","actionResult","prevInput","tmpNextInput","finalNextInput","prevOutput","tmpNextOutput","finalNextOutput","isRefreshing","_inputs","_runPreHooks","e","convertedError","_convertToJSError","CorrelationId","serverSideDataActionTimeoutInMs","clientSideCustomerTimeout","clientSideDataActionTimeoutInMs","promises","_errorCode","ErrorTypeEnum","SERVICE_UNAVAILABLE","ProxyError","toError","_runPostHooks","idx","appCacheData","usingInstanceCache","features","disable_instance_cache","actionName","entityId","isActionError","isTimeoutError","cacheEntry","assign","unresolvedSet","uncachedInputs","asyncOutputs","executor","innerResolve","innerReject","EventHelper","onEventIdFinalCompletion","cachedPromise","run","actionResults","finally","unresolvedIndex","isServiceUnavailable","cachedItem","asyncOutput","refreshing","_interceptCacheForMocks","clientHydrateCacheKey","isClientHydrate","runOn","refresh","disable_bypass_request_cache","existingItem","mockItem","_getMockItem","mockItemJSObject","toJS","cacheNamespace","proxyError","ErrorCode","CatalogsInput","buildCacheKey","base","apiSettings","user","getCatalogsAsync","createCatalogsInput","inputData","isAuthenticated","shouldByPassCache","query","cachebypass","isPageInsightsEnabled","params","pageInsights","REFRESH_ACTIONS_CACHE_KEY","ActionContext","executionParams","cacheKeyMap","refreshConfigs","hasRun","currentActionsInQueue","nextTierCounter","next","spawnChildOnExecute","Debug","currentExecutionTier","threadId","debug","isMaxDepthExceeded","maxDepth","app","platform","getItemFromCache","_endCurrentTier","expectedActionCount","expectedActionsInCurrentTier","moduleTelemetry","Telemetry","isDebug","registerTraceLogger","traceLogger","GenericConsoleLogger","disable_app_cache","getRefreshActions","actionOption","runAllActionsInQueue","inputsArray","current","find","inputIdentifier","asyncResult","tierNum","refreshStartTimeInMS","splice","all","_type","dataArray","inputArray","preparedCacheKey","getAll","cachedEntries","getAllItems","expectedNumberOfChildThreads","nextTierStartingDepth","nextTier","refreshconfigslocal","param","refreshActions","paramExecutor","actionInputs","size","disable_appcache_refresh_await","rf","refreshRequestCache","refreshContext","buildHydratedMockActionContext","MediaLocationsInput","getMediaLocationsForProductAction","ctx","versionGte","process","types","require","productMediaLocations","_ctx$requestContext$a","_ctx$requestContext","parseInt","defaultPageSizeForAPI","productImagesAndVideos","media","MediaTypeValue","Image","Video","DisplayOrder","mediaLocation","mediaLoc","Uri","generateImageUrlForOmniChanel","MediaLocationType","AdditionalMediaLocationsInput","typeFilter","All","getAdditionalMediaLocationsForProductAction","productActions","ProductId","ChannelId","CatalogId","MediaUsageTypeValue","filteredMedia","File","AltText","GetCustomerInput","getCustomerActionDataAction","response","warning","token","businessPartnersQuery","businessPartnerId","BusinessPartnerId","createBusinessPartnerAsync","createCreateProspectInput","businessPartnerProspect","createProspectAsync","createPromoteToSellerInput","promoteToSellerAsync","createGetManagedBusinessPartnersInput","getManagedBusinessPartnersAsync","createGetUsersInput","getUsersAsync","EMPTY","convertToString","obj","accumulator","depth","prop","hasOwnProperty","stringifyValue","join","hasElements","isObjectNotEmptyOrNull","isEmpty","isNullOrWhitespace","returnValue","trim","format","replace","regexp","RegExp","$parseFloat","global","parseFloat","IS_PURE","NativePromiseConstructor","getBuiltIn","isCallable","speciesConstructor","promiseResolve","defineBuiltIn","NativePromisePrototype","real","onFinally","C","isFunction","method","unsafe","commerceListsQuery","createCommerceListAsync","createGetByCustomerInput","getByCustomerAsync","addLinesAsync","commerceListLines","createAddLinesInput","removeLinesAsync","createRemoveLinesInput","ProxyErrorSDK","errorCode","errorMessage","canRetry","localizedErrorMessage","formatData","extraData","_canRetry","_errorMessage","_localizedErrorMessage","_commerceException","_formatData","headers","body","_extraData","errorName","ErrorMessage","LocalizedErrorMessage","CanRetry","requestUri","statusCode","EventLevel","EventChannel","EventType","Utils","DebuggingConsoleSink","setSessionInfo","appSessionId","userSessionId","userId","tenantId","offlineAvailability","offlineCurrentMode","setInstrumentationKey","instrumentationKey","writeEvent","LoggerBase","version","channel","level","keywords","task","opCode","loggingSink","enumType","modelManagersRetailServerRequestStarted","requestId","requestUrl","Informational","modelManagersRetailServerRequestError","Operational","modelManagersRetailServerRequestFinished","genericWarning","Tracer","sink","addLoggingSink","informationformat","TracingOn","GetMessage","apply","TracerDynamicsError","warningFormat","_len2","_key2","errorFormat","_len3","_key3","errors","formatString","_len4","_key4","errorString","JSON","stringify","uniqueFunctionName","counter","Counters","PerformanceCounters","Count","now","Date","getTime","Timers","startTime","pop","TotalTime","Information","_len5","_key5","TracerDynamics","slice","_initialized","init","globalThis","whitespaces","Symbol","ITERATOR","iterator","FORCED","Infinity","module","exports","string","trimmedString","firefox","match","UA","webkit","normalizeCacheKey","toUpperCase","transaction","observable","deep","_value","toCache","del","flushAll","_handlers","_attachHandler","handler","_executeHandlers","onFail","onSuccess","_updateStatus","_reject","reason","getType","onfinally","failed","toStringTag","newStatus","isError","__decorate","SERVER_ERROR","SERVER_TIMEOUT","RETAIL_SERVER_REDIRECT_ERROR","GENERICERRORMESSAGE","MICROSOFT_DYNAMICS_SERVER_INTERNAL_ERROR","BAD_REQUEST","NOT_AUTHORIZIED","FORBIDDEN","PRECONDITION_FAILED","RETURN_NO_ORDERS_FOUND","DeviceActivationErrorsForwardLinks","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_CHANNELDATABASECONNECTIONFAILED","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_REALTIMESERVICECONNECTIONFAILED","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_TERMINALNOTASSIGNEDTOSTORE","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_USERNOTASSIGNEDTOSTORE","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_INCORRECTSTAFFIDORPASSWORD","MICROSOFT_DYNAMICS_COMMERCE_RUNTIME_DEVICEALREADYACTIVATED","ErrorHelper","errorResourceId","AGGREGATED_ERROR_RESOUCEIDS","numErrors","isRetryable","errorResourceIds","formatNumberWidth","append","parseTimeRE","parseDateTimeRE","parseDateTimeOffset","withOffset","nullOnError","parts","exec","offset","timezone","year","ms","ns","substring","hours","minutes","seconds","direction","d","m","parseTimezone","setUTCFullYear","setUTCHours","isNaN","valueOf","__edmType","__offset","__ns","jsonLightReadStringPropertyValue","propertyType","recognizeDates","EDM","propertyValue","toLowerCase","duration","years","months","days","parseDuration","dateStr","time","timezoneOffsetIndex","isOboRequest","catalogsQuery","createProductCatalogAsync","createGetCatalogsInput","activeOnly","categoriesQuery","createCategoryAsync","createGetCategoriesInput","getCategoriesAsync","createGetAttributesInput","getAttributesAsync","createGetCatalogAttributesInput","categoryIds","getCatalogAttributesAsync","createGetChildrenInput","getChildrenAsync","ErrorParser","isObo","handled","redirectUrl","statusText","redirectCountQueryString","noRedirectQueryString","currentUrl","URL","location","href","searchParams","rdc","parseError","responseText","jsonResponse","parse","ErrorResourceId","Message","MapResponseStatusCodeToError","ex","errorResponse","commerceErrors","odataError","localizedMessage","LocalizedMessage","exceptionType","convertExceptionToErrors","serverException","DataValidationExceptionType","CartValidationExceptionType","dataValidation","getErrorsFromDataValidationFailures","ValidationResults","StorageExceptionType","commerceException","failures","failure","ErrorContext","contentType","bodyString","Exception","parseJSONError","normalHeaders","accept","normalizeHeaders","lowerName","normalName","val","defaultHttpClient","callbackParameterName","formatQueryString","enableJsonpCallback","success","clientTimeout","abort","handleTimeout","cancelToken","axios","source","done","cancel","url","isAbsoluteUrl","authenticationCreds","username","password","axiosTimeout","timeoutMS","___initialData___","_initialData$_clientP","_initialData$_clientP2","initialData","rTypeLowerCase","getCacheObjectValueFromReturnType","clientTimeoutMap","_clientPlatformSetting","clientTimeoutMapInMs","pageInsightsData","Request","Headers","Method","Body","Response","StatusText","StatusCode","auth","timeout","axiosResponse","_callerContext$reques","insightsKey","insightsData","axiosError","_callerContext$reques2","ODataHttpRequest","useJsonLight","inferJsonLightFeedAsObject","prepareRequest","Accept","write","maxDataServiceVersion","jsonHandler","invokeRequest","httpClient","jsonMediaType","ODATA_VERSION","ODATA_MAX_VERSION","str","contentTypeParts","split","properties","len","contentTypeParams","mediaType","jsonContentType","createReadWriteContext","contentTypeStr","dataServiceVersion","rwContext","versionRE","getDataServiceVersion","headerVersion","matches","handlerWrite","cType","CONTENT_TYPE_HEADER_NAME","writeContext","maxVersion","left","right","leftParts","rightParts","leftVersion","rightVersion","ContentType","contentTypeObj","property","contentTypeToString","handlerRead","recommendationsQuery","getElementsAsync","recommendationCriteria","createGetElementsInput","salesOrdersQuery","createSalesOrderAsync","salesOrderSearchCriteria","createSearchSalesTransactionsByReceiptIdInput","searchSalesTransactionsByReceiptIdAsync","createSearchOrdersInput","orderSearchCriteria","searchOrdersAsync","createGetFulfillmentLinesInput","fulfillmentLineSearchCriteria","getFulfillmentLinesAsync","createGetReceiptsInput","customerOrderType","getReceiptsAsync","createSendReceiptInput","recipientAddresses","sendReceiptAsync","createGetGiftReceiptsInput","salesLineNumbers","SalesLineNumbers","getGiftReceiptsAsync","createGetByReceiptIdInput","orderStoreNumber","orderTerminalId","getByReceiptIdAsync","createGetSalesOrderDetailsByTransactionIdInput","getSalesOrderDetailsByTransactionIdAsync","createGetSalesOrderDetailsBySalesIdInput","getSalesOrderDetailsBySalesIdAsync","createGetOrderByChannelReferenceLookupCriteriaInput","channelReferenceLookupCriteria","getOrderByChannelReferenceLookupCriteriaAsync","createGetSalesOrderDetailsByQuotationIdInput","quotationId","getSalesOrderDetailsByQuotationIdAsync","createGetOrderOriginatorsInput","orderOriginatorSearchCriteria","getOrderOriginatorsAsync","createGetSalesOrdersByLookupCriteriaInput","salesOrdersLookupCriteria","getSalesOrdersByLookupCriteriaAsync","createShipFulfillmentLinesInput","shipFulfillmentLines","ShipFulfillmentLines","shipFulfillmentLinesAsync","createAcceptFulfillmentLinesInput","fulfillmentLineParameter","FulfillmentLineParameter","acceptFulfillmentLinesAsync","createPickFulfillmentLinesInput","pickFulfillmentLinesAsync","createPackFulfillmentLinesInput","packFulfillmentLinesAsync","createMarkFulfillmentLinesAsPackedInput","markFulfillmentLinesAsPackedAsync","createMarkAsPickedInput","markAsPickedAsync","createGetFulfillmentPickingListsInput","pickingListFulfillmentLine","getFulfillmentPickingListsAsync","createGetFulfillmentPackingSlipsInput","packFulfillmentLines","getFulfillmentPackingSlipsAsync","createGetFulfillmentPackingSlipsByIdInput","packingSlipId","PackingSlipId","getFulfillmentPackingSlipsByIdAsync","createRejectFulfillmentLinesInput","rejectFulfillmentLines","RejectFulfillmentLines","rejectFulfillmentLinesAsync","createGetInvoicesBySalesIdInput","getInvoicesBySalesIdAsync","createGetOrderInvoicesInput","getOrderInvoicesAsync","createGetInvoicesInput","invoiceSearchCriteria","getInvoicesAsync","createGetInvoiceDetailsInput","invoiceDetailsSearchCriteria","getInvoiceDetailsAsync","createGetInvoicedSalesLinesBySalesIdsInput","salesIds","getInvoicedSalesLinesBySalesIdsAsync","createSearchInvoicedSalesLinesInput","invoicedSalesLinesSearchCriteria","searchInvoicedSalesLinesAsync","createCreatePickingListInput","createPickingListAsync","createCreatePickingListForItemsInput","pickAndPackSalesLineParameters","createPickingListForItemsAsync","createGetPickingListsInput","getPickingListsAsync","createCreatePackingSlipInput","createPackingSlipAsync","createGetFulfillmentLineUserAlertsInput","fulfillmentOperation","FulfillmentOperation","getFulfillmentLineUserAlertsAsync","createCheckInForOrderPickupInput","channelReferenceId","checkInForOrderPickupAsync","createUpdateConfirmedShipDateInput","confirmedShipDateChange","updateConfirmedShipDateAsync","createRequestCancellationInput","requestCancellationAsync","createConfirmInput","confirmAsync","createGetPackingSlipsDataInput","getPackingSlipsDataAsync","tryToString","$TypeError","TypeError","O","P","GET","POST","ODATA_TOTAL_COUNT_PROPERTY","serverWorkerNotUpdated","DEFAULT_HEADER","Prefer","OBO_REQUEST","GET_ACCOUNT_SELECTION_COOKIE","fetchCommerceModels","isServiceWorkerSupportedOnClient","navigator","parseOdataResult","resultType","serviceWorker","Models","skipSerializationFromSW","shouldSkipSerializationFromSW","enable_service_worker","disableRetailProxySW","console","ready","initServerWorker","getSerializedResponseFromServiceWorker","resultSet","hasNextPage","timerId","dynamicImportPromise","serializePromise","messageChannel","MessageChannel","port1","onmessage","serializedData","clearTimeout","active","postMessage","payload","port2","_actionId","getDataCacheType","_clientTimeoutInMs","recurseEverything","_hasOperationName","_method","getActionIdFromInput","entityIdentifier","Key","buildCacheFromInput","_callerContext","baseUrl","queryParams","batchRequestUri","requests","odataBatchRequest","__batchRequests","batchRequests","changeRequests","_id","odataRequest","_requestUri","toJson","__changeRequests","parent","modifyDataInPlace","clone","arrayToJson","toDateTimeOffset","dateTime","pad","sign","getTimezoneOffset","Math","abs","floor","formattedKey","parameter","paramValue","encodeURIComponent","parameterSeparator","cacheKeyValue","oun","getRequestUri","buildQueryHeader","loadPage","getAllPages","executeBatch","buildBatchRequest","responses","parseBatchResponses","__batchResponses","Errors","parseErrorMessage","formatKey","formatFunctionParameter","addParameter","orderByColumns","column","IsDescending","loadPageResults","concat","headerName","cookies","isOBORequest","accountSelectionCustomerId","accountSelectionCookie","accountSelectionCustomerIdParts","tokenName","tokenValue","accessToken","cookieData","appSessionCookie","userSessionCookie","_appSessionCookie$val","_userSessionCookie$va","otherOdata","setMetadata","odataList","newData","batchResponses","__changeResponses","scanResultsQuery","scannedText","ScannedText"],"sourceRoot":""}