summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-01-20 15:23:52 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-01-20 15:23:52 +0700
commit6d9c1067b6e857eb95f12864cc88117350ae6cfb (patch)
treeb19f92dd7dc80211c703182d7d8e9b4fc5b69e08 /src
parent389382046d804053d8e5c6de13d7d0b197175022 (diff)
<iman> ubah tag category
Diffstat (limited to 'src')
-rw-r--r--src/pages/api/shop/variant.js1
-rw-r--r--src/pages/google_merchant/products/[page].js33
2 files changed, 31 insertions, 3 deletions
diff --git a/src/pages/api/shop/variant.js b/src/pages/api/shop/variant.js
index 249d087e..47e4f121 100644
--- a/src/pages/api/shop/variant.js
+++ b/src/pages/api/shop/variant.js
@@ -119,6 +119,7 @@ const productResponseMap = (products, pricelist) => {
let productMapped = {
id: product.product_id_i || '',
+ productTemplate: product.template_id_i || '',
image: product.image_s || '',
code: product.default_code_s || '',
name: product.name_s || '',
diff --git a/src/pages/google_merchant/products/[page].js b/src/pages/google_merchant/products/[page].js
index ae3348cb..8dd28a39 100644
--- a/src/pages/google_merchant/products/[page].js
+++ b/src/pages/google_merchant/products/[page].js
@@ -6,7 +6,7 @@ import _ from 'lodash-contrib';
import { create } from 'xmlbuilder';
export async function getServerSideProps({ res, query }) {
- const PPN = process.env.NEXT_PUBLIC_PPN
+ const PPN = process.env.NEXT_PUBLIC_PPN;
const titleContent = 'Indoteknik.com: B2B Industrial Supply & Solution';
const descriptionContent =
'Temukan pilihan produk B2B Industri & Alat Teknik untuk Perusahaan, UMKM & Pemerintah dengan lengkap, mudah dan transparan.';
@@ -24,7 +24,7 @@ export async function getServerSideProps({ res, query }) {
const brandsData = {};
const categoriesData = {};
-
+ let i = 0;
const productItems = [];
for (const product of products.response.products) {
const productUrl = createSlug(
@@ -49,6 +49,7 @@ export async function getServerSideProps({ res, query }) {
let brandId = product.manufacture?.id ?? null;
let categoryId = null;
+ let category_level_1 = null;
if (brandId && brandId in brandsData) {
categoryId = brandsData[brandId]?.category_ids?.[0] ?? null;
@@ -57,6 +58,23 @@ export async function getServerSideProps({ res, query }) {
brandsData[brandId] = solrBrand;
categoryId = solrBrand?.category_ids?.[0] ?? null;
}
+ if (product.categories[0]?.id) {
+ const getProductTemplate = await getProductTemplateId(
+ product?.productTemplate ?? null
+ );
+ i = i + 1;
+ const id =
+ getProductTemplate?.category_parent_ids?.length > 0
+ ? getProductTemplate.category_parent_ids[0]
+ : null;
+ if (id) {
+ category_level_1 = await getCategoryById(id);
+ } else {
+ category_level_1 = null;
+ }
+ } else {
+ category_level_1 = null;
+ }
if (categoryId && categoryId in categoriesData) {
categoryName = categoriesData[categoryId]?.name_s ?? null;
@@ -80,7 +98,9 @@ export async function getServerSideProps({ res, query }) {
'g:price': {
'#text': `${Math.round(product.lowestPrice.price * PPN)} IDR`,
},
- 'g:custom_label_3': { '#text': product.categories[0]?.name || 'Tidak Ada Kategori' },
+ 'g:custom_label_3': {
+ '#text': category_level_1?.name_s || 'Tidak Ada Kategori',
+ },
};
if (product.stockTotal == 0) {
@@ -128,6 +148,13 @@ const getBrandById = async (id) => {
return brand.data.response.docs[0] ?? null;
};
+const getProductTemplateId = async (id) => {
+ const category = await axios(
+ `${process.env.SOLR_HOST}/solr/product/select?q=id:${id}`
+ );
+ return category.data.response.docs[0] ?? null;
+};
+
const getCategoryById = async (id) => {
const category = await axios(
`${process.env.SOLR_HOST}/solr/categories/select?q=id:${id}`