diff --git a/src/pages/dashboard/AddProductPage.tsx b/src/pages/dashboard/AddProductPage.tsx index d099568..30e62d4 100644 --- a/src/pages/dashboard/AddProductPage.tsx +++ b/src/pages/dashboard/AddProductPage.tsx @@ -235,6 +235,16 @@ export const AddProductPage: React.FC = () => { } }, [editProduct]); + // Synchronize SKU with Category, Seller MID, and Catalog sequence + useEffect(() => { + const isLegacyOrEmpty = !sku || /^TRDX-\d{4,6}$/.test(sku) || sku.startsWith('TRDX-GEN-'); + if (!editProduct || isLegacyOrEmpty) { + if (category) { + setSku(generateTradhoxSku(sellerMid, category, nextProductSeq)); + } + } + }, [category, sellerMid, nextProductSeq]); + const craftTypes = category ? (CRAFT_TYPES[category] || []) : []; const clusters = category ? (CLUSTERS[category] || []) : []; @@ -341,7 +351,11 @@ export const AddProductPage: React.FC = () => { try { const activeSupportingImages = supportingImages.filter(img => img && img.trim().length > 0); const productPayload: any = { - sku: (sku && sku.trim()) ? sku.trim().toUpperCase() : generateTradhoxSku(sellerMid, category, nextProductSeq), + sku: (() => { + const trimmed = (sku || '').trim().toUpperCase(); + const isLegacy = !trimmed || /^TRDX-\d{4,6}$/.test(trimmed) || trimmed.startsWith('TRDX-GEN-'); + return isLegacy ? generateTradhoxSku(sellerMid, category, nextProductSeq) : trimmed; + })(), title: title || 'Authentic Handcrafted Item', category: category || 'Handicrafts & Art', description: story || `${title} - Handcrafted ${category}`,