UNPKG

@megaads/wm

Version:

To install the library, use npm:

156 lines (119 loc) 4.16 kB
# @megaads/wm ## Installation To install the library, use npm: ```sh npm install @megaads/wm ``` ## Usage ```typescript // Variant Builder import fetch from "node-fetch"; import WM from "@megaads/wm"; interface Variant { id: number; slug: string; values: Array<{ id: number }>; } interface ProductVariant { id: number; sku: string, variants: number[]; price: number; high_price: number; } interface Galleries { [key: number]: string[]; } interface FetchDataResult { variants: Variant[]; productVariants: ProductVariant[]; galleries: Galleries; } async function fetchData(productId: number): Promise<FetchDataResult> { const variantResponse = await fetch(`https://us-variant.printerval.com/v2/variant/${productId}?ignore_localization=1`); const variantDataJson = await variantResponse.json() as { result: { variants: Variant[], productVariants: ProductVariant[] } }; const variants = variantDataJson.result.variants; const productVariants = variantDataJson.result.productVariants; const galleryResponse = await fetch(`https://us-variant.printerval.com/gallery/${productId}?ignore_localization=1`); const galleriesDataJson = await galleryResponse.json() as { result: Galleries }; const galleries = galleriesDataJson.result; return { variants, productVariants, galleries }; } async function getDetails(productId: number, productSkuId: number): Promise<void> { const { variants, productVariants, galleries } = await fetchData(productId); const variantsService = WM.initVarians({ variants: variants, productVariants: productVariants, galleries: galleries }); const retVal = variantsService.getProductSkuDetails(productSkuId); console.log(JSON.stringify(retVal)); } getDetails(1000400032, 159658972).then(() => {}); // Get Image Cdn function getCdnUrl(url: string): void { const imagesService = WM.initImages({ baseCdnUrl: 'https://cdn.printerval.com' }) console.log(imagesWM.getImageCdn(url, 960, 960, false, false, {})); } getCdnUrl('https://assets.printerval.com/seller/2024/02/15/womens-espresso-martini-drinking-coffee-lovers-cocktail-bartender-v-neck-t-shirt-15f0742d17528a2355b987d587766f8b.png'); // Format Price function getPrice(): void { const priceService = WM.initPrice({ currencyUnit: 'USD' }); console.log(priceService.formatPrice(1000000)); } getPrice(); // print location const printLocationsService = WM.initPrintLocations([ { "id": 1, "name": "Front", "value": "front" }, { "id": 2, "name": "Chest", "value": "chest" }, { "id": 3, "name": "Back", "value": "back" }, { "id": 4, "name": "Chest & Back", "value": "chest_back" } ], 'us'); console.log(printLocationsService.getAdditionalPrice('chest_back', 7, 10)); ``` ### TeeInBlue customization ```typescript import WM from "@megaads/wm"; const service = WM.initCustomizationTeeinblue(campaignData, { templateId: savedState?.templateId, state: savedState, }); let snapshot = service.getSnapshot(); // Render in app: // snapshot.templateOptions: template choices // snapshot.layerOptions: personalization controls // snapshot.mockup / snapshot.printAreas / snapshot.designLayers: preview descriptors // snapshot.config: data for add-to-cart configuration service.selectTemplate(snapshot.templateOptions[0].optionValues[1].id); snapshot = service.getSnapshot(); const optionLayer = snapshot.layerOptions.find(layer => layer.input_type === "option"); service.changeLayerOptionValue(optionLayer.option_items[0], optionLayer); const textLayer = service.getLayerOptions().find(layer => layer.input_type === "text"); service.changeInputValue(textLayer, "Alex"); const photoLayer = service.getLayerOptions().find(layer => layer.input_type === "photo"); service.changeUploadValue(photoLayer, "https://example.com/uploaded-image.webp"); snapshot = service.getSnapshot(); const stateToPersist = service.getState(); ``` ## Contact Email: duytungnguyen.bkhn.95@gmail.com