diff options
| author | FIN-IT_AndriFP <andrifebriyadiputra@gmail.com> | 2026-01-28 11:05:37 +0700 |
|---|---|---|
| committer | FIN-IT_AndriFP <andrifebriyadiputra@gmail.com> | 2026-01-28 11:05:37 +0700 |
| commit | dac398aa33f8e57fd17fc9b115cf435c2d877b19 (patch) | |
| tree | 5e99caa509c557307cf2d1dd692dbf43f6023261 /src | |
| parent | 8ea5e52346fff91462e63e3e881f65a47ffd1354 (diff) | |
fix
Diffstat (limited to 'src')
| -rw-r--r-- | src/pages/api/magento-product.ts | 4 | ||||
| -rw-r--r-- | src/pages/api/shop/search.js | 17 |
2 files changed, 14 insertions, 7 deletions
diff --git a/src/pages/api/magento-product.ts b/src/pages/api/magento-product.ts index 551a4a5e..28738878 100644 --- a/src/pages/api/magento-product.ts +++ b/src/pages/api/magento-product.ts @@ -12,8 +12,8 @@ export default async function handler( return res.status(400).json({ error: 'SKUs are required' }); } - const token = 'vxrtcjvztv1icgjzsui45de9kmwlz0lf'; - const baseUrl = 'https://pimdev.1211.my.id/rest/V1'; + const token = process.env.MAGENTO_API_KEY || ''; + const baseUrl = process.env.MAGENTO_API_HOST || ''; try { const skuList = String(skus).split(','); // Contoh: ['221', '222', '223'] diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js index 37cfa1bd..89d75cd0 100644 --- a/src/pages/api/shop/search.js +++ b/src/pages/api/shop/search.js @@ -35,11 +35,14 @@ export default async function handler(req, res) { try { let qCompare = q === '*' ? '*:*' : q; - // Sanitasi Query if (qCompare !== '*:*') { - // Kita escape, tapi biarkan stringnya bersih (jangan ditambah wildcard * manual) - // karena kita serahkan ke 'edismax' parser qCompare = escapeSolrQuery(qCompare); + qCompare = qCompare.split(/\s+/).map(term => { + if (term && !term.includes('*')) { + return term + '*'; + } + return term; + }).join(' '); } // [SOLUSI] Gunakan URLSearchParams untuk menyusun URL dengan aman @@ -59,8 +62,12 @@ export default async function handler(req, res) { // 3. display_name_s^1 : Cadangan params.append('qf', 'default_code_s^20 search_keywords_t^10 display_name_s^1'); - // Minimum Match 100% (Semua kata harus ada), ubah jika ingin lebih longgar - params.append('mm', '100%'); + const compareWords = qCompare.split(/\s+/).filter(w => w.length > 0); + let compareMm = '100%'; + if (compareWords.length >= 3) { + compareMm = '75%'; + } + params.append('mm', compareMm); if (group === 'false') { params.append('group', 'false'); |
