UNPKG

@springtree/eva-core

Version:
1,297 lines (1,138 loc) 35.4 kB
declare module EVA.Rituals { export namespace Errors { export namespace Rituals { export const ExportMailsToGoogleNotEnabled = 'Rituals:ExportMailsToGoogleNotEnabled'; export const DeliveryScheduleToClose = 'Rituals:DeliveryScheduleToClose'; export const NoVoucherProduct = 'Rituals:NoVoucherProduct'; export const AlreadyHaveVoucherProduct = 'Rituals:AlreadyHaveVoucherProduct'; } export namespace StockNotification { export const ProductNotFound = 'StockNotification:ProductNotFound'; } export namespace MeaningfulMoment { export const PendingOrder = 'MeaningfulMoment:PendingMeaningfulMomentOrder'; } export namespace CreateDemandwareOrders { export const CannotDeterminePickupStore = 'CreateDemandwareOrders:CannotDeterminePickupStore'; export const PickupStoreNotFound = 'CreateDemandwareOrders:PickupStoreNotFound'; export const CannotDetermineOrderOrigin = 'CreateDemandwareOrders:CannotDetermineOrderOrigin'; export const OpenAmountNotZero = 'CreateDemandwareOrders:OpenAmountNotZero'; export const CouldNotSetPickupStore = 'CreateDemandwareOrders:CouldNotSetPickupStore'; export const UnknownShippingMethod = 'CreateDemandwareOrders:UnknownShippingMethod'; } export namespace Arvato { export const UnknownBarcode = 'Arvato:UnknownBarcode'; export const UnknownProductInShipment = 'Arvato:UnknownProductInShipment'; } export namespace SOS { export const AddressEmpty = 'SOS:AddressEmpty'; export const NoCartDataSet = 'SOS:NoCartDataSet'; export const InvalidOrder = 'SOS:InvalidOrder'; export const InvalidPayment = 'SOS:InvalidPayment'; export const InvalidOrderData = 'SOS:InvalidOrderData'; } export namespace MeaningfulMoments { export const AmountTooLow = 'MeaningfulMoments:AmountTooLow'; } } export interface HerokuConfirmOrder { OrderID: number; ClientID: string; Text: string; } /** * Retrieves SOS customer data from specified order, as indicated with either a `SessionID` or `OrderID`, set through `RitualsSetCartData`. */ export interface RitualsGetCartData { SessionID?: string; OrderID: number; } export interface RitualsGetCartDataResponse { Data: SOSOrderData; Error: EVA.Core.ServiceError; } export interface SOSOrderData { ClientID: string; PlatformID: string; PlatformType: PlatformTypes; PaymentReminderSent: boolean; Data: { [key: string]: any }; } export const enum PlatformTypes { Facebook = 0, WhatsApp = 1 } /** * Retrieves currently known customer data, identified by a `Token` as generated by the `RitualsSendAddressFormLinkFromCart`/`RitualsSendPaazlLinkFromCart` service. */ export interface RitualsGetCustomerData { Token?: string; } export interface RitualsGetCustomerDataResponse { FirstName: string; LastName: string; EmailAddress: string; PhoneNumber: string; Gender: string; BillingAddress: EVA.Core.AddressDataDto; ShippingAddress: EVA.Core.AddressDataDto; CountryID: string; LanguageID: string; Data: SOSOrderData; Error: EVA.Core.ServiceError; } /** * Sends a link to a contact form to attach a SOS customer. * * The contact form is specified through the `Url` and will be appended with a `token` GET parameter to authorize the recipient to modify the attached * customer for the order. Specify the order using either a `SessionID` or `OrderID`, and attach a text to this link using the `Text` parameter. */ export interface RitualsSendAddressFormLinkFromCart { SessionID?: string; OrderID: number; Text?: string; Url?: string; } export interface SOSUrlResponse { Success: boolean; ErrorMessage: string; Message: string; Url: string; Error: EVA.Core.ServiceError; } /** * Attaches a customer to an order identified by a `Token`, as generated by the `RitualsSendAddressFormLinkFromCart`/`RitualsSendPaazlLinkFromCart` service. */ export interface RitualsAttachCustomerToOrder { Token?: string; FirstName?: string; LastName?: string; EmailAddress?: string; PhoneNumber?: string; Gender?: string; BillingAddress?: EVA.Core.AddressDataDto; ShippingAddress?: EVA.Core.AddressDataDto; GreetingCard?: string; } /** * Sends a carousel of products in the current cart, identified by either a `SessionID` or `OrderID`. Specify `OrderLineIDs` to indicate the lines to * send, or leave undefined to send all products. * * Requires SOS customer data to be set to the order (through `RitualsSetCartData`). */ export interface RitualsSendCarouselFromCart { SessionID?: string; OrderID: number; OrderLineIDs?: number[]; } /** * Sends a link to a Paazl form to attach a SOS customer. * * The Paazl form is specified through the `Url` and will be appended with a `token` GET parameter to authorize the recipient to modify the attached * customer for the order. Specify the order using either a `SessionID` or `OrderID`, and attach a text to this link using the `Text` parameter. */ export interface RitualsSendPaazlLinkFromCart { SessionID?: string; OrderID: number; Text?: string; Url?: string; } /** * Rituals wrapper around the `GetDeliveryOrderData` service, to support identification and authentication through a `Token`, as generated by the `RitualsSendAddressFormLinkFromCart`/`RitualsSendPaazlLinkFromCart` service. */ export interface RitualsGetDeliveryOrderData { Token?: string; } /** * Rituals wrapper around the `PaazlGetShippingOptionsForOrder` service, to support identification and authentication through a `Token`, as generated by the `RitualsSendAddressFormLinkFromCart`/`RitualsSendPaazlLinkFromCart` service. */ export interface RitualsPaazlGetShippingOptionsForOrder { Token?: string; ExtendedDeliveryDateDetails: boolean; } /** * Rituals wrapper around the `PaazlUpdateShippingOptionsForOrder` service, to support identification and authentication through a `Token`, as generated by the `RitualsSendAddressFormLinkFromCart`/`RitualsSendPaazlLinkFromCart` service. */ export interface RitualsPaazlUpdateShippingOptionsForOrder { Token?: string; ShippingOption?: EVA.Carrier.Paazl.PaazlShippingOption; } /** * Sends a payment link from the current cart, identified by either a `SessionID` or `OrderID`. Requires SOS customer data to be set to the order (through `RitualsSetCartData`). * * * When `Url` is left empty, a valid, pending payment with Adyen HPP is required. * * With the `Url` parameter specified, that exact link will be sent. * * This service will also queue a reminder message after X minutes, configured using the setting `Rituals:SOS:PaymentReminderMinutes`. */ export interface RitualsSendPaymentLinkFromCart { SessionID?: string; OrderID: number; Text?: string; Url?: string; } /** * Sends a receipt of the current cart, identified by either a `SessionID` or `OrderID`, optionally including specified `Text`. * * Requires SOS customer data to be set to the order (through `RitualsSetCartData`). */ export interface RitualsSendReceiptFromCart { SessionID?: string; OrderID: number; /** * @deprecated Use `IsSummary` instead */ ShowButtons: boolean; IsSummary: boolean; Text?: string; } /** * Attaches SOS customer data to specified order, as indicated with either a `SessionID` or `OrderID`. * * The Data object supports the following properties: * * * `ClientID`, to store the unique identifier for the customer on a platform * * `PlatformID`, to store the unique identifier of the platform channel * * `PlatformType`, to the which type this platform is (currently 0 = Facebook (Messenger), 1 = WhatsApp) * * `PaymentReminderSent`, a boolean flag indicating if a reminder was sent already (to prevent multiple, EVA will manage this for you) * * `Data`, a free dictionary for any other data you may wanna store */ export interface RitualsSetCartData { SessionID?: string; OrderID: number; Data?: SOSOrderData; } export interface RitualsCreateCustomerReturn { OrderID: number; Email?: string; TargetOrderID: number; SessionID?: string; Lines: LineModel[]; } export interface LineModel { ID: number; QuantityToReturn: number; Reason: string; } export interface RitualsCreateCustomerReturnResponse { OrderID: number; Error: EVA.Core.ServiceError; } export interface RitualsGetBlobsForReturn { OrderID: number; Email?: string; } export interface RitualsGetBlobsForReturnResponse { Result: { Name: string; MimeType: string; BlobID?: string; Url: string; }[]; Error: EVA.Core.ServiceError; } export interface RitualsGetOrderForReturn { OrderID?: string; Email?: string; } export interface RitualsGetOrderForReturnResponse { Result: OrderModel; Error: EVA.Core.ServiceError; } export interface OrderModel { ID: number; Lines: OrderLineModel[]; CustomerID: number; CreationTime?: string; InvoiceNumbers: string[]; ReturnSets: OrderLinesReturnSet[]; } export interface OrderLineModel { ReturnableQuantity: number; IsReturnable: boolean; ID: number; Type: EVA.Core.OrderLineTypes; Description: string; ParentID: number; ProductID: number; ProductVariation: { [key: string]: string }; QuantityCancelled: number; QuantityOrdered: number; QuantityShipped: number; UnitPrice?: number; UnitPriceInTax?: number; TaxRate?: number; TotalAmount?: number; TotalAmountInTax?: number; CurrencyID: string; } export interface OrderLinesReturnSet { OrderLineIDs: number[]; RequiredOrderLineIDsToReturn: number[]; } /** * Get the Rituals user data. When logged in as employee, specify the `UserID` parameter. As customer you'll always get your own user data. */ export interface RitualsGetUserDataForUser { UserID: number; } export interface RitualsGetUserDataForUserResponse { ContactID: string; LoyaltyID: string; LoyaltyEnabled: boolean; CanRedeemWelcomeGift: boolean; Error: EVA.Core.ServiceError; } export interface RitualsListAvailablePickupStores { Products: Product[]; PageConfig?: EVA.Core.PageConfig; } export interface Product { Consumercode: string; Quantity: number; } export interface RitualsListAvailablePickupStoresResponse { Result: EVA.Core.PagedResult<{ ID: number; BackendID: string; Name: string; Address: EVA.Core.AddressDto; Latitude?: number; Longitude?: number; EmailAddress: string; PhoneNumber: string; EstimatedPickupTime?: string; TimeZone: string; MerchantID: string; OpeningHours: OpeningHour[]; DistanceInKm?: number; DistanceInMiles?: number; }>; Error: EVA.Core.ServiceError; } export interface OpeningHour { DayOfWeek: string; StartTime?: string; EndTime?: string; Date?: string; } /** * Testservice to push an Order to Google with a specific Status */ export interface RitualsPushOrderToGoogle { OrderID: number; Status?: string; } export interface RitualsRequestPrivacyRemoval { UserID: number; } export interface RitualsScanLoyaltyCard { LoyaltyID?: string; } export interface RitualsScanLoyaltyCardResponse { User: EVA.Core.UserDto; Error: EVA.Core.ServiceError; } /** * Updates the Rituals loyalty setting. When logged in as employee, specify the `UserID` parameter. As customer you'll always manage your own user setting. */ export interface RitualsUpdateLoyalty { UserID: number; Enabled: boolean; } export interface RitualsUpdateReturnOrder { OrderID: number; ReturnReasonCode?: string; ExpectedPickupDate?: string; Lines: { CustomID: string; Quantity: number; }[]; } /** * Creates a new order based on a meaningful moment. */ export interface CreateMeaningfulMomentOrder { MeaningfulMomentID: number; } /** * Creates a new meaningful moment. */ export interface CreateMeaningfulMoment { Date?: string; Reminder?: string; Type?: string; RecipientName?: string; RecipientEmailAddress?: string; Occasion?: string; ImageUrl?: string; IconUrl?: string; HeaderImageUrl?: string; FooterImageUrl?: string; RecurringYearly: boolean; } export interface CreateMeaningfulMomentResponse { /** * @deprecated This field is deprecated and should no longer be used. */ Success: boolean; ID: number; Error: EVA.Core.ServiceError; } export interface DeleteMeaningfulMoment { ID: number; } export interface GetMeaningfulMomentDetails { OrderID: number; } export interface GetMeaningfulMomentDetailsResponse { SenderFirstName: string; SenderLastName: string; RecipientName: string; Type: string; Occasion: string; ImageUrl: string; IconUrl: string; HeaderImageUrl: string; FooterImageUrl: string; Surprises: Surprise[]; Error: EVA.Core.ServiceError; } export interface Surprise { Type: string; } export interface GreetingCard { Text: string; CoverUrl: string; Type: string; } export interface Media { Title: string; CoverUrl: string; Url: string; Type: string; } export interface DigitalGiftCard { Theme: RitualsGiftCardTheme; GiftCardNumber: string; PIN: string; Amount?: number; CurrencyID: string; CoverUrl: string; WalletUrl: string; Type: string; } export interface RitualsGiftCardTheme { ID: string; Name: string; Description: string; LongDescription: string; ForegroundColor: string; BackgroundColor: string; ImageUrl: string; ImageWidth: number; ImageHeight: number; VideoUrl: string; StillUrl: string; } export interface GetMeaningfulMoment { ID: number; } export interface GetMeaningfulMomentResponse { Result: { ID: number; Date?: string; Reminder?: string; Type: string; RecipientName: string; RecipientEmailAddress: string; Occasion: string; ImageUrl: string; IconUrl: string; HeaderImageUrl: string; FooterImageUrl: string; RecurringYearly: boolean; }; Error: EVA.Core.ServiceError; } /** * List all of the meaningful moment orders that have been created by the currently logged in user. */ export interface ListMeaningfulMomentOrders { PageConfig?: EVA.Core.PageConfig<ListMeaningfulMomentOrdersFilter>; } export interface ListMeaningfulMomentOrdersFilter { CreatedByID: number; MeaningfulMomentID: number; IsPaid: boolean; IsPlaced: boolean; IsCompleted: boolean; } export interface ListMeaningfulMomentOrdersResponse { Result: EVA.Core.PagedResult<{ OrderID: number; CreationTime?: string; }>; Error: EVA.Core.ServiceError; } /** * List all of the meaningful moment that have been created by the currently logged in user. */ export interface ListMeaningfulMoments { PageConfig?: EVA.Core.PageConfig<ListMeaningfulMomentsFilter>; } export interface ListMeaningfulMomentsFilter { CreatedByID: number; StartTriggerDate?: string; EndTriggerDate?: string; ReminderDate?: string; } export interface ListMeaningfulMomentsResponse { Result: EVA.Core.PagedResult<{ ID: number; Date?: string; Reminder?: string; Type: string; RecipientName: string; RecipientEmailAddress: string; Occasion: string; ImageUrl: string; IconUrl: string; HeaderImageUrl: string; FooterImageUrl: string; RecurringYearly: boolean; }>; Error: EVA.Core.ServiceError; } export interface UpdateMeaningfulMoment { ID: number; Date?: string; Reminder?: string; Type?: string; RecipientName?: string; RecipientEmailAddress?: string; Occasion?: string; ImageUrl?: string; IconUrl?: string; HeaderImageUrl?: string; FooterImageUrl?: string; RecurringYearly: boolean; } /** * Returns all of the surprises that have been set on the meaningful moment order. */ export interface GetMeaningfulMomentSurprises { OrderID: number; } export interface GetMeaningfulMomentSurprisesResponse { Surprises: string[]; Error: EVA.Core.ServiceError; } export interface GetMeaningfulMomentGiftCard { OrderID: number; } export interface MeaningfulMomentGiftCardResponse { Amount?: number; Error: EVA.Core.ServiceError; } export interface GetMeaningfulMomentProductGiftCard { OrderID: number; } export interface SetMeaningfulMomentGiftCard { OrderID: number; Data: RitualsGiftCardData; Amount?: number; } export interface RitualsGiftCardData { Theme: RitualsGiftCardTheme; From: string; To: string; Text: string; FromEmailAddress: string; ToEmailAddress: string; DeliverySchedule?: string; UpdateUrl: string; UpdateToken: string; } export interface SetMeaningfulMomentProductGiftCard { OrderID: number; Data: RitualsGiftCardData; Amount?: number; } export interface GetMeaningfulMomentGreetingCard { OrderID: number; } export interface MeaningfulMomentGreetingCardResponse { ImageUrl: string; Text: string; Error: EVA.Core.ServiceError; } export interface SetMeaningfulMomentGreetingCard { OrderID: number; ImageUrl?: string; Text?: string; } export interface GetMeaningfulMomentMedia { OrderID: number; Type?: string; } export interface MeaningfulMomentMediaResponse { Type: string; Title: string; CoverUrl: string; MediaUrl: string; Error: EVA.Core.ServiceError; } export interface SetMeaningfulMomentMedia { OrderID: number; Type?: string; Title?: string; CoverUrl?: string; MediaUrl?: string; } /** * Backfills data for Rituals Google Cloud, by collecting data and sending it to you by mail. * * The following types of data are supported: * * * `SalesOrders` = 0 * * `PurchaseOrders` = 1 * * `Interbranch` = 2 * * `CycleCounts` = 3 * * The service accepts these properties: * * * `Type`: The type of data you want to collect (see above) * * `From` and `To`: The (inclusive) lower- and upper bound of data's `CreationTime` to backfill * * `Limit`: The maximum amount of orders overall to backfill (optional, when left empty, all data is collected) * * `Batch`: The maximum amount of orders to include in a single download file (optional, when left empty, all data will come in a single download) * * `Expire`: The amount of hours the download links are valid for (optional, defaults to 24 hours) * * `Preview`: Default false, but when set to true, no messages will be queued and no emails will be sent * * As confirmation, this service will return the amount of data objects it will process, and the email address they will be sent to once complete. * * :bath: This process may take a while! */ export interface GoogleBackfill { Type: GoogleBackfillTypes; From?: string; To?: string; Limit: number; Batch: number; Expire: number; Preview: boolean; } export const enum GoogleBackfillTypes { SalesOrders = 0, PurchaseOrders = 1, Interbranch = 2, CycleCounts = 3 } export interface GoogleBackfillResponse { EmailAddress: string; Count: number; Error: EVA.Core.ServiceError; } /** * A specific implementation for `AddProductToOrder` for GiftCards. Adds a new order line for a digital GiftCard to specified order, where * `SessionID` identifies the current session or order for the customer and `Amount` is the desired amount to create a GiftCard for. * * Additionally, the `Data` property need to be supplied; * * * `From` and `To` are the names of the sender and recipient of this gift, respectively * * `Text` is an additional text to be included on the GiftCard and presented to the recipient (optional) * * `Theme` is an object describing the theme, style or 'ritual' desired for this GiftCard; * * `ID` is a string identifying this theme * * `Name` is it's name, for display * * `Description` and `LongDescription` to describe the theme * * `BackgroundColor` and `ForegroundColor` allow setting colors to the giftcard * * `ImageUrl`, `ImageWidth` and `ImageHeight` describe the image used */ export interface RitualsAddGiftCardToOrder { SessionID?: string; OrderID: number; Amount?: number; Data: RitualsGiftCardData; } /** * Download the GiftCard data for a specific order, based on given `OrderID` and `GiftCardID`. This order needs to be visible for the current user. Requires * the order to be shipped (automatically when it is fully paid). * * Additionally, this service can be called with an `AccessToken` and `GiftCardID` combination. In this case, no user validation is done - you know both * keys to the GiftCard, so you are allowed to get it's information. * * If you want, you can specify a `LanguageID` to use for rendering the report - when omitted, the `LanguageID` of the current user. * * See `RitualsGetGiftCardForOrder` service for more details. */ export interface RitualsDownloadGiftCard { OrderID: number; AccessToken?: string; GiftCardID?: string; LanguageID?: string; } /** * Generates a Apple Passbook compatible .pkpass file which is stored in Blob storage */ export interface RitualsGeneratePassbookPass { OrderID: number; AccessToken?: string; GiftCardID?: string; } /** * Retrieve the GiftCard data for a specific order, based on given `OrderID`. This order needs to be visible for the current user. * * Will return a list of `GiftCard` data, for every orderline with a GiftCard. Will return the same data supplied in the `RitualsAddGiftCardToOrder` * service; `Theme`, `From`, `To` and `Text`. When the order was shipped (automatically when it is fully paid), the details `GiftCardNumber` and * `Pin` are also included. An additional property `IsAvailable` let's you check if it was indeed shipped and paid. * * The `GiftCardID` returned on the GiftCard is it's unique identifier, to be used in conjunction with the `AccessToken` to make it globally * unique. Using the `AccessToken` and `GiftCardID`, we are pretty sure you are allowed to see the GiftCard data. Use this data to build the link * to share directly, or use the approperiate services to mail/text/print this. * * Additionally, this service can be called with an `AccessToken` and `GiftCardID` combination, as explained above. In this case, no user validation * is done - you know both keys to the GiftCard, so you are allowed to get it's information. */ export interface RitualsGetGiftCardForOrder { OrderID: number; AccessToken?: string; GiftCardID?: string; } export interface RitualsGetGiftCardForOrderResponse { Result: RitualsGiftCard[]; Error: EVA.Core.ServiceError; } export interface RitualsGiftCard { IsAvailable: boolean; Amount?: number; CurrencyID: string; Identifiers: RitualsGiftCardIdentifiers; Data: RitualsGiftCardData; Details: RitualsGiftCardDetails; } export interface RitualsGiftCardIdentifiers { OrderID: number; OrderLineID: number; AccessToken: string; GiftCardID: string; } export interface RitualsGiftCardDetails { GiftCardNumber: string; PIN: string; } /** * Sends the GiftCard information identified by the `OrderID` and `GiftCardID` to specified `ToEmailAddress`, with `FromEmailAddress` as sender. * * Optionally, you can schedule this email for a specific moment; use `DeliverySchedule` to plan this delivery. It is recommended to supply a * way to reschedule this delivery through supplying a `UpdateUrl`, in case of a break-up or something like that. * * :e-mail: Note: the recipient will be able to see all GiftCard data! */ export interface RitualsSendGiftCardByMail { OrderID: number; GiftCardID: string; FromEmailAddress: string; ToEmailAddress: string; DeliverySchedule?: string; UpdateUrl?: string; } export interface RitualsSendGiftCardByMailResponse { Token: string; Error: EVA.Core.ServiceError; } /** * Gets the GiftCard mail information identified by the `OrderID` and `GiftCardID`. */ export interface RitualsGetGiftCardMailOptions { OrderID: number; GiftCardID: string; AccessToken?: string; } export interface RitualsGetGiftCardMailOptionsResponse { FromEmailAddress: string; ToEmailAddress: string; DeliverySchedule?: string; CanBeUpdated: boolean; Error: EVA.Core.ServiceError; } /** * Sets the new mail values for the GiftCard identified by the `OrderID` and `GiftCardID`. */ export interface RitualsUpdateGiftCardMailOptions { OrderID: number; GiftCardID: string; FromEmailAddress: string; ToEmailAddress: string; DeliverySchedule?: string; AccessToken?: string; } export interface CreateDemandwareOrders { Orders?: DemandwareOrders; } export interface DemandwareOrders { Order: Order[]; } export interface Order { Orderdate: string; Createdby: string; Originalorderno: string; Currency: string; Customerlocale: string; Taxation: string; Invoiceno: string; Customer: Customer; Status: Status; Currentorderno: string; Productlineitems: Productlineitems; Shippinglineitems: Shippinglineitems; Shipments: Shipments; Totals: Totals; Payments: Payments; Notes: Notes; Customattributes: Customattributes; Orderno: string; } export interface Customer { CustomerNo: string; Customername: string; Customeremail: string; Billingaddress: Billingaddress; } export interface Billingaddress { Salutation: string; Firstname: string; Secondname: string; Lastname: string; Companyname: string; Address1: string; Address2: string; City: string; Postalcode: string; Statecode: string; Countrycode: string; Phone: string; Customattributes: Customattributes; } export interface Customattributes { Customattribute: Customattribute[]; } export interface Customattribute { Attributeid: string; Text: string; } export interface Status { Orderstatus: string; Shippingstatus: string; Confirmationstatus: string; Paymentstatus: string; } export interface Productlineitems { Productlineitem: Productlineitem[]; } export interface Productlineitem { Netprice: string; Tax: string; Grossprice: string; Baseprice: string; Lineitemtext: string; Taxbasis: string; Position: string; Productid: string; Productname: string; Quantity: Quantity; Taxrate: string; Shipmentid: string; Options: Optionlineitems; BundledProductLines: BundledProductLineItems; Gift: string; GiftMessage: string; Customattributes: Customattributes; Priceadjustments: Priceadjustments; } export interface Quantity { Unit: string; Text: string; } export interface Optionlineitems { Items: OptionLineItem[]; } export interface OptionLineItem { Netprice: string; Tax: string; Grossprice: string; Baseprice: string; Lineitemtext: string; Taxbasis: string; OptionId: string; ValueId: string; ProductId: string; Customattributes: Customattributes; } export interface BundledProductLineItems { BundledProductLine: BundledProductLineItem[]; } export interface BundledProductLineItem { Netprice: string; Tax: string; Grossprice: string; Baseprice: string; Lineitemtext: string; Taxbasis: string; Position: string; Productid: string; Productname: string; Quantity: Quantity; Taxrate: string; Shipmentid: string; Options: Optionlineitems; BundledProductLines: BundledProductLineItems; Gift: string; GiftMessage: string; Customattributes: Customattributes; Priceadjustments: Priceadjustments; } export interface Priceadjustments { Priceadjustment: Priceadjustment[]; } export interface Priceadjustment { Netprice: string; Tax: string; Grossprice: string; Baseprice: string; Lineitemtext: string; Taxbasis: string; Promotionid: string; Campaignid: string; Customattributes: Customattributes; } export interface Shippinglineitems { Shippinglineitem: Shippinglineitem[]; } export interface Shippinglineitem { Netprice: string; Tax: string; Grossprice: string; Baseprice: string; Lineitemtext: string; Taxbasis: string; Itemid: string; Shipmentid: string; Taxrate: string; Priceadjustments: Priceadjustments; } export interface Shipments { Shipment: Shipment[]; } export interface Shipment { Status: Status; Shippingmethod: string; Shippingaddress: Shippingaddress; Gift: string; GiftMessage: string; Totals: Totals; Shipmentid: string; } export interface Shippingaddress { Salutation: string; Firstname: string; Secondname: string; Lastname: string; Companyname: string; Address1: string; Address2: string; City: string; Postalcode: string; Statecode: string; Countrycode: string; Phone: string; Customattributes: Customattributes; } export interface Totals { Merchandizetotal: Merchandizetotal; Adjustedmerchandizetotal: Adjustedmerchandizetotal; Shippingtotal: Shippingtotal; Adjustedshippingtotal: Adjustedshippingtotal; Shipmenttotal: Shipmenttotal; Ordertotal: Ordertotal; } export interface Merchandizetotal { Netprice: string; Tax: string; Grossprice: string; Priceadjustments: Priceadjustments; } export interface Adjustedmerchandizetotal { Netprice: string; Tax: string; Grossprice: string; } export interface Shippingtotal { Netprice: string; Tax: string; Grossprice: string; Priceadjustments: Priceadjustments; } export interface Adjustedshippingtotal { Netprice: string; Tax: string; Grossprice: string; } export interface Shipmenttotal { Netprice: string; Tax: string; Grossprice: string; } export interface Ordertotal { Netprice: string; Tax: string; Grossprice: string; } export interface Payments { Payment: Payment[]; } export interface Payment { Custommethod: Custommethod; Amount: string; Processorid: string; Transactionid: string; } export interface Custommethod { Methodname: string; } export interface Notes { Note: Note[]; } export interface Note { Subject: string; Text: string; } export interface CreateDemandwareOrdersResponse { OrderSets: OrderSetsModel; Error: EVA.Core.ServiceError; } export interface OrderSetsModel { OrderSet: OrderSetModel[]; } export interface OrderSetModel { EVAOrderID: number; DemandwareOrderNo: string; } /** * Retrieves a list of stores the current user has the `ViewReports` rights for, nested in a Rituals-specific tree for use in the BI app. The response contains * one root node, from which you can traverse its Children (and its Children.Children, and its... you get it). * * From outside in, these are the types you will *always* find: `Root` (5), `Country` (4), `Region` (3), `City` (2) and `Shop` (1). * * Note that when a user does not have rights on a specific level (e.g. you may see a Region, but not the Country above), this node will have ID `-1` * and Name `Unknown`. Needless to point out, but note you cannot use the ID `-1` as a value for the `GetData` service `OrganizationUnitID` parameter. */ export interface RitualsBIGetStoresForUser { } export interface RitualsBIGetStoresForUserResponse { Root: OrganizationUnit; Error: EVA.Core.ServiceError; } export interface OrganizationUnit { ID: number; Name: string; TypeID: Type; ViewReports: boolean; Children: OrganizationUnit[]; } export const enum Type { None = 0, Shop = 1, City = 2, Region = 3, Country = 4, Root = 5 } export interface ArvatoCreatePurchaseOrderReceipt { BackendOrderID?: string; PurchaseOrderLines?: ArvatoCreatePurchaseOrderReceiptLine[]; } export interface ArvatoCreatePurchaseOrderReceiptLine { BackendPurchaseOrderLineID: string; Receipts: ArvatoCreatePurchaseOrderReceiptLineReceipt[]; } export interface ArvatoCreatePurchaseOrderReceiptLineReceipt { QuantityReceived: number; StockLocationID: string; } export interface ArvatoCreateStockMutation { WarehouseID?: string; Mutations?: ArvatoStockMutation[]; } export interface ArvatoStockMutation { EAN: string; Quantity: number; Type: string; SourceStorageLocation: string; DestinationStorageLocation: string; } export interface ArvatoShipmentReceiptConfirmation { WarehouseID?: string; BackendID?: string; Lines: { QuantityReceived: number; EAN: string; }[]; } export interface ArvatoShipOrder { ShippingConfirmations?: ArvatoShipOrderConfirmation[]; } export interface ArvatoShipOrderConfirmation { WarehouseID: string; EvaOrderID: number; BackendOrderLineID: string; DeliveryNumber: string; DateShipped?: string; Packages: ArvatoShipOrderPackage[]; } export interface ArvatoShipOrderPackage { TrackingCode: string; TrackingUrl: string; CarrierCode: string; OrderLines: ArvatoShipOrderPackageOrderLine[]; } export interface ArvatoShipOrderPackageOrderLine { EvaOrderLineID: number; BackendOrderLineID: string; QuantityShipped: number; SerialNumber: string; } /** * Invoked by Arvato to notify EVA about shipment updates of the order. */ export interface ArvatoUpdateOrder { EvaOrderID: number; OrderLines?: ArvatoUpdateOrderLine[]; } export interface ArvatoUpdateOrderLine { EvaOrderLineID: number; IsCancelled: boolean; IsPicked: boolean; IsPacked: boolean; Reason: string; } export interface ArvatoCreateShipmentStatus { Items?: Item[]; } export interface Item { OrderID: string; CurrentStatus: Status; } export interface Status { Date?: string; CarrierCode: string; Description: string; } export interface ArvatoUpdateStock { WarehouseID?: string; Stock?: ArvatoUpdateStockLine[]; } export interface ArvatoUpdateStockLine { EAN: string; QuantityAvailable: number; } }