summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/checkout/components/Checkout.jsx4
-rw-r--r--src/lib/checkout/components/CheckoutOld.jsx4
-rw-r--r--src/lib/product/components/Product/ProductDesktop.jsx2
-rw-r--r--src/lib/product/components/ProductCard.jsx8
-rw-r--r--src/lib/variant/components/VariantCard.jsx2
-rw-r--r--src/pages/api/shop/product-detail.js2
-rw-r--r--src/pages/api/shop/variant.js17
-rw-r--r--src/pages/google_merchant/products/[page].js45
8 files changed, 59 insertions, 25 deletions
diff --git a/src/lib/checkout/components/Checkout.jsx b/src/lib/checkout/components/Checkout.jsx
index c78757a0..9a799010 100644
--- a/src/lib/checkout/components/Checkout.jsx
+++ b/src/lib/checkout/components/Checkout.jsx
@@ -1081,7 +1081,7 @@ const Checkout = () => {
<div className='font-normal mt-1'>
{product.price.priceDiscount > 0
? currencyFormat(product?.price?.priceDiscount)
- : 'Call For Price'}
+ : 'Call for Inquiry'}
</div>
)}
</td>
@@ -1102,7 +1102,7 @@ const Checkout = () => {
})}
className='underline'
>
- Call For Price{' '}
+ Call for Inquiry{' '}
</a>
)}
</div>
diff --git a/src/lib/checkout/components/CheckoutOld.jsx b/src/lib/checkout/components/CheckoutOld.jsx
index 6852059e..d57fbd66 100644
--- a/src/lib/checkout/components/CheckoutOld.jsx
+++ b/src/lib/checkout/components/CheckoutOld.jsx
@@ -486,7 +486,7 @@ const Checkout = () => {
<div className='font-normal mt-1'>
{product.price.priceDiscount > 0
? currencyFormat(product?.price?.priceDiscount)
- : 'Call For Price'}
+ : 'Call for Inquiry'}
</div>
</td>
<td>
@@ -501,7 +501,7 @@ const Checkout = () => {
})}
className='underline'
>
- Call For Price{' '}
+ Call for Inquiry{' '}
</a>
)}
</div>
diff --git a/src/lib/product/components/Product/ProductDesktop.jsx b/src/lib/product/components/Product/ProductDesktop.jsx
index ab4943eb..11c34009 100644
--- a/src/lib/product/components/Product/ProductDesktop.jsx
+++ b/src/lib/product/components/Product/ProductDesktop.jsx
@@ -637,7 +637,7 @@ const ProductDesktop = ({ products, wishlist, toggleWishlist }) => {
rel='noopener noreferrer'
target='_blank'
>
- Call for price
+ Call for Inquiry
</a>
)}
</div>
diff --git a/src/lib/product/components/ProductCard.jsx b/src/lib/product/components/ProductCard.jsx
index 317d0c32..9500a3fd 100644
--- a/src/lib/product/components/ProductCard.jsx
+++ b/src/lib/product/components/ProductCard.jsx
@@ -102,7 +102,7 @@ const ProductCard = ({ product, simpleTitle, variant = 'vertical' }) => {
{product?.lowestPrice.priceDiscount > 0 ? (
currencyFormat(product?.lowestPrice.priceDiscount)
) : (
- <a href={callForPriceWhatsapp}>Call for price</a>
+ <a href={callForPriceWhatsapp}>Call for Inquiry</a>
)}
</div>
</>
@@ -117,7 +117,7 @@ const ProductCard = ({ product, simpleTitle, variant = 'vertical' }) => {
</div>
</>
) : (
- <a href={callForPriceWhatsapp}>Call for price</a>
+ <a href={callForPriceWhatsapp}>Call for Inquiry</a>
)}
</div>
)}
@@ -205,7 +205,7 @@ const ProductCard = ({ product, simpleTitle, variant = 'vertical' }) => {
{product?.lowestPrice?.priceDiscount > 0 ? (
currencyFormat(product?.lowestPrice?.priceDiscount)
) : (
- <a href={callForPriceWhatsapp}>Call for price</a>
+ <a href={callForPriceWhatsapp}>Call for Inquiry</a>
)}
</div>
</>
@@ -220,7 +220,7 @@ const ProductCard = ({ product, simpleTitle, variant = 'vertical' }) => {
</div>
</>
) : (
- <a href={callForPriceWhatsapp}>Call for price</a>
+ <a href={callForPriceWhatsapp}>Call for Inquiry</a>
)}
</div>
)}
diff --git a/src/lib/variant/components/VariantCard.jsx b/src/lib/variant/components/VariantCard.jsx
index 6c0ab974..9f1b5733 100644
--- a/src/lib/variant/components/VariantCard.jsx
+++ b/src/lib/variant/components/VariantCard.jsx
@@ -68,7 +68,7 @@ const VariantCard = ({ product, openOnClick = true, buyMore = false }) => {
})}
className='underline text-danger-500'
>
- Call For Price{' '}
+ Call for Inquiry{' '}
</a>
)}
</p>
diff --git a/src/pages/api/shop/product-detail.js b/src/pages/api/shop/product-detail.js
index 22a53df2..247f2a04 100644
--- a/src/pages/api/shop/product-detail.js
+++ b/src/pages/api/shop/product-detail.js
@@ -8,7 +8,7 @@ export default async function handler(req, res) {
)
let productVariants = await axios(
process.env.SOLR_HOST +
- `/solr/variants/select?q=template_id_i:${req.query.id}&q.op=OR&indent=true&rows=100`
+ `/solr/variants/select?q=template_id_i:${req.query.id}&q.op=OR&indent=true&rows=100&fq=-publish_b:false`
)
let auth = req.query.auth === 'false' ? JSON.parse(req.query.auth) : req.query.auth
let result = productMappingSolr(productTemplate.data.response.docs, auth || false)
diff --git a/src/pages/api/shop/variant.js b/src/pages/api/shop/variant.js
index 30213cc3..249d087e 100644
--- a/src/pages/api/shop/variant.js
+++ b/src/pages/api/shop/variant.js
@@ -54,7 +54,7 @@ export default async function handler(req, res) {
if (priceFrom > 0 || priceTo > 0) {
parameter.push(
- `fq=price_discount_f:[${priceFrom == '' ? '*' : priceFrom} TO ${
+ `fq=price_tier1_v2_f:[${priceFrom == '' ? '*' : priceFrom} TO ${
priceTo == '' ? '*' : priceTo
}]`
)
@@ -103,17 +103,12 @@ const escapeSolrQuery = (query) => {
const productResponseMap = (products, pricelist) => {
return products.map((product) => {
- let price = product.price_f || 0
- let priceDiscount = product.price_discount_f || 0
- let discountPercentage = product.discount_f || 0
+ let price = product.price_tier1_v2_f || 0
+ let priceDiscount = 0
+ let discountPercentage = 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)
- discountPercentage = pricelistDiscountPerc
+ if (pricelist && product?.[`price_${pricelist}_f`] < price) {
+ price = product?.[`price_${pricelist}_f`] || 0
}
if (product?.flashsale_id_i > 0) {
diff --git a/src/pages/google_merchant/products/[page].js b/src/pages/google_merchant/products/[page].js
index d6309090..c8b4079b 100644
--- a/src/pages/google_merchant/products/[page].js
+++ b/src/pages/google_merchant/products/[page].js
@@ -2,6 +2,7 @@ import { createSlug } from '@/core/utils/slug'
import toTitleCase from '@/core/utils/toTitleCase'
import productSearchApi from '@/lib/product/api/productSearchApi'
import variantSearchApi from '@/lib/product/api/variantSearchApi'
+import axios from 'axios'
import _ from 'lodash-contrib'
import { create } from 'xmlbuilder'
@@ -21,8 +22,11 @@ export async function getServerSideProps({ res, query }) {
}
const products = await variantSearchApi({ query: _.toQuery(queries) })
+ const brandsData = {}
+ const categoriesData = {}
+
const productItems = []
- products.response.products.forEach((product) => {
+ for (const product of products.response.products) {
const productUrl = createSlug('/shop/product/variant/', product.name, product.id, true)
const productId = product.code != '' ? product.code : product.id
const regexHtmlTags = /(<([^>]+)>)/gi
@@ -34,6 +38,27 @@ export async function getServerSideProps({ res, query }) {
product.description = defaultProductDescription
}
+ let categoryName = null
+
+ let brandId = product.manufacture?.id ?? null
+ let categoryId = null
+
+ if (brandId && brandId in brandsData) {
+ categoryId = brandsData[brandId].category_ids?.[0] ?? null
+ } else {
+ const solrBrand = await getBrandById(brandId)
+ brandsData[brandId] = solrBrand
+ categoryId = solrBrand?.category_ids?.[0] ?? null
+ }
+
+ if (categoryId && categoryId in categoriesData) {
+ categoryName = categoriesData[categoryId].name_s ?? null
+ } else {
+ const solrCategory = await getCategoryById(categoryId)
+ categoriesData[categoryId] = solrCategory
+ categoryName = solrCategory?.name_s ?? null
+ }
+
const availability = 'in_stock'
const item = {
@@ -47,20 +72,24 @@ export async function getServerSideProps({ res, query }) {
'g:brand': { '#text': product.manufacture?.name || '' },
'g:price': { '#text': `${Math.round(product.lowestPrice.price * 1.11)} IDR` }
}
-
+
if (product.stockTotal == 0) {
item['g:custom_label_0'] = { '#text': 'Stok Tidak Tersedia' }
} else {
item['g:custom_label_1'] = { '#text': 'Stok Tersedia' }
}
+ if (categoryName) {
+ item['g:custom_label_2'] = { '#text': categoryName }
+ }
+
if (product.lowestPrice.discountPercentage > 0) {
item['g:sale_price'] = {
'#text': `${Math.round(product.lowestPrice.priceDiscount * 1.11)} IDR`
}
}
productItems.push(item)
- })
+ }
const googleMerchant = {
rss: {
@@ -82,6 +111,16 @@ export async function getServerSideProps({ res, query }) {
return { props: {} }
}
+const getBrandById = async (id) => {
+ const brand = await axios(`${process.env.SOLR_HOST}/solr/brands/select?q=id:${id}`)
+ return brand.data.response.docs[0] ?? null
+}
+
+const getCategoryById = async (id) => {
+ const category = await axios(`${process.env.SOLR_HOST}/solr/categories/select?q=id:${id}`)
+ return category.data.response.docs[0] ?? null
+}
+
export default function GoogleMerchantPage() {
return null
}