@vymalo/medusa-printful
Version:
Connect your MedusaJS store to Printful
37 lines (36 loc) • 2.01 kB
TypeScript
import { Modules } from '@medusajs/utils';
import type { IPrintfulService, PrintfulOptions } from '../../../types';
import { CalculateShippingRatesData, Order, PackingSlip, SyncProduct, SyncVariant } from '../../../core';
import type { IFulfillmentModuleService, IProductModuleService, Logger, MedusaContainer, OrderDTO, ProductDTO } from '@medusajs/types';
type InjectedDependencies = {
logger: Logger;
[Modules.PRODUCT]: IProductModuleService;
[Modules.FULFILLMENT]: IFulfillmentModuleService;
};
type Options = Pick<PrintfulOptions, 'confirmOrder' | 'logo_url'>;
export default class PrintFulService implements IPrintfulService {
protected readonly logger_: Logger;
protected readonly fulfillmentService: IFulfillmentModuleService;
protected readonly productModuleService: IProductModuleService;
private readonly options;
constructor({ logger, fulfillment, product }: InjectedDependencies, options: Options);
protected get confirmOrder(): boolean;
getShippingRates(data: CalculateShippingRatesData['body']): Promise<import("../../../core").ShippingInfo[]>;
createOrder(order: OrderDTO): Promise<Order>;
confirmOrderById(orderId: string | number): Promise<Order>;
cancelOrder(orderId: string | number): Promise<Order>;
deleteMedusaProduct(productOrProductId: string, container: MedusaContainer): Promise<void>;
getSyncProduct(id: number): Promise<{
sync_product?: SyncProduct;
sync_variants?: Array<SyncVariant>;
}>;
createOrUpdateProduct(productId: number, container: MedusaContainer): Promise<void>;
deleteProduct(productId: number, container: MedusaContainer): Promise<void>;
syncProducts(container: MedusaContainer): Promise<void>;
protected buildProductId(productId: number): string;
protected getProductByPrintfulProductId(productId: number): Promise<ProductDTO>;
protected getPackingSlip(order: OrderDTO): Promise<PackingSlip>;
private syncProduct;
private getPrintfulTag;
}
export {};