@springtree/eva-core
Version:
The EVA core typings
1,297 lines (1,138 loc) • 35.4 kB
TypeScript
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;
}
}