diff options
| author | trisusilo <tri.susilo@altama.co.id> | 2023-10-06 06:54:30 +0000 |
|---|---|---|
| committer | trisusilo <tri.susilo@altama.co.id> | 2023-10-06 06:54:30 +0000 |
| commit | 1203225f97f4371823ef82103b89bcddf2bce59c (patch) | |
| tree | 8c9fc18df252de1fd5afa57e64f13e005028f27a /src/pages | |
| parent | 010cbf9ff08835ed0cf61e821ce4db79f744893c (diff) | |
| parent | 5d4cf836d098e9c351bce4d25f0e88e341646ccc (diff) | |
Merged in CR/Pricelist (pull request #92)
CR/Pricelist
Diffstat (limited to 'src/pages')
| -rw-r--r-- | src/pages/api/shop/product-detail.js | 32 | ||||
| -rw-r--r-- | src/pages/api/shop/search.js | 21 | ||||
| -rw-r--r-- | src/pages/shop/product/[slug].jsx | 3 |
3 files changed, 25 insertions, 31 deletions
diff --git a/src/pages/api/shop/product-detail.js b/src/pages/api/shop/product-detail.js index 5c3a8231..22a53df2 100644 --- a/src/pages/api/shop/product-detail.js +++ b/src/pages/api/shop/product-detail.js @@ -1,3 +1,4 @@ +import { productMappingSolr, variantsMappingSolr } from '@/utils/solrMapping' import axios from 'axios' export default async function handler(req, res) { @@ -9,13 +10,12 @@ export default async function handler(req, res) { process.env.SOLR_HOST + `/solr/variants/select?q=template_id_i:${req.query.id}&q.op=OR&indent=true&rows=100` ) - let { auth } = req.cookies - if (auth) auth = JSON.parse(auth) - let result = productResponseMap(productTemplate.data.response.docs, auth?.pricelist || false) - result[0].variants = productVariantsResponseMap( + let auth = req.query.auth === 'false' ? JSON.parse(req.query.auth) : req.query.auth + let result = productMappingSolr(productTemplate.data.response.docs, auth || false) + result[0].variants = variantsMappingSolr( productTemplate.data.response.docs[0], productVariants.data.response.docs, - auth?.pricelist || false + auth || false ) res.status(200).json(result) } catch (error) { @@ -24,19 +24,14 @@ export default async function handler(req, res) { } } -const productResponseMap = (products, pricelist) => { +/*const productResponseMap = (products, pricelist) => { return products.map((product) => { - let price = product.price_f || 0 + let price = product.price_tier1_v2_f || 0 let priceDiscount = product.price_discount_f || 0 let discountPercentage = product.discount_f || 0 if (pricelist) { - const pricelistDiscount = product?.[`price_${pricelist}_f`] || false - const pricelistDiscountPerc = product?.[`discount_${pricelist}_f`] || false - - if (pricelistDiscount && pricelistDiscount > 0) priceDiscount = pricelistDiscount - if (pricelistDiscountPerc && pricelistDiscountPerc > 0) - discountPercentage = pricelistDiscountPerc + price = product?.[`price_${pricelist}_f`] || 0 } if (product?.flashsale_id_i > 0) { @@ -86,17 +81,12 @@ const productResponseMap = (products, pricelist) => { } const productVariantsResponseMap = (parent, products, pricelist) => { return products.map((product) => { - let price = product.price_f || 0 + let price = product.price_tier1_v2_f || 0 let priceDiscount = product.price_discount_f || 0 let discountPercentage = product.discount_f || 0 if (pricelist) { - const pricelistDiscount = product?.[`price_${pricelist}_f`] || false - const pricelistDiscountPerc = product?.[`discount_${pricelist}_f`] || false - - if (pricelistDiscount && pricelistDiscount > 0) priceDiscount = pricelistDiscount - if (pricelistDiscountPerc && pricelistDiscountPerc > 0) - discountPercentage = pricelistDiscountPerc + price = product?.[`price_${pricelist}_f`] || 0 } if (product?.flashsale_id_i > 0) { @@ -144,4 +134,4 @@ const flashsaleTime = (endDate) => { const timeDifferenceInSeconds = timeDifferenceInMillis / 1000 return { remainingTime: timeDifferenceInSeconds, isFlashSale: flashsaleEndDate > currentTime } -} +}*/ diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js index 57b16db8..2120a442 100644 --- a/src/pages/api/shop/search.js +++ b/src/pages/api/shop/search.js @@ -1,3 +1,4 @@ +import { productMappingSolr } from '@/utils/solrMapping' import axios from 'axios' import camelcaseObjectDeep from 'camelcase-object-deep' @@ -73,7 +74,7 @@ export default async function handler(req, res) { try { let { auth } = req.cookies if (auth) auth = JSON.parse(auth) - result.data.response.products = productResponseMap( + result.data.response.products = productMappingSolr( result.data.response.docs, auth?.pricelist || false ) @@ -102,19 +103,21 @@ const escapeSolrQuery = (query) => { return escapedWords.join(' ') } -const productResponseMap = (products, pricelist) => { +/*const productResponseMap = (products, pricelist) => { return products.map((product) => { - let price = product.price_f || 0 + let price = product.price_tier1_v2_f || 0 let priceDiscount = product.price_discount_f || 0 let discountPercentage = product.discount_f || 0 if (pricelist) { - const pricelistDiscount = product?.[`price_${pricelist}_f`] || false - const pricelistDiscountPerc = product?.[`discount_${pricelist}_f`] || false + // const pricelistDiscount = product?.[`price_${pricelist}_f`] || false + // const pricelistDiscountPerc = product?.[`discount_${pricelist}_f`] || false - if (pricelistDiscount && pricelistDiscount > 0) priceDiscount = pricelistDiscount - if (pricelistDiscountPerc && pricelistDiscountPerc > 0) - discountPercentage = pricelistDiscountPerc + // if (pricelistDiscount && pricelistDiscount > 0) priceDiscount = pricelistDiscount + // if (pricelistDiscountPerc && pricelistDiscountPerc > 0) + // discountPercentage = pricelistDiscountPerc + + price = product?.[`price_${pricelist}_f`] || 0 } if (product?.flashsale_id_i > 0) { @@ -156,4 +159,4 @@ const productResponseMap = (products, pricelist) => { ] return productMapped }) -} +}*/ diff --git a/src/pages/shop/product/[slug].jsx b/src/pages/shop/product/[slug].jsx index 534aa8da..63fb2e7e 100644 --- a/src/pages/shop/product/[slug].jsx +++ b/src/pages/shop/product/[slug].jsx @@ -18,10 +18,11 @@ export async function getServerSideProps(context) { const cookies = context.req.headers.cookie const cookieObj = cookies ? cookie.parse(cookies) : {} const auth = cookieObj.auth ? JSON.parse(cookieObj.auth) : {} + const tier = auth.pricelist ? auth.pricelist : false const authToken = auth?.token || '' let response = await axios( - `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/product-detail?id=` + getIdFromSlug(slug) + `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/product-detail?id=` + getIdFromSlug(slug) +'&auth=' + tier ) let product = response.data // let productSolr = await productApi({ id: getIdFromSlug(slug), headers: { Token: authToken } }) |
