From 42fed2490fe537b46a717eafaf1b1e4a5e0a08c8 Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Tue, 18 Apr 2023 17:05:25 +0700 Subject: price tier --- src/pages/api/shop/search.js | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'src/pages/api') diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js index 19b9655a..4a237d47 100644 --- a/src/pages/api/shop/search.js +++ b/src/pages/api/shop/search.js @@ -57,7 +57,12 @@ export default async function handler(req, res) { let result = await axios(process.env.SOLR_HOST + '/solr/product/select?' + parameter.join('&')) try { - result.data.response.products = productResponseMap(result.data.response.docs) + let { auth } = req.cookies + if (auth) auth = JSON.parse(auth) + result.data.response.products = productResponseMap( + result.data.response.docs, + auth?.pricelist || false + ) result.data.responseHeader.params.start = parseInt(result.data.responseHeader.params.start) result.data.responseHeader.params.rows = parseInt(result.data.responseHeader.params.rows) delete result.data.response.docs @@ -83,8 +88,19 @@ const escapeSolrQuery = (query) => { return escapedWords.join(' ') } -const productResponseMap = (products) => { +const productResponseMap = (products, pricelist) => { return products.map((product) => { + let priceDiscount = product.price_discount_f || 0 + let discount = 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) discount = pricelistDiscountPerc + } + let productMapped = { id: product.product_id_i || '', image: product.image_s || '', @@ -92,8 +108,8 @@ const productResponseMap = (products) => { name: product.name_s || '', lowestPrice: { price: product.price_f || 0, - priceDiscount: product.price_discount_f || 0, - discountPercentage: product.discount_f || 0 + priceDiscount: priceDiscount, + discountPercentage: discount }, variantTotal: product.variant_total_i || 0, stockTotal: product.stock_total_f || 0, -- cgit v1.2.3