83 lines
2.0 KiB
TypeScript
83 lines
2.0 KiB
TypeScript
export interface Product {
|
|
id: string;
|
|
title: string;
|
|
subtitle: string | null;
|
|
description: string | null;
|
|
handle: string;
|
|
is_giftcard: boolean;
|
|
discountable: boolean;
|
|
thumbnail: string;
|
|
collection_id: string | null;
|
|
type_id: string;
|
|
weight: number | null;
|
|
length: number | null;
|
|
height: number | null;
|
|
width: number | null;
|
|
hs_code: string | null;
|
|
origin_country: string | null;
|
|
mid_code: string | null;
|
|
material: string | null;
|
|
created_at: string;
|
|
updated_at: string;
|
|
type: ProductType;
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
collection: any | null;
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
options: any[];
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
tags: any[];
|
|
images: ProductImage[];
|
|
variants: ProductVariant[];
|
|
}
|
|
|
|
export interface ProductType {
|
|
id: string;
|
|
value: string;
|
|
metadata: {
|
|
tax_id: string;
|
|
discount_limit: number;
|
|
};
|
|
created_at: string;
|
|
updated_at: string;
|
|
deleted_at: string | null;
|
|
}
|
|
|
|
export interface ProductImage {
|
|
id: string;
|
|
url: string;
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
metadata: any | null;
|
|
created_at: string;
|
|
updated_at: string;
|
|
deleted_at: string | null;
|
|
}
|
|
|
|
export interface ProductVariant {
|
|
id: string;
|
|
title: string;
|
|
sku: string | null;
|
|
barcode: string | null;
|
|
ean: string | null;
|
|
upc: string | null;
|
|
allow_backorder: boolean;
|
|
manage_inventory: boolean;
|
|
hs_code: string | null;
|
|
origin_country: string | null;
|
|
mid_code: string | null;
|
|
material: string | null;
|
|
weight: number | null;
|
|
length: number | null;
|
|
height: number | null;
|
|
width: number | null;
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
metadata: any | null;
|
|
variant_rank: number;
|
|
product_id: string;
|
|
created_at: string;
|
|
updated_at: string;
|
|
deleted_at: string | null;
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
options: any[];
|
|
calculated_price: number | null;
|
|
}
|