# Excel to WooCommerce Importer

Plugin WordPress pour importer des produits WooCommerce depuis un fichier Excel généré par le système Automatisme Online.

## Description

Ce plugin permet d'importer facilement et rapidement des produits WooCommerce à partir de fichiers Excel (.xlsx, .xls) ou CSV. Il a été spécialement conçu pour traiter les exports de produits du système Automatisme Online avec un mapping automatique des colonnes.

### Fonctionnalités principales

- **Import par batch** : Traitement par lots de 2 produits pour un suivi fluide
- **Barre de progression en temps réel** : Interface Ajax avec suivi de la progression
- **Mapping automatique** : Détection automatique des colonnes et mapping vers WooCommerce
- **Système de logs personnalisé** : Journalisation dédiée avec interface de consultation
- **Gestion d'erreurs avancée** : Affichage des erreurs avec continuation du traitement
- **Support complet** : Produits, catégories, attributs, images, SEO, etc.

## Prérequis

- WordPress 5.0 ou supérieur
- WooCommerce 6.0 ou supérieur
- PHP 7.4 ou supérieur
- Extension PHP ZipArchive (pour les fichiers Excel)
- Permissions `manage_woocommerce`

## Installation

1. **Télécharger** le plugin et décompresser dans le dossier `/wp-content/plugins/`
2. **Activer** le plugin via l'interface d'administration WordPress
3. **Accéder** au menu "Excel Import" dans l'administration

## Utilisation

### 1. Génération du fichier source

Utilisez le script `get-products-list.php` d'Automatisme Online pour générer votre fichier Excel :

```bash
docker exec -it automatisme-php-fpm-1 php /var/www/refonte/exports/get-products-list.php
```

### 2. Import via l'interface

1. Aller dans **Excel Import** dans le menu WordPress
2. Sélectionner votre fichier Excel ou CSV
3. Cliquer sur "Télécharger et analyser"
4. L'import démarre automatiquement avec affichage de la progression
5. Consulter les résultats et les logs

### 3. Consultation des logs

- Menu **Excel Import > Logs** pour voir l'historique
- Filtrage par niveau (succès, erreur, avertissement)
- Statistiques des dernières 24h
- Effacement des logs

## Mapping des colonnes

Le plugin reconnaît automatiquement les colonnes suivantes :

### Informations de base
- **ID** → ID externe du produit
- **SKU** → Référence unique WooCommerce
- **Nom du produit** → Titre du produit
- **Catégories** → Hiérarchie des catégories (séparées par " > ")
- **Marque** → Attribut marque

### Prix et stock
- **price** → Prix normal
- **promo_price** → Prix promotionnel
- **promo_start_date** / **promo_end_date** → Dates de promotion
- **weight** → Poids du produit
- **tax_rate** → Taux de TVA

### Contenu et médias
- **Description longue** → Description complète
- **Desc courte** → Résumé du produit
- **images** → Galerie d'images (URLs séparées par virgule)
- **Tags** → Étiquettes produit

### Attributs et métadonnées
- **Caractéristiques dynamiques** → Créées automatiquement comme attributs
- **SEO** → Titre, description, mots-clés
- **Flags** → is_pro, is_kit, Dangereux, etc.

## Fonctionnalités techniques

### Traitement par batch
- Import par lots de 20 produits
- Évite les timeouts sur gros volumes
- Progression en temps réel via Ajax

### Gestion des erreurs
- Continuation du traitement en cas d'erreur
- Logging détaillé de chaque erreur
- Affichage visuel des problèmes

### Produits existants
- Détection par SKU
- Mise à jour au lieu de duplication
- Préservation des données existantes

### Images
- Téléchargement automatique depuis URLs
- Création de la galerie WooCommerce
- Définition de l'image principale

### Catégories
- Création de la hiérarchie complète
- Support des arborescences complexes
- Assignation multiple

## Structure des fichiers

```
excel-to-woocommerce-importer/
├── excel-to-woocommerce-importer.php  # Fichier principal
├── includes/
│   ├── class-ewi-logger.php           # Système de logs
│   ├── class-ewi-file-parser.php      # Parser Excel/CSV
│   ├── class-ewi-column-mapper.php    # Mapping des colonnes
│   └── class-ewi-product-processor.php # Traitement produits
├── templates/
│   ├── admin-page.php                 # Interface principale
│   └── logs-page.php                  # Page des logs
├── assets/
│   ├── css/admin.css                  # Styles administration
│   └── js/admin.js                    # JavaScript Ajax
└── README.md
```

## API et hooks

### Actions disponibles

```php
// Avant traitement d'un produit
do_action('ewi_before_process_product', $product_data, $mapped_data);

// Après traitement d'un produit
do_action('ewi_after_process_product', $product_id, $product_data);

// Fin d'import
do_action('ewi_import_complete', $total_products, $errors);
```

### Filtres disponibles

```php
// Modifier le mapping des colonnes
$mapping = apply_filters('ewi_column_mapping', $default_mapping);

// Modifier les données avant traitement
$data = apply_filters('ewi_product_data', $product_data, $row_index);

// Modifier la taille des batches
$batch_size = apply_filters('ewi_batch_size', 2);
```

## Dépannage

### Erreurs communes

**"Extension ZipArchive requise"**
- Installer l'extension PHP zip
- Contacter l'hébergeur si nécessaire

**"Fichier trop volumineux"**
- Vérifier la limite PHP `upload_max_filesize`
- Diviser le fichier en plusieurs parties

**"Timeout during import"**
- Augmenter `max_execution_time` PHP
- Réduire la taille des batches

### Logs de débogage

Consulter les logs dans l'interface pour diagnostiquer :
- Erreurs de parsing
- Problèmes de mapping
- Échecs de création de produits
- Erreurs de téléchargement d'images

### Support

Pour obtenir de l'aide :
1. Consulter les logs d'import
2. Vérifier les prérequis système
3. Tester avec un fichier plus petit
4. Contacter le support technique

## Versions

- **1.0.0** - Version initiale
  - Import Excel/CSV
  - Traitement par batch
  - Système de logs
  - Interface complète

## Licence

GPL v2 ou ultérieure

## Auteur

Automatisme Online - Plugin développé pour l'écosystème Automatisme Online