summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-09-08 15:09:33 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-09-08 15:09:33 +0700
commite9ae3bc8a8c09bcc1cbd3173dec5230a947c1119 (patch)
treed1a3b5572cf176e22c9df56f92de52447078847b
parent776d26572e69fa9d0b57b586262e4bd86b21dd92 (diff)
parent9200bc2c96970ceea88850e325bc70a65db564e0 (diff)
<hafid> validation Address fix conflict
-rw-r--r--src/lib/checkout/components/Checkout.jsx6
-rw-r--r--src/lib/checkout/components/FinishCheckout.jsx19
-rw-r--r--src/pages/api/shop/search.js68
3 files changed, 41 insertions, 52 deletions
diff --git a/src/lib/checkout/components/Checkout.jsx b/src/lib/checkout/components/Checkout.jsx
index b36c09bf..a6d9cf94 100644
--- a/src/lib/checkout/components/Checkout.jsx
+++ b/src/lib/checkout/components/Checkout.jsx
@@ -1019,10 +1019,10 @@ const Checkout = () => {
</div>
)}
- {selectedCarrierId == SELF_PICKUP_ID && (
+ {selectedCourierId == SELF_PICKUP_ID && (
<PickupAddress label='Alamat Pickup' />
)}
- {selectedCarrierId != SELF_PICKUP_ID && (
+ {selectedCourierId != SELF_PICKUP_ID && (
<Skeleton
isLoaded={!!selectedAddress.invoicing && !!selectedAddress.shipping}
minHeight={320}
@@ -1317,7 +1317,7 @@ const Checkout = () => {
<div className='flex'>
{' '}
<div className='w-3/4 border border-gray_r-6 rounded bg-white'>
- {selectedCarrierId == SELF_PICKUP_ID && (
+ {selectedCourierId == SELF_PICKUP_ID && (
<PickupAddress label='Alamat Pickup' />
)}
{selectedCarrierId != SELF_PICKUP_ID && (
diff --git a/src/lib/checkout/components/FinishCheckout.jsx b/src/lib/checkout/components/FinishCheckout.jsx
index d533325e..51837a59 100644
--- a/src/lib/checkout/components/FinishCheckout.jsx
+++ b/src/lib/checkout/components/FinishCheckout.jsx
@@ -55,12 +55,21 @@ const FinishCheckout = ({ query }) => {
<div className='text-title-sm md:text-title-lg text-center font-semibold'>
Terima Kasih atas Pembelian di Indoteknik.com
</div>
- <p className='text-title-sm md:text-title-lg font-semibold my-2'>No. Transaksi: <span className='text-red-500'>{query?.order_id?.replaceAll('-', '/')}</span></p>
+ <p className='text-title-sm md:text-title-lg font-semibold my-2'>
+ No. Transaksi:{' '}
+ <span className='text-red-500'>
+ {query?.order_id?.replaceAll('-', '/')}
+ </span>
+ </p>
<div className='flex flex-col justify-center items-center text-body-2 md:text-body-1 text-center mt-3 px-24 md:px-36 py-4 border-2 gap-y-2 rounded'>
- <p className="text-title-sm md:text-title-xl text-gray-500 mt-1">Estimasi Barang Siap pada Tanggal</p>
- <p className="text-title-sm md:text-title-xl text-red-500 font-semibold my-2">{data?.expectedReadyToShip}</p>
+ <p className='text-title-sm md:text-title-xl text-gray-500 mt-1'>
+ Estimasi Barang Siap pada Tanggal
+ </p>
+ <p className='text-title-sm md:text-title-xl text-red-500 font-semibold my-2'>
+ {data?.expectedReadyToShip}
+ </p>
<Link
- href={`/my/quotations/${data?.id}`}
+ href={`/my/transactions/${data?.id}`}
className='btn-solid-red rounded-md text-base'
>
Cek Detail Transaksi
@@ -74,7 +83,7 @@ const FinishCheckout = ({ query }) => {
</a>{' '}
atau{' '}
<span onClick={sendEmail} className='text-red-500 cursor-pointer'>
- kirim rincian pesanan ulang
+ Kirim ulang rincian pesanan ke Email anda.
</span>
.
</div>
diff --git a/src/pages/api/shop/search.js b/src/pages/api/shop/search.js
index 81cc22c5..1760be70 100644
--- a/src/pages/api/shop/search.js
+++ b/src/pages/api/shop/search.js
@@ -48,31 +48,12 @@ export default async function handler(req, res) {
break;
}
- // let suggestWord = null;
- // let keywords = q;
- // let checkQ = null;
-
- // if (q != '*') {
- // checkQ = q.trim().split(/[\s\+\-\!\(\)\{\}\[\]\^"~\*\?:\\\/]+/);
- // if (checkQ.length > 1) {
- // const dataSearchSuggest = await axios(
- // `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/suggest?q=${checkQ[1]}`
- // );
- // suggestWord = dataSearchSuggest.data.suggestions[0];
- // }
- // if (suggestWord && suggestWord?.term.split(' ').length <= 1) {
- // keywords = `"${escapeSolrQuery(checkQ[0] + ' ' + suggestWord?.term)}"`;
- // }
- // }
-
- // let newQ = keywords;
-
let checkQ = q.trim().split(/[\s\+\-\!\(\)\{\}\[\]\^"~\*\?:\\\/]+/);
let newQ = escapeSolrQuery(q);
const formattedQuery = `(${newQ
.split(' ')
- .map((term) => (term.length < 2 ? term : `${term}*`))
+ .map((term) => (term.length < 2 ? term : `${term}*`)) // Tambahkan '*' hanya jika panjang kata >= 2
.join(' ')})`;
const mm =
@@ -89,7 +70,8 @@ export default async function handler(req, res) {
];
if (orderBy === 'stock') {
- filterQueries.push('stock_total_f:[1 TO *]');
+ filterQueries.push('stock_total_f:{1 TO *}&sort=stock_total_f desc');
+ // filterQueries.push(`stock_total_f DESC`)
}
if (fq && source != 'similar' && typeof fq != 'string') {
@@ -111,7 +93,7 @@ export default async function handler(req, res) {
let offset = (page - 1) * limit;
let parameter = [
- // === Facet disjunctive: exclude filter brand/cat saat hitung facet ===
+ // === Disjunctive facets: exclude brand & category filters saat hitung facet ===
'facet.field={!ex=brand}manufacture_name_s',
'facet.field={!ex=cat}category_name',
'facet=true',
@@ -142,30 +124,29 @@ export default async function handler(req, res) {
if (auth.feature.onlyReadyStock) stock = true;
}
- if (brand)
- parameter.push(
- // tag filter brand
- `fq=${encodeURIComponent(
- `{!tag=brand}manufacture_name_s:(${brand
- .split(',')
- .map((manufacturer) => `"${manufacturer.replace(/"/g, '\\"')}"`)
- .join(' OR ')})`
- )}`
- );
+ if (brand) {
+ // bentuk ekspresi sama seperti versi kamu, tapi dibungkus tag brand
+ const brandExpr = brand
+ .split(',')
+ .map(
+ (manufacturer) =>
+ `manufacture_name:"${encodeURIComponent(manufacturer)}"`
+ )
+ .join(' OR ');
+ parameter.push(`fq={!tag=brand}(${brandExpr})`);
+ }
- if (category)
- parameter.push(
- // tag filter category
- `fq=${encodeURIComponent(
- `{!tag=cat}category_name:(${category
- .split(',')
- .map((cat) => `"${cat.replace(/"/g, '\\"')}"`)
- .join(' OR ')})`
- )}`
- );
+ if (category) {
+ // sama: tag kategori
+ const catExpr = category
+ .split(',')
+ .map((cat) => `category_name:"${encodeURIComponent(cat)}"`)
+ .join(' OR ');
+ parameter.push(`fq={!tag=cat}(${catExpr})`);
+ }
// if (category) parameter.push(`fq=category_name:${capitalizeFirstLetter(category.replace(/,/g, ' OR '))}`)
- if (stock) parameter.push(`fq=stock_total_f:{1 TO *]`);
+ if (stock) parameter.push(`fq=stock_total_f:{1 TO *}`);
// Single fq in url params
if (typeof fq === 'string') parameter.push(`fq=${encodeURIComponent(fq)}`);
@@ -174,7 +155,6 @@ export default async function handler(req, res) {
parameter = parameter.concat(
fq.map((val) => `fq=${encodeURIComponent(val)}`)
);
-
let result = await axios(
process.env.SOLR_HOST + '/solr/product/select?' + parameter.join('&')
);