feat: add metafields to variant options

Signed-off-by: Chloe <pinkcloudvnn@gmail.com>
This commit is contained in:
Chloe
2024-05-03 12:28:37 +07:00
parent 2ad07c3682
commit e0cd6ac2bd
4 changed files with 152 additions and 122 deletions

View File

@@ -55,6 +55,15 @@ const productFragment = /* GraphQL */ `
coreVariantId: metafield(namespace: "custom", key: "coreVariant") {
value
}
estimatedDelivery: metafield(namespace: "custom", key: "delivery") {
value
}
mileage: metafield(namespace: "custom", key: "mileage") {
value
}
condition: metafield(namespace: "custom", key: "condition") {
value
}
}
}
}

View File

@@ -185,7 +185,10 @@ const reshapeVariants = (variants: ShopifyProductVariant[]): ProductVariant[] =>
...variant,
waiverAvailable: parseMetaFieldValue<boolean>(variant.waiverAvailable),
coreVariantId: variant.coreVariantId?.value || null,
coreCharge: parseMetaFieldValue<Money>(variant.coreCharge)
coreCharge: parseMetaFieldValue<Money>(variant.coreCharge),
mileage: variant.mileage?.value ?? null,
estimatedDelivery: variant.estimatedDelivery?.value || null,
condition: variant.condition?.value || null
}));
};

View File

@@ -87,15 +87,21 @@ export type ProductVariant = {
barcode: string | null;
sku: string | null;
coreVariantId: string | null;
mileage: number | null;
estimatedDelivery: string | null;
condition: string | null;
};
export type ShopifyProductVariant = Omit<
ProductVariant,
'coreCharge' | 'waiverAvailable' | 'coreVariantId'
'coreCharge' | 'waiverAvailable' | 'coreVariantId' | 'mileage' | 'estimatedDelivery' | 'condition'
> & {
waiverAvailable: { value: string };
coreVariantId: { value: string } | null;
coreCharge: { value: string } | null;
mileage: { value: number } | null;
estimatedDelivery: { value: string } | null;
condition: { value: string } | null;
};
export type SEO = {