@pfantato/printful-ts
Version:
Typescript SDK to integrate with Printful
760 lines (759 loc) • 24.3 kB
TypeScript
import type { Options } from 'ky';
import { GetProductBlankMockupsSearchParams, GetProductMockupsSearchParams, GetProductMockupTemplatesSearchParams, GetProductSearchParams, GetProductSizeGuideSearchParams, GetProductStockAvailabilitySearchParams, GetVariantStockAvailabilitySearchParams, GetVarianttBlankMockupsSearchParams, Locale, ListProductCategoriesSearchParams, ListProductPricesSearchParams, ListProductsSearchParams, ListProductVariantPricesSearchParams } from '@printful-ts/schemas';
import { PrintfulApiService } from './printful-api.service';
export declare class CatalogProductsService extends PrintfulApiService {
listProducts(params?: ListProductsSearchParams, options?: Options): Promise<{
_links?: {
self?: {
href?: string;
};
first?: {
href?: string;
};
last?: {
href?: string;
};
next?: {
href?: string;
};
previous?: {
href?: string;
};
};
data?: {
type?: string;
description?: string;
brand?: string;
name?: string;
id?: number;
_links?: {
self?: {
href?: string;
};
variants?: {
href?: string;
};
categories?: {
href?: string;
};
product_prices?: {
href?: string;
};
product_sizes?: {
href?: string;
};
product_images?: {
href?: string;
};
availability?: {
href?: string;
};
};
techniques?: {
key?: "dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm";
display_name?: string;
is_default?: boolean;
}[];
placements?: {
placement_options?: {
values?: unknown[];
type?: string;
name?: string;
techniques?: ("dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm")[];
}[];
layers?: {
type?: string;
layer_options?: {
values?: unknown[];
type?: string;
name?: string;
techniques?: ("dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm")[];
}[];
}[];
placement?: string;
technique?: "dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm";
print_area_width?: number;
print_area_height?: number;
conflicting_placements?: string[];
}[];
product_options?: {
values?: unknown[];
type?: string;
name?: string;
techniques?: ("dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm")[];
}[];
image?: string;
main_category_id?: number;
model?: string;
variant_count?: number;
is_discontinued?: boolean;
sizes?: string[];
colors?: {
value?: string;
name?: string;
}[];
}[];
paging?: {
total?: number;
offset?: number;
limit?: number;
};
}>;
getProduct(product_id: number, params: GetProductSearchParams, options?: Options): Promise<{
data?: {
type?: string;
description?: string;
brand?: string;
name?: string;
id?: number;
_links?: {
self?: {
href?: string;
};
variants?: {
href?: string;
};
categories?: {
href?: string;
};
product_prices?: {
href?: string;
};
product_sizes?: {
href?: string;
};
product_images?: {
href?: string;
};
availability?: {
href?: string;
};
};
techniques?: {
key?: "dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm";
display_name?: string;
is_default?: boolean;
}[];
placements?: {
placement_options?: {
values?: unknown[];
type?: string;
name?: string;
techniques?: ("dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm")[];
}[];
layers?: {
type?: string;
layer_options?: {
values?: unknown[];
type?: string;
name?: string;
techniques?: ("dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm")[];
}[];
}[];
placement?: string;
technique?: "dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm";
print_area_width?: number;
print_area_height?: number;
conflicting_placements?: string[];
}[];
product_options?: {
values?: unknown[];
type?: string;
name?: string;
techniques?: ("dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm")[];
}[];
image?: string;
main_category_id?: number;
model?: string;
variant_count?: number;
is_discontinued?: boolean;
sizes?: string[];
colors?: {
value?: string;
name?: string;
}[];
};
}>;
listProductVariants(product_id: number, locale?: Locale, options?: Options): Promise<{
_links?: {
self?: {
href?: string;
};
first?: {
href?: string;
};
last?: {
href?: string;
};
next?: {
href?: string;
};
previous?: {
href?: string;
};
product_details?: {
href?: string;
};
};
data?: {
size?: string;
name?: string;
id?: number;
_links?: {
self?: {
href?: string;
};
product_details?: {
href?: string;
};
product_variants?: {
href?: string;
};
variant_prices?: {
href?: string;
};
variant_images?: {
href?: string;
};
variant_availability?: {
href?: string;
};
};
catalog_product_id?: number;
image?: string;
color?: string;
color_code?: string;
color_code2?: string;
}[];
paging?: {
total?: number;
offset?: number;
limit?: number;
};
}>;
getProductVariant(variant_id: number, locale?: Locale, options?: Options): Promise<{
_links?: {
self?: {
href?: string;
};
product_details?: {
href?: string;
};
product_variants?: {
href?: string;
};
variant_prices?: {
href?: string;
};
variant_images?: {
href?: string;
};
};
data?: {
size?: string;
name?: string;
id?: number;
_links?: {
self?: {
href?: string;
};
product_details?: {
href?: string;
};
product_variants?: {
href?: string;
};
variant_prices?: {
href?: string;
};
variant_images?: {
href?: string;
};
variant_availability?: {
href?: string;
};
};
catalog_product_id?: number;
image?: string;
color?: string;
color_code?: string;
color_code2?: string;
}[];
}>;
listProductCategories(product_id: number, params: ListProductCategoriesSearchParams, options?: Options): Promise<{
_links?: {
self?: {
href?: string;
};
first?: {
href?: string;
};
last?: {
href?: string;
};
next?: {
href?: string;
};
previous?: {
href?: string;
};
all_categories?: {
href?: string;
};
};
data?: {
title?: string;
id?: number;
parent_id?: number;
image_url?: string;
_links?: {
self?: {
href?: string;
};
};
}[];
paging?: {
total?: number;
offset?: number;
limit?: number;
};
}>;
listCategories(options?: Options): Promise<{
_links?: {
self?: {
href?: string;
};
first?: {
href?: string;
};
last?: {
href?: string;
};
next?: {
href?: string;
};
previous?: {
href?: string;
};
};
data?: {
title?: string;
id?: number;
parent_id?: number;
image_url?: string;
_links?: {
self?: {
href?: string;
};
};
}[];
}>;
getCategory(category_id: number, options?: Options): Promise<{
_links?: {
all_categories?: {
href?: string;
};
};
data?: {
title?: string;
id?: number;
parent_id?: number;
image_url?: string;
_links?: {
self?: {
href?: string;
};
};
};
}>;
getProductSizeGuide(product_id: number, params?: GetProductSizeGuideSearchParams, options?: Options): Promise<{
_links?: {
self?: {
href?: string;
};
product_details?: {
href?: string;
};
};
data?: {
catalog_product_id?: number;
available_sizes?: string[];
size_tables?: {
type?: "measure_yourself" | "product_measure" | "international";
description?: string;
image_url?: string;
unit?: "inches" | "cm";
image_description?: string;
measurements?: {
values?: ({
value?: string;
size?: string;
} | {
size?: string;
min_value?: string;
max_value?: string;
})[];
type_label?: string;
unit?: "inches" | "cm";
}[];
}[];
};
}>;
listProductPrices(product_id: number, params?: ListProductPricesSearchParams, options?: Options): Promise<{
_links?: {
self?: {
href?: string;
};
first?: {
href?: string;
};
last?: {
href?: string;
};
next?: {
href?: string;
};
previous?: {
href?: string;
};
product_details?: {
href?: string;
};
};
data?: {
currency?: string;
product?: {
id?: number;
placements?: {
type?: string;
title?: string;
price?: string;
id?: string;
technique_key?: string;
discounted_price?: string;
placement_options?: {
values?: any[][];
type?: string;
description?: string;
name?: string;
prices?: any;
}[];
layers?: {
type?: string;
additional_price?: string;
layer_options?: {
values?: any[][];
type?: string;
description?: string;
name?: string;
prices?: any;
}[];
}[];
}[];
};
variants?: {
id?: number;
techniques?: {
price?: string;
technique_key?: "dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm";
discounted_price?: string;
technique_display_name?: string;
}[];
}[];
}[];
paging?: {
total?: number;
offset?: number;
limit?: number;
};
}>;
listProductVariantPrices(variant_id: number, params?: ListProductVariantPricesSearchParams, options?: Options): Promise<{
_links?: {
self?: {
href?: string;
};
first?: {
href?: string;
};
last?: {
href?: string;
};
next?: {
href?: string;
};
previous?: {
href?: string;
};
product_details?: {
href?: string;
};
product_prices?: {
href?: string;
};
};
data?: {
currency?: string;
product?: {
id?: number;
placements?: {
type?: string;
title?: string;
price?: string;
id?: string;
technique_key?: string;
discounted_price?: string;
placement_options?: {
values?: any[][];
type?: string;
description?: string;
name?: string;
prices?: any;
}[];
layers?: {
type?: string;
additional_price?: string;
layer_options?: {
values?: any[][];
type?: string;
description?: string;
name?: string;
prices?: any;
}[];
}[];
}[];
};
variant?: {
id?: number;
techniques?: {
price?: string;
technique_key?: "dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm";
discounted_price?: string;
technique_display_name?: string;
}[];
};
}[];
paging?: {
total?: number;
offset?: number;
limit?: number;
};
}>;
getProductBlankMockups(product_id: number, params: GetProductBlankMockupsSearchParams, options: Options): Promise<{
_links?: {
product_details?: {
href?: string;
};
_self?: {
href?: string;
};
};
data?: {
catalog_variant_id?: number;
color?: string;
primary_hex_color?: string;
secondary_hex_color?: string;
images?: {
image_url?: string;
placement?: string;
background_color?: string;
background_image?: string;
}[];
}[];
paging?: {
total?: number;
offset?: number;
limit?: number;
};
}>;
getProductVariantBlankMockups(variant_id: number, params: GetVarianttBlankMockupsSearchParams, options: Options): Promise<{
_links?: {
_self?: {
href?: string;
};
variant_details?: {
href?: string;
};
};
data?: {
catalog_variant_id?: number;
color?: string;
primary_hex_color?: string;
secondary_hex_color?: string;
images?: {
image_url?: string;
placement?: string;
background_color?: string;
background_image?: string;
}[];
}[];
}>;
getProductMockups(product_id: number, params: GetProductMockupsSearchParams, options: Options): Promise<{
_links?: {
self?: {
href?: string;
};
first?: {
href?: string;
};
last?: {
href?: string;
};
next?: {
href?: string;
};
previous?: {
href?: string;
};
product?: {
href?: string;
};
};
data?: {
display_name?: string;
placement?: string;
technique?: "dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm";
print_area_width?: number;
print_area_height?: number;
print_area_type?: "advanced" | "simple";
dpi?: number;
mockup_styles?: {
id?: number;
category_name?: string;
view_name?: string;
restricted_to_variants?: any[][];
}[];
}[];
paging?: {
total?: number;
offset?: number;
limit?: number;
};
}>;
getProductMockupTemplates(product_id: number, params: GetProductMockupTemplatesSearchParams, options: Options): Promise<{
_links?: {
self?: {
href?: string;
};
first?: {
href?: string;
};
last?: {
href?: string;
};
next?: {
href?: string;
};
previous?: {
href?: string;
};
product?: {
href?: string;
};
};
data?: {
image_url?: string;
placement?: string;
technique?: "dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm";
print_area_width?: number;
print_area_height?: number;
catalog_variant_ids?: number[];
background_url?: string;
background_color?: string;
template_width?: number;
template_height?: number;
print_area_top?: number;
print_area_left?: number;
template_positioning?: "overlay" | "background";
orientation?: "horizontal" | "vertical" | "any";
template_type?: "custom" | "native" | "color_group" | "advanced";
}[];
paging?: {
total?: number;
offset?: number;
limit?: number;
};
}>;
getProductStockAvailability(product_id: number, params?: GetProductStockAvailabilitySearchParams, options?: Options): Promise<{
_links?: {
self?: {
href?: string;
};
first?: {
href?: string;
};
last?: {
href?: string;
};
next?: {
href?: string;
};
previous?: {
href?: string;
};
product?: {
href?: string;
};
};
data?: {
_links?: {
variant?: {
href?: string;
};
};
techniques?: {
technique?: "dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm";
selling_regions?: {
name?: "worldwide" | "north_america" | "canada" | "europe" | "spain" | "latvia" | "uk" | "france" | "germany" | "australia" | "japan" | "new_zealand" | "italy" | "brazil" | "southeast_asia" | "republic_of_korea" | "english_speaking_regions" | "all";
availability?: "unknown" | "in stock" | "out of stock" | "not fulfillable";
placement_option_availability?: {
name?: string;
availability?: "unknown" | "in stock" | "out of stock" | "not fulfillable";
}[];
}[];
}[];
catalog_variant_id?: number;
}[];
paging?: {
total?: number;
offset?: number;
limit?: number;
};
filter_settings?: {
value?: string;
name?: string;
};
}>;
getProductVariantStockAvailability(variant_id: number, params?: GetVariantStockAvailabilitySearchParams, options?: Options): Promise<{
_links?: {
self?: {
href?: string;
};
variant?: {
href?: string;
};
};
data?: {
_links?: {
variant?: {
href?: string;
};
};
techniques?: {
technique?: "dtg" | "digital" | "cut-sew" | "uv" | "embroidery" | "sublimation" | "dtfilm";
selling_regions?: {
name?: "worldwide" | "north_america" | "canada" | "europe" | "spain" | "latvia" | "uk" | "france" | "germany" | "australia" | "japan" | "new_zealand" | "italy" | "brazil" | "southeast_asia" | "republic_of_korea" | "english_speaking_regions" | "all";
availability?: "unknown" | "in stock" | "out of stock" | "not fulfillable";
placement_option_availability?: {
name?: string;
availability?: "unknown" | "in stock" | "out of stock" | "not fulfillable";
}[];
}[];
}[];
catalog_variant_id?: number;
};
filter_settings?: {
value?: string;
name?: string;
};
}>;
}