feat: détection et suppression des doublons produits Shopify

- deleteShopifyProduct() dans shopifySync (DELETE REST API)
- GET /api/products/duplicates : groupe par ref/SKU, trie par ID (ancien en premier)
- DELETE /api/products/[id] : suppression unitaire avec auth
- Page /produits/doublons : liste des groupes, radio pour choisir lequel garder,
  confirmation avant suppression, état par groupe (idle/confirm/deleting/done)
- Lien 'Vérifier les doublons' dans l'en-tête de la page Produits

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-11 23:57:53 +02:00
parent a2c0789625
commit 297d47bd19
5 changed files with 364 additions and 1 deletions
+15
View File
@@ -164,6 +164,21 @@ export async function deactivateShopifyProduct(shopifyId: string): Promise<void>
}
}
/**
* Supprime définitivement un produit Shopify.
*/
export async function deleteShopifyProduct(shopifyId: string): Promise<void> {
const { baseUrl, headers } = getConfig()
const res = await fetch(`${baseUrl}/products/${shopifyId}.json`, {
method: 'DELETE',
headers,
})
if (!res.ok) {
const err = await res.text()
throw new Error(`Shopify deleteProduct error: ${res.status}${err}`)
}
}
/**
* Récupère l'ID de la première variante d'un produit Shopify.
* Nécessaire pour mettre à jour le prix (update variant).