printerval-variants
v1.0.2
Published
A JavaScript library to fetch and process Printerval product variants data
Maintainers
Readme
@megaads/variant-builder
A TypeScript library to fetch and process product variants data.
Installation
To install the library, use npm:
npm install @megaads/variant-builderUsage
import fetch from "node-fetch";
import PrintervalVariants from "./index.js";
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): Promise<void> {
const { variants, productVariants, galleries } = await fetchData(productId);
const printervalVariants = PrintervalVariants.init({
variants: variants,
productVariants: productVariants,
galleries: galleries
});
const retVal = printervalVariants.getProductSkuDetails(159658972);
console.log(JSON.stringify(retVal.variants));
}
getDetails(1000400032).then(() => {});Contact
Email: [email protected]
