From b878d3369fe7a43a85c8410c50d163a9e326644e Mon Sep 17 00:00:00 2001 From: FIN-IT_AndriFP Date: Mon, 19 Jan 2026 10:38:20 +0700 Subject: (andri) clean attribute --- src/pages/api/magento-product.ts | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/pages/api/magento-product.ts b/src/pages/api/magento-product.ts index f61daf69..51ca1732 100644 --- a/src/pages/api/magento-product.ts +++ b/src/pages/api/magento-product.ts @@ -49,6 +49,17 @@ export default async function handler( return res.status(200).json({ specsMatrix: [], upsell_ids: [], related_ids: [] }); } + // --- HELPER: Fungsi untuk membersihkan nilai dari tanda kutip --- + const cleanAttributeValue = (val: any) => { + if (val === null || val === undefined) return ''; + let str = String(val).trim(); + // Cek apakah diawali dan diakhiri tanda kutip + if (str.length >= 2 && str.startsWith('"') && str.endsWith('"')) { + str = str.slice(1, -1).trim(); + } + return str; + }; + // ===================================================================== // 2. BUILD SPECS MATRIX // Kita butuh daftar semua atribut unik (z_*) dari seluruh varian @@ -99,10 +110,9 @@ export default async function handler( items.forEach((p: any) => { const attr = p.custom_attributes.find((a: any) => a.attribute_code === code); - let rawVal = attr && attr.value !== null ? String(attr.value).trim() : ''; - if (rawVal.length >= 2 && rawVal.startsWith('"') && rawVal.endsWith('"')) { - rawVal = rawVal.slice(1, -1).trim(); - } + // Gunakan helper cleanAttributeValue disini + const rawVal = attr ? cleanAttributeValue(attr.value) : ''; + if (rawVal !== '' && rawVal !== '-') { hasData = true; } @@ -121,14 +131,14 @@ export default async function handler( descriptions[p.sku] = descAttr ? descAttr.value : ''; }); + // [UPDATED] Warranties dengan filter tanda kutip const warranties: Record = {}; items.forEach((p: any) => { const warAttr = p.custom_attributes.find((a: any) => a.attribute_code === 'z_warranty'); - warranties[p.sku] = warAttr ? warAttr.value : ''; + // Gunakan helper cleanAttributeValue agar tanda kutip hilang + warranties[p.sku] = warAttr ? cleanAttributeValue(warAttr.value) : ''; }); - - // ===================================================================== // 3. AMBIL LINKS (UPSELL & RELATED) DARI MAIN VARIANT SAJA // ===================================================================== -- cgit v1.2.3