summaryrefslogtreecommitdiff
path: root/src/pages/api
diff options
context:
space:
mode:
authorHATEC\SPVDEV001 <tri.susilo@altama.co.id>2024-06-21 15:09:57 +0700
committerHATEC\SPVDEV001 <tri.susilo@altama.co.id>2024-06-21 15:09:57 +0700
commitf559326406175b18f75d2dd42c8bd2f0d901acbf (patch)
tree8b4ef014fe3a7131a9d79e2484ee3f1bb1253c58 /src/pages/api
parentb7def06cf32bf86036056718ece2350b4da72d23 (diff)
recomendation product for sales
Diffstat (limited to 'src/pages/api')
-rw-r--r--src/pages/api/shop/generate-recomendation.js36
1 files changed, 20 insertions, 16 deletions
diff --git a/src/pages/api/shop/generate-recomendation.js b/src/pages/api/shop/generate-recomendation.js
index 11dd153e..aea39adf 100644
--- a/src/pages/api/shop/generate-recomendation.js
+++ b/src/pages/api/shop/generate-recomendation.js
@@ -9,7 +9,7 @@ export default async function handler(req, res) {
return res.status(422).json({ error: 'parameter missing' })
}
- let parameter = [
+ /*let parameter = [
`q=${escapeSolrQuery(q)}`,
`q.op=${op}`,
`indent=true`,
@@ -22,23 +22,27 @@ export default async function handler(req, res) {
];
let result = await axios(
process.env.SOLR_HOST + '/solr/product/select?' + parameter.join('&')
+ );*/
+ let parameter = [
+ `q=${escapeSolrQuery(q)}`,
+ `q.op=${op}`,
+ `debugQuery=on`,
+ `defType=edismax`,
+ `df=display_name_s`,
+ `fq=-publish_b:false`,
+ `rows=5`,
+ ];
+ if(op == 'AND'){
+ parameter.push(`sort=product_rating_f DESC, price_discount_f DESC`);
+ parameter.push(`rows=1`);
+ }
+
+ let result = await axios(
+ process.env.SOLR_HOST + '/solr/recommendation/select?' + parameter.join('&')
);
try {
- let { auth } = req.cookies;
- if (auth) auth = JSON.parse(auth);
- result.data.response.products = productMappingSolr(
- 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;
- result.data = camelcaseObjectDeep(result.data);
- res.status(200).json(result.data);
+ result.data = camelcaseObjectDeep(result.data)
+ res.status(200).json(result.data)
} catch (error) {
res.status(400).json({ error: error.message });
}