diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2024-02-17 10:24:15 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2024-02-17 10:24:15 +0700 |
| commit | de452faa701939225b76d4344a3d04748f03d571 (patch) | |
| tree | 36f675fed030575a4bb362ff1856dc007bc82130 | |
| parent | 34ee25921623818ba7b03b8542d351fe51bc8076 (diff) | |
Fix product variant api price
| -rw-r--r-- | src-migrate/pages/api/product-variant/[id].tsx | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/src-migrate/pages/api/product-variant/[id].tsx b/src-migrate/pages/api/product-variant/[id].tsx index c25c10ac..39a871b7 100644 --- a/src-migrate/pages/api/product-variant/[id].tsx +++ b/src-migrate/pages/api/product-variant/[id].tsx @@ -1,3 +1,4 @@ +import moment from "moment"; import { NextApiRequest, NextApiResponse } from "next"; import { SolrResponse } from "~/types/solr"; @@ -28,6 +29,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) const map = async (variant: any, price_tier: string) => { const data: any = {} + const price = variant[`price_${price_tier}_v2_f`] || 0 + const isFlashsale = checkIsFlashsale(variant) data.id = parseInt(variant.id) data.parent_id = variant.template_id_i @@ -36,10 +39,20 @@ const map = async (variant: any, price_tier: string) => { data.name = variant.name_s data.default_code = variant.default_code_s data.price = { - price: variant.price_v2_f, - discount_percentage: variant[`discount_${price_tier}_v2_f`] || 0, - price_discount: variant[`price_${price_tier}_v2_f`] || 0, + discount_percentage: isFlashsale ? variant.flashsale_discount_f : 0, + price: isFlashsale ? Math.round(variant.flashsale_base_price_f) : price, + price_discount: isFlashsale ? Math.round(variant.flashsale_price_f) : price } return data +} + +const checkIsFlashsale = (variant: any) => { + const endDateStr = variant.flashsale_end_date_s || null + if (!endDateStr) return false + + const now = moment() + const endDate = moment(endDateStr, 'YYYY-MM-DD HH:mm:ss') + + return variant.flashsale_id_i > 0 && now.isSameOrBefore(endDate) }
\ No newline at end of file |
