Files
kontextwerk/types/frontendCommerceTypes.d.ts
2025-10-02 08:54:03 +02:00

203 lines
3.5 KiB
TypeScript

type Maybe<T> = T | null
interface Connection<T> {
edges: Array<Edge<T>>
}
interface Edge<T> {
node: T
}
interface BKDFPage {
id: string
title: string
handle: string
body: string
bodySummary: string
seo?: BKDFSEO
createdAt: string
updatedAt: string
}
interface BKDFMenu {
title: string
path: string
}
interface BKDFCollection {
handle: string
title: string
description: string
seo: BKDFSEO
updatedAt: string
path: string
}
interface BKDFMoney {
amount: string
currencyCode: string
}
interface Image {
url: string
altText: string
width: number
height: number
}
interface BKDFProduct {
id: string
sku: string
handle: string
availableForSale: boolean
title: string
description: string
descriptionHtml: string
options: BKDFProductOption[]
priceRange: {
maxVariantPrice: BKDFMoney
minVariantPrice: BKDFMoney
}
salePrice: BKDFMoney
retailPrice: BKDFMoney
variants: BKDFProductVariant[]
featuredImage: Image
images: Image[]
seo: BKDFSEO
tags: string[]
updatedAt: string
reviews: {
avgRating: number
}
categories: {
name: string
id: number
description: string
}[]
}
type OptionNames = "Farbe" | "Größe"
interface BKDFProductSelectedOption {
name: OptionNames
value: string
}
interface BKDFProductOption {
id: string
name: string
values: string[]
}
interface BKDFProductVariant {
parentId?: string
id: string
title: string
sku: string
availableForSale: boolean
selectedOptions: {
name: OptionNames
value: string
}[]
price: BKDFMoney
defaultImage: Image
}
interface BKDFSEO {
title: string
description: string
}
interface BKDFCartItem {
id: number
quantity: number
cost: {
totalAmount: BKDFMoney
}
merchandise: {
id: string
title: string
selectedOptions: {
name: string
value: string
}[]
product: BKDFProduct
}
}
interface BKDFCart {
id: string
checkoutUrl?: string
cost: {
baseAmount?: BKDFMoney
discountedAmount: BKDFMoney
couponDiscount?: BKDFMoney
amount: BKDFMoney
discounts?: {
entityId: string
discountedAmount: BKDFMoney
}[]
}
lines: BKDFCartItem[]
totalQuantity?: number
}
interface SortFilterItem {
title: string
slug: string | null
sortKey: keyof typeof BKDFSortKeys
reverse: boolean
}
interface BKDFCustomer {
id: string
email: string
telephone: string
firstName: string
lastName: string
}
interface Address {
firstName: string
lastName: string
address1: string
address2?: string
city: string
stateOrProvince: string
countryCode: string
phone: string
postalCode: string
}
interface RegisterCustomerInput {
firstName: string
lastName: string
email: string
password: string
phone: string
address: Address
}
interface DeleteCustomerAddressInput {
addressEntityId: number
}
interface ChangePasswordInput {
currentPassword: string
newPassword: string
}
interface RequestResetPasswordInput {
email: string
_s: string
_sId: string
}
interface ResetPasswordInput {
password: string
}
interface UpdateCustomerAddressInput {
addressEntityId: number
data: Address
}
interface LoginInput {
email: string
password: string
}