summaryrefslogtreecommitdiff
path: root/src/pages/api/shop/search.js
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-10-07 10:24:23 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-10-07 10:24:23 +0700
commit41a12de37fff3f716de77bb18c50073336f69ab4 (patch)
tree5de6b0e48df5267f0bd0fd99397157e7e57ee9fb /src/pages/api/shop/search.js
parent79e1000887b6326475251624575655bb65c296db (diff)
parent0b66e23353e002c9a9a74b1ef8f2ca152b6f6741 (diff)
<iman> perbaiki flash sale non display
Diffstat (limited to 'src/pages/api/shop/search.js')
-rw-r--r--src/pages/api/shop/search.js35
1 files changed, 27 insertions, 8 deletions
diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js
index 6269d3ed..49a5fe69 100644
--- a/src/pages/api/shop/search.js
+++ b/src/pages/api/shop/search.js
@@ -23,6 +23,9 @@ export default async function handler(req, res) {
let paramOrderBy = '';
switch (orderBy) {
+ case 'flashsale-discount-desc':
+ paramOrderBy += 'flashsale_discount_f DESC';
+ break;
case 'price-asc':
paramOrderBy += 'price_tier1_v2_f ASC';
break;
@@ -68,15 +71,23 @@ export default async function handler(req, res) {
let checkQ = q.trim().split(/[\s\+\-\!\(\)\{\}\[\]\^"~\*\?:\\\/]+/);
let newQ = escapeSolrQuery(q);
- const formattedQuery = `(${newQ.split(' ').map(term => `${term}*`).join(' ') })`;
- const mm = checkQ.length > 2 ? checkQ.length > 5 ? '55%' : '85%' : `${checkQ.length}`;
+ const formattedQuery = `(${newQ
+ .split(' ')
+ .map((term) => `${term}*`)
+ .join(' ')})`;
+ const mm =
+ checkQ.length > 2
+ ? checkQ.length > 5
+ ? '55%'
+ : '85%'
+ : `${checkQ.length}`;
const filterQueries = [
'-publish_b:false',
'product_rating_f:[8 TO *]',
- 'price_tier1_v2_f:[1 TO *]'
+ 'price_tier1_v2_f:[1 TO *]',
];
-
+
const fq_ = filterQueries.join('AND ');
let offset = (page - 1) * limit;
@@ -87,7 +98,13 @@ export default async function handler(req, res) {
'indent=true',
`facet.query=${escapeSolrQuery(q)}`,
`q.op=OR`,
- `q=${source == 'similar' || checkQ.length < 3 ? checkQ.length < 2 ? newQ : newQ + '*' : formattedQuery }`,
+ `q=${
+ source == 'similar' || checkQ.length < 3
+ ? checkQ.length < 2
+ ? newQ
+ : newQ + '*'
+ : formattedQuery
+ }`,
`defType=edismax`,
'qf=name_s description_clean_t category_name manufacture_name_s variants_code_t variants_name_t category_id_ids default_code_s',
`start=${parseInt(offset)}`,
@@ -135,12 +152,14 @@ export default async function handler(req, res) {
if (typeof fq === 'string') parameter.push(`fq=${encodeURIComponent(fq)}`);
// Multi fq in url params
if (Array.isArray(fq))
- parameter = parameter.concat(fq.map((val) => `fq=${encodeURIComponent(val)}`));
-
+ parameter = parameter.concat(
+ fq.map((val) => `fq=${encodeURIComponent(val)}`)
+ );
+
let result = await axios(
process.env.SOLR_HOST + '/solr/product/select?' + parameter.join('&')
);
-
+
try {
result.data.response.products = productMappingSolr(
result.data.response.docs,