From 591dc095a0e5f655e419ec4d1ae11d8f54bed196 Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Mon, 9 Oct 2023 10:51:46 +0700 Subject: update fitur variant page --- .../components/Product/ProductDesktopVariant.jsx | 18 +++++++++--------- .../components/Product/ProductMobileVariant.jsx | 18 +++++++++--------- src/pages/api/shop/variant-detail.js | 18 ++++++++++++++++++ src/pages/shop/product/variant/[slug].jsx | 10 +++++++++- 4 files changed, 45 insertions(+), 19 deletions(-) create mode 100644 src/pages/api/shop/variant-detail.js (limited to 'src') diff --git a/src/lib/product/components/Product/ProductDesktopVariant.jsx b/src/lib/product/components/Product/ProductDesktopVariant.jsx index 51739bc9..ef61bafd 100644 --- a/src/lib/product/components/Product/ProductDesktopVariant.jsx +++ b/src/lib/product/components/Product/ProductDesktopVariant.jsx @@ -140,7 +140,7 @@ const ProductDesktopVariant = ({ product, wishlist, toggleWishlist, isVariant })
{product.name} @@ -270,32 +270,32 @@ const ProductDesktopVariant = ({ product, wishlist, toggleWishlist, isVariant })
*/}
- {product?.flashSale?.remainingTime > 0 ? ( + {product?.isFlashsale > 0 && product?.price?.discountPercentage > 0? ( <>
- {lowestPrice?.discountPercentage}% + {product?.price?.discountPercentage}%
- {currencyFormat(lowestPrice?.price)} + {currencyFormat(product?.price?.price)}
- {currencyFormat(lowestPrice?.priceDiscount)} + {currencyFormat(product?.price?.priceDiscount)}
Termasuk PPN:{' '} - {currencyFormat(lowestPrice?.priceDiscount * process.env.NEXT_PUBLIC_PPN)} + {currencyFormat(product?.price?.priceDiscount * process.env.NEXT_PUBLIC_PPN)}
) : (

- {lowestPrice?.price > 0 ? ( + {product?.price?.price > 0 ? ( <> - {currencyFormat(lowestPrice?.price)} + {currencyFormat(product?.price?.price)}
Termasuk PPN:{' '} - {currencyFormat(lowestPrice?.price * process.env.NEXT_PUBLIC_PPN)} + {currencyFormat(product?.price?.price * process.env.NEXT_PUBLIC_PPN)}
) : ( diff --git a/src/lib/product/components/Product/ProductMobileVariant.jsx b/src/lib/product/components/Product/ProductMobileVariant.jsx index 8cdb631f..9888e482 100644 --- a/src/lib/product/components/Product/ProductMobileVariant.jsx +++ b/src/lib/product/components/Product/ProductMobileVariant.jsx @@ -29,7 +29,7 @@ const ProductMobileVariant = ({ product, wishlist, toggleWishlist }) => { const [isLoadingSLA, setIsLoadingSLA] = useState(true) const getLowestPrice = () => { - const lowest = product.price + const lowest = product.lowestPrice return lowest } @@ -40,7 +40,7 @@ const ProductMobileVariant = ({ product, wishlist, toggleWishlist }) => { price: getLowestPrice(), stock: product.stockTotal, weight: product.weight, - isFlashSale: product.isFlashsale + isFlashSale: product.isFlashSale }) useEffect(() => { @@ -50,9 +50,9 @@ const ProductMobileVariant = ({ product, wishlist, toggleWishlist }) => { code: product.code, name: product.name, price: product.price, - stock: product.stock, + stock: product.stockTotal, weight: product.weight, - isFlashSale: product.isFlashsale + isFlashSale: product.isFlashSale }) } }, [selectedVariant, product]) @@ -115,7 +115,7 @@ const ProductMobileVariant = ({ product, wishlist, toggleWishlist }) => { return ( {product.name} @@ -141,7 +141,7 @@ const ProductMobileVariant = ({ product, wishlist, toggleWishlist }) => {

{activeVariant?.name}

- {activeVariant.isFlashsale ? ( + {activeVariant.isFlashSale && activeVariant?.price?.discountPercentage > 0 ? ( <>
{activeVariant?.price?.discountPercentage}%
@@ -159,12 +159,12 @@ const ProductMobileVariant = ({ product, wishlist, toggleWishlist }) => { ) : (

- {activeVariant?.price?.priceDiscount > 0 ? ( + {activeVariant?.price?.price > 0 ? ( <> - {currencyFormat(activeVariant?.price?.priceDiscount)} + {currencyFormat(activeVariant?.price?.price)}
Termasuk PPN:{' '} - {currencyFormat(activeVariant?.price.priceDiscount * process.env.NEXT_PUBLIC_PPN)} + {currencyFormat(activeVariant?.price.price * process.env.NEXT_PUBLIC_PPN)}
) : ( diff --git a/src/pages/api/shop/variant-detail.js b/src/pages/api/shop/variant-detail.js new file mode 100644 index 00000000..fadbe000 --- /dev/null +++ b/src/pages/api/shop/variant-detail.js @@ -0,0 +1,18 @@ +import { productMappingSolr, variantsMappingSolr } from '@/utils/solrMapping' +import axios from 'axios' + +export default async function handler(req, res) { + try { + let productVariants = await axios( + process.env.SOLR_HOST + + `/solr/variants/select?q=id:${req.query.id}&q.op=OR&indent=true` + ) + let auth = req.query.auth === 'false' ? JSON.parse(req.query.auth) : req.query.auth + let result = variantsMappingSolr('',productVariants.data.response.docs, auth || false) + + res.status(200).json(result) + } catch (error) { + console.error('Error fetching data from Solr:', error) + res.status(500).json({ error: 'Internal Server Error' }) + } +} \ No newline at end of file diff --git a/src/pages/shop/product/variant/[slug].jsx b/src/pages/shop/product/variant/[slug].jsx index ba2a79d5..d0790249 100644 --- a/src/pages/shop/product/variant/[slug].jsx +++ b/src/pages/shop/product/variant/[slug].jsx @@ -6,6 +6,7 @@ import dynamic from 'next/dynamic' import { useRouter } from 'next/router' import cookie from 'cookie' import variantApi from '@/lib/product/api/variantApi' +import axios from 'axios' const BasicLayout = dynamic(() => import('@/core/components/layouts/BasicLayout')) const Product = dynamic(() => import('@/lib/product/components/Product/Product')) @@ -15,9 +16,16 @@ 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 product = await variantApi({ id: getIdFromSlug(slug), headers: { Token: authToken } }) + + let response = await axios( + `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/variant-detail?id=` + getIdFromSlug(slug) +'&auth=' + tier + ) + let product = response.data + // let product = await variantApi({ id: getIdFromSlug(slug), headers: { Token: authToken } }) + if (product?.length == 1) { product = product[0] /* const regexHtmlTags = /(<([^>]+)>)/gi -- cgit v1.2.3 From ec2bbfeaa09d6fb01bbe4ad97cc978b5a68500ff Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Mon, 9 Oct 2023 11:32:36 +0700 Subject: change rounded --- src/lib/product/components/ProductCard.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/lib/product/components/ProductCard.jsx b/src/lib/product/components/ProductCard.jsx index 91c1f40e..3b96ac32 100644 --- a/src/lib/product/components/ProductCard.jsx +++ b/src/lib/product/components/ProductCard.jsx @@ -38,7 +38,7 @@ const ProductCard = ({ product, simpleTitle, variant = 'vertical' }) => {

-
+
{product?.lowestPrice.discountPercentage}% -- cgit v1.2.3