# Product Configurator

Plugin WooCommerce pour la configuration avancée des produits avec :
- Grille de prix matricielle (largeur × hauteur)
- Prix dynamiques sur les attributs
- Affichage personnalisé des attributs (swatches, sliders, toggles, cards)
- Blocs Gutenberg pour les produits recommandés

## Fonctionnalités

### 1. Grille de Prix Matricielle

Définissez les prix d'achat de vos produits en fonction des dimensions (largeur et hauteur) avec calcul automatique des prix de vente basé sur le taux de marge.

**Types de grilles disponibles :**
- **Matrice complète** : Prix basé sur largeur ET hauteur
- **Largeur uniquement** : Prix basé seulement sur la largeur
- **Hauteur uniquement** : Prix basé seulement sur la hauteur
- **Aucune** : Prix WooCommerce standard

**Formule de calcul :**
```
Prix de vente = Prix d'achat ÷ (1 - Marge%)
```

### 2. Prix Dynamiques sur Attributs

Configurez des ajustements de prix sur les termes d'attributs WooCommerce :

| Type | Description |
|------|-------------|
| **Gratuit** | Aucun ajustement de prix |
| **Fixe** | Montant fixe en € (avec marge) |
| **Pourcentage** | % du prix de base du produit |
| **Par largeur** | Prix par intervalles de largeur |
| **Par hauteur** | Prix par intervalles de hauteur |

### 3. Affichage Personnalisé des Attributs

Remplacez les dropdowns WooCommerce par des interfaces plus intuitives :

- **Dropdown** : Sélection standard
- **Swatch** : Échantillons cliquables (avec images ACF)
- **Slider** : Curseur pour valeurs numériques
- **Toggle** : Interrupteur ON/OFF
- **Radio** : Boutons radio
- **Cards** : Cartes avec images (utilise les images ACF)

### 4. Blocs Gutenberg

- **Produits Recommandés** : Affiche des accessoires selon les attributs sélectionnés
- **Affichage d'Attribut** : Personnalise l'affichage d'un attribut

## Installation

1. Décompressez le plugin dans `/wp-content/plugins/product-configurator/`
2. Activez le plugin via le menu Extensions
3. Configurez les attributs dans **Product Config > Attributs**

## Configuration

### Grille de Prix (par produit)

1. Éditez un produit WooCommerce
2. Allez dans l'onglet **Grille de Prix**
3. Choisissez le type de grille
4. Entrez les dimensions (largeurs/hauteurs)
5. Cliquez sur **Générer le tableau**
6. Remplissez les prix d'achat et les marges
7. Sauvegardez le produit

### Prix des Attributs (global)

1. Allez dans **Produits > Attributs**
2. Éditez un terme d'attribut
3. Configurez le type de prix et les valeurs
4. Sauvegardez

### Types d'Affichage (global)

1. Allez dans **Product Config > Attributs**
2. Pour chaque attribut, choisissez le type d'affichage
3. Configurez les options (taille, forme, colonnes...)
4. Sauvegardez

## Intégration ACF

Le plugin utilise automatiquement les images ACF définies sur les termes d'attributs via le champ `attribute_image` (configuré dans le thème).

## Tables de Base de Données

Le plugin utilise deux tables personnalisées (préfixe `dpw_` pour compatibilité) :

- `{prefix}_dpw_price_grids` : Grilles de prix des produits
- `{prefix}_dpw_term_pricing` : Configuration des prix des attributs

## Hooks Disponibles

### Actions

```php
// Après calcul du prix
do_action('pc_price_calculated', $price_data, $product_id);

// Après ajout au panier
do_action('pc_added_to_cart', $cart_item_data);
```

### Filtres

```php
// Modifier le prix calculé
apply_filters('pc_calculated_price', $price, $product_id, $dimensions, $attributes);

// Modifier l'ajustement d'un attribut
apply_filters('pc_attribute_adjustment', $adjustment, $term_id, $taxonomy);
```

## Développement

### Structure des fichiers

```
product-configurator/
├── product-configurator.php     # Point d'entrée
├── includes/
│   ├── Core/                    # Classes principales
│   ├── Admin/                   # Interface d'administration
│   ├── Frontend/                # Affichage frontend
│   ├── Blocks/                  # Blocs Gutenberg
│   ├── Database/                # Repositories BDD
│   ├── Services/                # Services métier
│   └── Ajax/                    # Handlers AJAX
├── assets/
│   ├── css/                     # Styles
│   └── js/                      # Scripts
└── templates/                   # Templates
```

## Compatibilité

- WordPress 5.8+
- WooCommerce 5.0+
- PHP 7.4+
- ACF Pro (optionnel, pour les images d'attributs)

## Changelog

### 1.0.0
- Version initiale
- Fusion des plugins `swatch-and-sliders-for-woocommerce` et `dynamic-price-for-woocommerce`

## Licence

GPL v2 ou ultérieure

## Auteur

Alexandre MARK - MyDoorling
