summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2024-02-17 10:24:15 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2024-02-17 10:24:15 +0700
commitde452faa701939225b76d4344a3d04748f03d571 (patch)
tree36f675fed030575a4bb362ff1856dc007bc82130
parent34ee25921623818ba7b03b8542d351fe51bc8076 (diff)
Fix product variant api price
-rw-r--r--src-migrate/pages/api/product-variant/[id].tsx19
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