summaryrefslogtreecommitdiff
path: root/src/pages/api
diff options
context:
space:
mode:
authorRafi Zadanly <zadanlyr@gmail.com>2023-04-18 17:05:25 +0700
committerRafi Zadanly <zadanlyr@gmail.com>2023-04-18 17:05:25 +0700
commit42fed2490fe537b46a717eafaf1b1e4a5e0a08c8 (patch)
treef586d4b09632b6fb50d1e3c038d8f36acb668600 /src/pages/api
parent5ec1ebdc1b5a44a9bb615eba08faf60113c0697f (diff)
price tier
Diffstat (limited to 'src/pages/api')
-rw-r--r--src/pages/api/shop/search.js24
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,