medusa-plugin-abandoned-cart
Version:
Medusa plugin for abandoned cart tracking and recovery
72 lines (71 loc) • 1.83 kB
TypeScript
import { LineItem } from "@medusajs/medusa";
export interface BasePluginOptions {
sendgridEnabled: boolean;
from: {
name?: string;
email: string;
} | string;
templateId: string;
header?: string;
days_to_track?: number;
subject?: string;
localization?: {
[key: string]: {
subject?: string;
header?: string;
templateId: string;
};
};
}
export interface IntervalOptions {
interval: string | number;
subject?: string;
header?: string;
templateId?: string;
localization?: {
[key: string]: {
subject?: string;
header?: string;
templateId: string;
};
};
}
export interface AutomatedAbandonedCart extends BasePluginOptions {
intervals: Array<IntervalOptions>;
max_overdue: string;
set_as_completed_if_overdue: boolean;
}
export interface ManualAbandonedCart extends BasePluginOptions {
localization: {
[key: string]: {
subject?: string;
header?: string;
templateId: string;
};
};
}
export type PluginOptions = AutomatedAbandonedCart | ManualAbandonedCart;
export type NewLineItem = Omit<LineItem, "beforeUpdate" | "afterUpdateOrLoad"> & {
price: string;
};
export interface TransformedCart {
id: string;
email: string;
items: NewLineItem[];
cart_context: Record<string, unknown>;
first_name: string;
last_name: string;
totalPrice: number;
created_at: Date;
updated_at: Date;
currency: string;
region: string;
country_code: string;
region_name: string;
abandoned_count?: number;
abandoned_lastdate?: Date;
abandoned_last_interval?: number;
abandoned_completed_at?: Date;
subject?: string;
header?: string;
}