fix: auto-sync and replace legacy random SKUs with TRDX-[cat]-[mid]-[seq] standard in AddProduct
All checks were successful
Beta CI/CD Pipeline / build-and-test (push) Successful in 1m43s
Beta CI/CD Pipeline / deploy-beta (push) Successful in 43s

This commit is contained in:
vickytechkey 2026-11-01 16:09:40 +05:30
parent ad3bde264e
commit 47f2ecfd39

View file

@ -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}`,