C_Ma_For
4df074f02d
fix: image sortie 1000x1000 centrée + affichage split avant/après corrigé
2026-06-11 13:14:41 +02:00
C_Ma_For
06cda68929
fix: match UGS comme mot entier n'importe où dans le nom de fichier
2026-06-11 12:51:27 +02:00
C_Ma_For
c19510d413
fix: match UGS en début de nom de fichier exact (évite 30 de matcher 30827)
2026-06-11 12:47:26 +02:00
C_Ma_For
2de5c6670d
fix: recherche produit par SKU Shopify avec fallback sans suffixe (30827-dessus → 30827)
2026-06-11 12:20:27 +02:00
C_Ma_For
6a08fccb7a
fix: recherche UGS par contains dans le nom de fichier (ex: 30827-dessus contient 30827)
2026-06-10 09:38:16 +02:00
C_Ma_For
da52080e3e
fix: match UGS en préfixe dans search-sheets pour les images avec suffixe (dessus, -2, etc.)
2026-06-10 09:17:22 +02:00
C_Ma_For
f0b6ddf145
fix: propager le type réel du métachamp Shopify pour éviter les erreurs 422
2026-06-09 21:54:41 +02:00
C_Ma_For
d1e78e91e4
feat: sélection manuelle de produit Shopify quand réf. introuvable
2026-06-09 21:00:45 +02:00
C_Ma_For
071f126244
fix: re-ajouter import map onnxruntime-web pour détourage IA CDN
2026-06-09 14:54:29 +02:00
C_Ma_For
415b7db643
fix: détecter ligne d'en-têtes dynamiquement (row 1 vide sur OUTILLAGE etc, row 2 = vrais headers)
2026-06-09 14:50:23 +02:00
C_Ma_For
8ede847ba0
fix: recherche produit via Google Sheets (UGS col C → Shopify ID col A) + fallback Shopify
2026-06-09 13:41:53 +02:00
C_Ma_For
193edc80aa
fix: originalUrl mis à jour avec JPEG après conversion HEIC (aperçu original noir)
2026-06-09 13:27:10 +02:00
C_Ma_For
1f8db29b15
fix: ErrorBoundary autour de ImagesPage pour capturer crash IA
2026-06-09 13:19:45 +02:00
C_Ma_For
4b9db5bebf
fix: revert @imgly npm import → CDN + ErrorBoundary + next.config cleanup
2026-06-09 13:15:04 +02:00
C_Ma_For
a77f44b800
fix: @imgly/background-removal via npm + publicPath CDN + asyncWebAssembly webpack
2026-06-09 12:27:18 +02:00
C_Ma_For
0b26a61f90
fix: import map onnxruntime-web pour @imgly/background-removal CDN
2026-06-09 12:09:58 +02:00
C_Ma_For
2efe339576
fix: conversion HEIC serveur via heic-convert (WASM, supporte HEIC Apple vs sharp AVIF only)
2026-06-09 11:50:00 +02:00
C_Ma_For
c4edcb568c
feat: conversion HEIC serveur via sharp (fallback fiable Chrome/Firefox)
2026-06-09 11:24:24 +02:00
C_Ma_For
e3246d022e
fix: conversion HEIC — ajout fallback img+canvas pour Chrome macOS
2026-06-09 11:11:17 +02:00
C_Ma_For
9ab8b3ef60
fix: conversion HEIC native d'abord (Safari/macOS), heic2any fallback 30s
2026-06-09 11:07:04 +02:00
C_Ma_For
7da453606e
fix(ui): MetafieldResolver — défaut skip, UX claire create/map/ignore + labels
2026-06-09 10:56:50 +02:00
C_Ma_For
8d591bb769
fix: fetchMetafieldDefinitions + ensureMetafieldDefinition via GraphQL (REST n'expose pas cet endpoint)
2026-06-09 10:46:34 +02:00
C_Ma_For
bb596c7e32
feat(plan5): page /creation stepper 4 étapes + lien nav + fix TS shopifyMetafields
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
plan5-deployed
2026-06-09 10:20:36 +02:00
C_Ma_For
1ed8c055d7
feat(plan5): composants PendingRowsTable + MetafieldResolver + CreationProgress
2026-06-09 10:14:12 +02:00
C_Ma_For
40d537efb6
feat(plan5): API POST /api/creation/execute streaming NDJSON
2026-06-09 10:09:27 +02:00
C_Ma_For
015833150a
feat(plan5): API GET /api/creation/metafields (TDD)
2026-06-09 09:58:14 +02:00
C_Ma_For
04833b490c
feat(plan5): API GET /api/creation/preview (TDD)
2026-06-09 09:57:29 +02:00
C_Ma_For
072110e655
feat(plan5): shopifyCollections — ajout produit à collection
2026-06-09 09:55:57 +02:00
C_Ma_For
421c275d48
feat(plan5): shopifyMetafields — matching + gestion définitions (TDD)
...
Implémente Task 4 du Plan 5:
- normalizeMetafieldKey: minuscules, accents retirés, espaces/parenth→_, max 30 chars
- matchMetafields: compare clé normalisée d'une colonne avec les clés existantes
- fetchMetafieldDefinitions: récupère les définitions Shopify existantes
- ensureMetafieldDefinition: crée une définition si manquante
- setProductMetafield: définit un métachamp sur un produit
7 tests passants (4 normalizeMetafieldKey + 3 matchMetafields).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-09 09:52:23 +02:00
C_Ma_For
ed091711c8
feat(plan5): openaiClient — génération descriptions GPT-4o (TDD)
2026-06-09 09:42:26 +02:00
C_Ma_For
3aa770321c
feat(plan5): creationSheets — lecture lignes en attente (TDD)
2026-06-09 09:40:23 +02:00
C_Ma_For
2e9df3659f
feat(plan5): types création + modèle Prisma ProductCreation
2026-06-09 09:33:11 +02:00
C_Ma_For
1e48ca142f
fix: remplacer status=any par deux appels active+draft (API REST Shopify)
2026-06-09 00:05:53 +02:00
C_Ma_For
c89ab1c818
feat: lire tous les onglets Google Sheets (un onglet par famille de produits)
2026-06-08 23:56:22 +02:00
C_Ma_For
4263b8afd0
fix: onglet Google Sheets par défaut MATRICE au lieu de Produits
2026-06-08 23:52:09 +02:00
C_Ma_For
4db43f833b
feat(plan4): page /parametres avec onglets Connexions + Utilisateurs
plan4-deployed
2026-06-08 23:29:32 +02:00
C_Ma_For
4e4268d678
feat(plan4): composants ConnectionStatus + UsersManager
2026-06-08 23:28:29 +02:00
C_Ma_For
1934d0b655
feat(plan4): page /produits avec catalogue Shopify + filtres
2026-06-08 23:26:41 +02:00
C_Ma_For
119123e006
feat(plan4): composants ProductFiltersBar + ProductTable
2026-06-08 23:26:01 +02:00
C_Ma_For
5825640105
feat(plan4): API GET /api/admin/connections/test
2026-06-08 23:23:53 +02:00
C_Ma_For
f27b62a403
feat(plan4): API CRUD /api/admin/users (TDD)
2026-06-08 23:23:10 +02:00
C_Ma_For
9303aab78e
feat(plan4): API GET /api/products/list avec filtre statut (TDD)
2026-06-08 23:21:18 +02:00
C_Ma_For
6dd6dc301e
feat(plan4): types CatalogProduct, ProductFilters, ProductListResponse
2026-06-08 23:18:29 +02:00
C_Ma_For
e576df334a
fix: fusionner imports next/server dupliqués
2026-06-08 23:05:51 +02:00
C_Ma_For
dc88e56f49
fix: supprimer API_VERSION inutilisé + eslint-disable _req
2026-06-08 22:59:30 +02:00
C_Ma_For
e04e286111
fix: API Key Google Sheets (remplace service account) + signatures routes GET
2026-06-08 22:52:40 +02:00
C_Ma_For
abf5210de6
fix: corriger erreurs ESLint sync (apostrophes, imports inutilisés)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
plan3-deployed
2026-06-08 22:37:54 +02:00
C_Ma_For
97f011a24b
feat: module Sync Sheets complet — stepper 4 étapes, diff, streaming, historique
...
- Replace placeholder page.tsx with full implementation:
- 4-step stepper (Analyser → Diff → Confirmer → Progression)
- Step 1: Call /api/sync/preview to analyze Sheet vs Shopify
- Step 2: Display DiffTable with changes summary
- Step 3: Confirmation with actionable changes count
- Step 4: Real-time progress streaming from /api/sync/execute
- History section with loadable entries
- Fix type annotations in preview.test.ts (SyncProduct, ShopifyProductFull)
- All 40 tests passing, TypeScript strict mode clean
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 22:26:37 +02:00
C_Ma_For
cdbddddaec
feat: composant SyncHistory
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 22:07:10 +02:00
C_Ma_For
94993c3cbc
feat: composant SyncProgress
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-08 22:07:04 +02:00