diff options
| author | Rafi Zadanly <zadanlyr@gmail.com> | 2023-04-18 17:05:25 +0700 |
|---|---|---|
| committer | Rafi Zadanly <zadanlyr@gmail.com> | 2023-04-18 17:05:25 +0700 |
| commit | 42fed2490fe537b46a717eafaf1b1e4a5e0a08c8 (patch) | |
| tree | f586d4b09632b6fb50d1e3c038d8f36acb668600 /src/pages/api | |
| parent | 5ec1ebdc1b5a44a9bb615eba08faf60113c0697f (diff) | |
price tier
Diffstat (limited to 'src/pages/api')
| -rw-r--r-- | src/pages/api/shop/search.js | 24 |
1 files changed, 20 insertions, 4 deletions
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, |
