fix: prioritiser SKU sans suffixe numérique pour éviter faux match (ex: 26618-D-1 → 26618-D)
Un fichier nommé 26618-D-1.jpg trouvait le SKU 26618-D-1 (céramique) avant de chercher 26618-D (la porte). On essaie maintenant d'abord le ref sans suffixe purement numérique (-1, -2…). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+14
-3
@@ -52,13 +52,24 @@ export async function searchProductByRef(ref: string): Promise<ShopifyProductRes
|
||||
}
|
||||
}
|
||||
|
||||
// 1. SKU exact (ex: "30827")
|
||||
// Si le ref se termine par un suffixe purement numérique (ex: "26618-D-1" → "26618-D"),
|
||||
// on essaie d'abord sans ce suffixe pour éviter de matcher un autre produit qui aurait
|
||||
// accidentellement ce SKU complet
|
||||
const withoutNumericSuffix = /[-_]\d+$/.test(ref) ? ref.replace(/[-_]\d+$/, '') : null
|
||||
|
||||
// 1. SKU sans suffixe numérique en priorité (ex: "26618-D-1" → "26618-D")
|
||||
if (withoutNumericSuffix) {
|
||||
const result = await searchBySku(withoutNumericSuffix)
|
||||
if (result.found) return result
|
||||
}
|
||||
|
||||
// 2. SKU exact
|
||||
let result = await searchBySku(ref)
|
||||
if (result.found) return result
|
||||
|
||||
// 2. SKU sans suffixe : "30827-dessus" → "30827" (retire tout après le dernier séparateur)
|
||||
// 3. SKU sans suffixe non-numérique : "30827-dessus" → "30827"
|
||||
const withoutSuffix = ref.replace(/[-_ ][^-_ ]*$/, '')
|
||||
if (withoutSuffix !== ref) {
|
||||
if (withoutSuffix !== ref && withoutSuffix !== withoutNumericSuffix) {
|
||||
result = await searchBySku(withoutSuffix)
|
||||
if (result.found) return result
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user