import {z} from 'zod' export type BeezUPCommonMarketplaceTechnicalCode = string; export type BeezUPCommonMarketplaceBusinessCode = string; export type AccountId = number; export type BeezUPCommonStoreId = unknown; export type BeezUPOrderStatus = string; export type DateSearchType = 'Modification' | 'Purchase' | 'MarketPlaceModification'; export type InvoiceAvailabilityType = string; export type OrderBuyerName = string; export type MarketplaceOrderId = string; export type OrderMerchantInfoSynchronizationStatus = string; export type OrderMerchantOrderId = string; export type PageSize = number; export type PageNumber = number; export type OrderListRequest = {marketplaceTechnicalCodes?: Array | undefined, marketplaceBusinessCodes?: Array | undefined, accountIds?: Array | undefined, storeIds?: Array | undefined, beezUPOrderStatuses?: Array | undefined, dateSearchType?: DateSearchType | undefined, beginPeriodUtcDate: string, endPeriodUtcDate: string, invoiceAvailabilityType?: InvoiceAvailabilityType | undefined, order_Buyer_Name?: OrderBuyerName | undefined, marketplaceOrderIds?: Array | undefined, orderMerchantInfoSynchronizationStatus?: OrderMerchantInfoSynchronizationStatus | undefined, order_MerchantOrderIds?: Array | undefined, pageSize: PageSize, pageNumber: PageNumber}; export type CreateApiOrdersV3ListFullArgs = {'Accept-Encoding': string, body: OrderListRequest}; export type CreateApiOrdersV3ListFullOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined}; export const beezUPMarketplaceTechnicalCode = z.string(); export const beezUPMarketplaceAccountId = z.number().int(); export const beezUPOrderId = z.string(); export const httpUrl = z.string(); export const beezUPMarketplaceBusinessCode = z.string(); export const marketplaceOrderId = z.string(); export const beezUPOrderStatus = z.string(); export const marketplaceOrderStatus = z.string(); export const orderMerchantOrderId = z.string(); export const orderMerchantECommerceSoftwareName = z.string(); export const orderMerchantECommerceSoftwareVersion = z.string(); export const orderBuyerName = z.string(); export const currencyCode = z.string(); export const etag = z.string(); export const orderHarvestErrorValue = z.object({technicalCodePropertyName: z.string(), errorMessage: z.string()}); export const orderHarvestErrors = z.record(z.string(), orderHarvestErrorValue); export const orderItem = z.object({beezUPOrderItemId: z.string(), orderItem_Id: z.string().optional(), orderItem_OrderItemType: z.string(), orderItem_MerchantImportedProductId: z.string().optional(), orderItem_MerchantImportedProductIdColumnName: z.string().optional(), orderItem_MerchantImportedProductUrl: z.string().optional(), orderItem_MerchantProductIdColumnName: z.string().optional(), orderItem_BeezUPStoreId: z.string().optional(), orderItem_ItemTax: z.number().optional(), orderItem_Title: z.string().optional(), orderItem_ImageUrl: z.string().optional(), orderItem_MerchantProductId: z.string().optional(), orderItem_MarketPlaceProductId: z.string().optional(), orderItem_gtin: z.string().optional(), orderItem_ItemPrice: z.number().optional(), orderItem_Quantity: z.number().optional(), orderItem_TotalPrice: z.number().optional(), orderItem_Shipping_Price: z.number().optional(), orderItem_Condition: z.string().optional(), orderItem_MarketplaceProductUri: z.string().optional(), orderItem_MarketplaceImageUri: z.string().optional(), orderItem_OldTakeover: z.string().optional(), orderItem_RecollectedQuantity: z.string().optional(), orderItem_TotalPrice_ExclVat: z.number().optional(), orderItem_OrderLineStateReasonLabel: z.string().optional(), orderItem_OrderLineState: z.string().optional(), orderItem_MarketPlaceOrderItemId: z.string().optional(), orderItem_VatRate: z.number().optional(), orderItem_ShippingVatRate: z.number().optional(), orderItem_EcoContributions: z.number().optional(), orderItem_IsGift: z.boolean().optional(), orderItem_GiftMessageText: z.string().optional(), orderItem_GiftWrapLevel: z.string().optional(), orderItem_Delivery_PromisedAtMin: z.string().optional(), orderItem_Delivery_PromisedAtMax: z.string().optional(), orderItem_TaxModel: z.string().optional(), orderItem_PromotionDiscount: z.string().optional(), orderItem_Mpid: z.string().optional(), orderHarvestErrors: orderHarvestErrors.optional()}); export const docUrl = z.string(); export const href = z.string(); export const operationId = z.string(); export const httpMethod = z.enum(["GET", "POST", "PATCH", "DELETE", "PUT", "HEAD"]); export const parameterIn = z.enum(["path", "header", "query", "body", "file"]); export const lOVLink3 = z.object({href: z.string(), method: httpMethod.optional()}); export const validationPattern = z.string(); export const linkParameter3 = z.object({label: z.string().optional(), value: z.object({}).optional(), required: z.boolean().optional(), in: parameterIn, lovLink: lOVLink3.optional(), lovRequired: z.boolean().optional(), description: z.string().optional(), schema: z.string().optional(), pattern: validationPattern.optional(), properties: z.unknown()}); export const linkParameter3Types = z.record(z.string(), linkParameter3); export const successSummary = z.object({successCode: z.string().optional(), successMessage: z.string().optional(), successArguments: z.record(z.string(), z.string()).optional(), propertyName: z.string().optional(), propertyValue: z.string().optional(), objectName: z.string().optional()}); export const exceptionDetail = z.object({helpLink: z.string().optional(), message: z.string().optional(), stackTrace: z.string().optional(), type: z.string().optional()}); export const errorSummary = z.object({utcDate: z.string().optional(), errorGuid: z.string().optional(), errorCode: z.string().optional(), errorMessage: z.string().optional(), technicalErrorMessage: z.string().optional(), exceptionDetail: exceptionDetail.optional(), errorArguments: z.record(z.string(), z.string()).optional(), propertyName: z.string().optional(), propertyValue: z.string().optional(), objectName: z.string().optional(), source: z.string().optional()}); export const warningSummary = z.object({technicalErrorMessage: z.string().optional(), warningMessage: z.string().optional(), warningCode: z.string().optional(), warningArguments: z.record(z.string(), z.string()).optional()}); export const infoSummary = z.object({informationCode: z.string().optional(), informationMessage: z.string().optional(), informationArguments: z.record(z.string(), z.string()).optional(), propertyName: z.string().optional(), propertyValue: z.string().optional(), objectName: z.string().optional()}); export const infoSummaries = z.object({successes: z.array(successSummary).optional(), errors: z.array(errorSummary).optional(), warnings: z.array(warningSummary).optional(), informations: z.array(infoSummary).optional()}); export const linksGetOrderV3Link = z.object({label: z.string().optional(), docUrl: docUrl.optional(), description: z.string().optional(), href: href, operationId: operationId.optional(), method: httpMethod.optional(), parameters: linkParameter3Types.optional(), urlTemplated: z.boolean().optional(), allRequiredParamsProvided: z.boolean().optional(), allOptionalParamsProvided: z.boolean().optional(), info: infoSummaries.optional(), rel: z.string().optional()}); export const linksGetOrderHistoryV3Link = z.object({label: z.string().optional(), docUrl: docUrl.optional(), description: z.string().optional(), href: href, operationId: operationId.optional(), method: httpMethod.optional(), parameters: linkParameter3Types.optional(), urlTemplated: z.boolean().optional(), allRequiredParamsProvided: z.boolean().optional(), allOptionalParamsProvided: z.boolean().optional(), info: infoSummaries.optional(), rel: z.string().optional()}); export const linksHarvestOrderV3Link = z.object({label: z.string().optional(), docUrl: docUrl.optional(), description: z.string().optional(), href: href, operationId: operationId.optional(), method: httpMethod.optional(), parameters: linkParameter3Types.optional(), urlTemplated: z.boolean().optional(), allRequiredParamsProvided: z.boolean().optional(), allOptionalParamsProvided: z.boolean().optional(), info: infoSummaries.optional(), rel: z.string().optional()}); export const linksSetMerchantOrderInfoV3Link = z.object({label: z.string().optional(), docUrl: docUrl.optional(), description: z.string().optional(), href: href, operationId: operationId.optional(), method: httpMethod.optional(), parameters: linkParameter3Types.optional(), urlTemplated: z.boolean().optional(), allRequiredParamsProvided: z.boolean().optional(), allOptionalParamsProvided: z.boolean().optional(), info: infoSummaries.optional(), rel: z.string().optional()}); export const linksClearMerchantOrderInfoV3Link = z.object({label: z.string().optional(), docUrl: docUrl.optional(), description: z.string().optional(), href: href, operationId: operationId.optional(), method: httpMethod.optional(), parameters: linkParameter3Types.optional(), urlTemplated: z.boolean().optional(), allRequiredParamsProvided: z.boolean().optional(), allOptionalParamsProvided: z.boolean().optional(), info: infoSummaries.optional(), rel: z.string().optional()}); export const orderLinks = z.object({self: linksGetOrderV3Link, history: linksGetOrderHistoryV3Link, harvest: linksHarvestOrderV3Link, setMerchantInfo: linksSetMerchantOrderInfoV3Link, clearMerchantInfo: linksClearMerchantOrderInfoV3Link}); export const linksChangeOrderV3Link = z.object({label: z.string().optional(), docUrl: docUrl.optional(), description: z.string().optional(), href: href, operationId: operationId.optional(), method: httpMethod.optional(), parameters: linkParameter3Types.optional(), urlTemplated: z.boolean().optional(), allRequiredParamsProvided: z.boolean().optional(), allOptionalParamsProvided: z.boolean().optional(), info: infoSummaries.optional(), rel: z.string().optional()}); export const orderTransitionLinks = z.array(linksChangeOrderV3Link); export const orderWithLinks = z.object({marketplaceTechnicalCode: beezUPMarketplaceTechnicalCode, accountId: beezUPMarketplaceAccountId, beezUPOrderId: beezUPOrderId, beezUPOrderUrl: httpUrl.optional(), marketplaceBusinessCode: beezUPMarketplaceBusinessCode, order_MarketplaceOrderId: marketplaceOrderId, order_Status_BeezUPOrderStatus: beezUPOrderStatus, order_Status_MarketplaceOrderStatus: marketplaceOrderStatus.optional(), order_MerchantOrderId: orderMerchantOrderId.optional(), order_MerchantECommerceSoftwareName: orderMerchantECommerceSoftwareName.optional(), order_MerchantECommerceSoftwareVersion: orderMerchantECommerceSoftwareVersion.optional(), order_PurchaseUtcDate: z.string(), order_LastModificationUtcDate: z.string(), order_MarketplaceLastModificationUtcDate: z.string(), order_Buyer_Name: orderBuyerName.optional(), order_TotalPrice: z.number().optional(), order_CurrencyCode: currencyCode.optional(), order_Invoice_Number: z.string().optional(), order_Invoice_Uri: z.string().optional(), processing: z.boolean(), etag: etag, orderHarvestErrors: orderHarvestErrors.optional(), order_MarketPlaceChannel: z.string().optional(), order_TotalTax: z.number().optional(), order_TotalCommission: z.number().optional(), order_PaymentMethod: z.string().optional(), order_PayingUtcDate: z.string().optional(), order_Comment: z.string().optional(), order_RelayId: z.string().optional(), order_StatusReasonCode: z.string().optional(), order_Shipping_FirstName: z.string().optional(), order_Shipping_LastName: z.string().optional(), order_Shipping_Civility: z.string().optional(), order_Shipping_CompanyName: z.string().optional(), order_Shipping_AddressName: z.string().optional(), order_Shipping_Email: z.string().optional(), order_Shipping_AddressLine1: z.string().optional(), order_Shipping_AddressLine2: z.string().optional(), order_Shipping_AddressLine3: z.string().optional(), order_Shipping_AddressPostalCode: z.string().optional(), order_Shipping_AddressCity: z.string().optional(), order_Shipping_AddressStateOrRegion: z.string().optional(), order_Shipping_AddressCountryName: z.string().optional(), order_Shipping_AddressCountryIsoCodeAlpha2: z.string().optional(), order_Shipping_Phone: z.string().optional(), order_Shipping_MobilePhone: z.string().optional(), order_Shipping_Price: z.number().optional(), order_Shipping_Method: z.string().optional(), order_Shipping_ShippingTax: z.number().optional(), order_Shipping_EarliestShipUtcDate: z.string().optional(), order_Shipping_LatestShipUtcDate: z.string().optional(), order_Buyer_Identifier: z.string().optional(), order_Buyer_FirstName: z.string().optional(), order_Buyer_LastName: z.string().optional(), order_Buyer_Civility: z.string().optional(), order_Buyer_CompanyName: z.string().optional(), order_Buyer_Email: z.string().optional(), order_Buyer_AddressLine1: z.string().optional(), order_Buyer_AddressLine2: z.string().optional(), order_Buyer_AddressLine3: z.string().optional(), order_Buyer_AddressPostalCode: z.string().optional(), order_Buyer_AddressCity: z.string().optional(), order_Buyer_AddressStateOrRegion: z.string().optional(), order_Buyer_AddressCountryName: z.string().optional(), order_Buyer_AddressCountryIsoCodeAlpha2: z.string().optional(), order_Buyer_Phone: z.string().optional(), order_Buyer_MobilePhone: z.string().optional(), order_IsPrime: z.boolean().optional(), order_FulfilledBy: z.string().optional(), order_IsBusiness: z.boolean().optional(), order_ChannelOrderId: z.string().optional(), order_AdditionalOrderId: z.string().optional(), order_SellerContractId: z.string().optional(), order_Shipping_Deadline: z.string().optional(), order_Total_Discount: z.number().optional(), order_Total_AdditionalFees: z.number().optional(), order_EarliestDeliveryDate: z.string().optional(), order_LatestDeliveryDate: z.string().optional(), order_TotalPrice_ExclVat: z.number().optional(), order_HasIncident: z.boolean().optional(), order_PaymentMethodDetails: z.string().optional(), order_Shipping_ShipmentServiceLevelCategory: z.string().optional(), order_Shipping_RefundAmount: z.string().optional(), order_PurchaseOrderNumber: z.string().optional(), order_Shipping_Label: z.string().optional(), order_IsAmazonInvoiced: z.string().optional(), order_Carriers: z.string().optional(), order_Buyer_CompanyVATNumber: z.string().optional(), order_PromotionDiscount_Amount: z.string().optional(), order_OrderSourceUri: z.string().optional(), order_OrderItemsSourceUri: z.string().optional(), orderItems: z.array(orderItem), links: orderLinks, transitionLinks: orderTransitionLinks}); export const linksHarvestAllV3Link = z.object({label: z.string().optional(), docUrl: docUrl.optional(), description: z.string().optional(), href: href, operationId: operationId.optional(), method: httpMethod.optional(), parameters: linkParameter3Types.optional(), urlTemplated: z.boolean().optional(), allRequiredParamsProvided: z.boolean().optional(), allOptionalParamsProvided: z.boolean().optional(), info: infoSummaries.optional(), rel: z.string().optional()}); export const linksSetMerchantOrderInfoListV3Link = z.object({label: z.string().optional(), docUrl: docUrl.optional(), description: z.string().optional(), href: href, operationId: operationId.optional(), method: httpMethod.optional(), parameters: linkParameter3Types.optional(), urlTemplated: z.boolean().optional(), allRequiredParamsProvided: z.boolean().optional(), allOptionalParamsProvided: z.boolean().optional(), info: infoSummaries.optional(), rel: z.string().optional()}); export const linksClearMerchantOrderInfoListV3Link = z.object({label: z.string().optional(), docUrl: docUrl.optional(), description: z.string().optional(), href: href, operationId: operationId.optional(), method: httpMethod.optional(), parameters: linkParameter3Types.optional(), urlTemplated: z.boolean().optional(), allRequiredParamsProvided: z.boolean().optional(), allOptionalParamsProvided: z.boolean().optional(), info: infoSummaries.optional(), rel: z.string().optional()}); export const linksGetMarketplaceAccountsSynchronizationV3Link = z.object({label: z.string().optional(), docUrl: docUrl.optional(), description: z.string().optional(), href: href, operationId: operationId.optional(), method: httpMethod.optional(), parameters: linkParameter3Types.optional(), urlTemplated: z.boolean().optional(), allRequiredParamsProvided: z.boolean().optional(), allOptionalParamsProvided: z.boolean().optional(), info: infoSummaries.optional(), rel: z.string().optional()}); export const linksGetOrderListFullV3Link = z.object({label: z.string().optional(), docUrl: docUrl.optional(), description: z.string().optional(), href: href, operationId: operationId.optional(), method: httpMethod.optional(), parameters: linkParameter3Types.optional(), urlTemplated: z.boolean().optional(), allRequiredParamsProvided: z.boolean().optional(), allOptionalParamsProvided: z.boolean().optional(), info: infoSummaries.optional(), rel: z.string().optional()}); export const orderListFullLinks = z.object({harvest: linksHarvestAllV3Link, setMerchantInfos: linksSetMerchantOrderInfoListV3Link, clearMerchantInfos: linksClearMerchantOrderInfoListV3Link, status: linksGetMarketplaceAccountsSynchronizationV3Link, self: linksGetOrderListFullV3Link}); export const link3 = z.object({label: z.string().optional(), docUrl: docUrl.optional(), description: z.string().optional(), href: href, operationId: operationId.optional(), method: httpMethod.optional(), parameters: linkParameter3Types.optional(), urlTemplated: z.boolean().optional(), allRequiredParamsProvided: z.boolean().optional(), allOptionalParamsProvided: z.boolean().optional(), info: infoSummaries.optional(), rel: z.string().optional()}); export const paginationResultLinks = z.object({first: link3, last: link3, previous: link3.optional(), next: link3.optional()}); export const paginationResult = z.object({entryCount: z.number().int().gte(0), pageCount: z.number().int().gte(0), totalEntryCount: z.number().int().gte(0), links: paginationResultLinks}); export const orderListFullWithLinks = z.object({orders: z.array(orderWithLinks), links: orderListFullLinks, paginationResult: paginationResult}); export const validateResponse = async ( schema: { readonly '~standard': { readonly validate: (value: unknown) => ({ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }) | Promise<{ readonly value: Output; readonly issues?: undefined } | { readonly issues: ReadonlyArray<{ readonly message: string; readonly path?: ReadonlyArray | undefined }> }> } }, value: unknown ): Promise => { const result = await schema['~standard'].validate(value) if (result.issues !== undefined) { const detail = result.issues .map(({ message, path }) => path?.length ? `${path.map((segment) => String(typeof segment === 'object' ? segment.key : segment)).join('.')}: ${message}` : message ) .join('; ') throw new Error(`Response does not match the schema: ${detail}`, { cause: { issues: result.issues } }) } return result.value }; /** * Get a paginated list of all Orders with all Order and Order Item(s) properties * * POST /orders/v3//list/full */ export const createApiOrdersV3ListFull = async (args: CreateApiOrdersV3ListFullArgs, options?: CreateApiOrdersV3ListFullOptions) => { const {baseUrl = "https://api.beezup.com", fetch: fetchFn = fetch} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('content-type', "application/json") headers.set('accept', "application/json") if (args['Accept-Encoding'] != null) headers.set("Accept-Encoding", String(args['Accept-Encoding'])) const url = `${baseUrl.replace(/\/+$/, '')}/orders/v3//list/full${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "POST", headers, body: JSON.stringify(args.body)}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return validateResponse(orderListFullWithLinks, await res.json()) };