# Peppol Invoice for WooCommerce

**Version:** see the plugin main file header and [CHANGELOG.md](CHANGELOG.md) (public changelog; WordPress.org uses `readme.txt`).

Plugin WordPress / WooCommerce qui connecte votre boutique à **GestOO** pour la création de factures et l’envoi **Peppol**. La facturation officielle et la conformité Peppol restent gérées dans GestOO ; ce plugin déclenche et affiche les statuts.

## Language

The plugin is written in **English** by default. Translations are loaded from the `languages/` folder. A **French (fr_FR)** `.po` file is included; compile it to `.mo` with [Poedit](https://poedit.net/) or `msgfmt` (see `languages/README.md`).

## Prérequis

- WordPress 6.0+
- WooCommerce 7.0+
- PHP 7.4+
- Un compte **GestOO** avec le module WooCommerce activé et un **token API**

## Installation

1. Copier le dossier `peppol-invoice-for-woocommerce` dans `wp-content/plugins/`.
2. Activer le plugin dans **Extensions**.
3. Aller dans **WooCommerce > Réglages > Intégrations > Peppol Invoicing**.
4. Renseigner l’URL de base de l’API GestOO (ex. `https://app.gestoo.be`) et le token API, puis **Tester la connexion**.
5. Configurer les statuts déclencheurs et l’envoi Peppol automatique si besoin.

## Configuration

- **URL de base de l’API** : URL de votre instance GestOO, sans slash final (ex. `https://app.gestoo.be` ou en local `https://gestoo.local:8890`). En local, le site WordPress peut être par ex. `https://gestoo-woocommerce-connector.local/`.
- **Token API** : clé fournie par GestOO pour ce compte (multi-tenant : le token détermine le compte).
- **Statuts déclencheurs** : statuts de commande pour lesquels une facture GestOO est créée (par défaut : Complétée, En cours).
- **Envoi Peppol automatique** : si activé, la facture est envoyée sur Peppol juste après sa création.
- **Commandes à 0 € ou moins** : par défaut, aucune facture GestOO / Peppol n’est créée (Peppol refuse les factures à 0 €). Réglage désactivable, avec avertissement.

## Utilisation

- Lorsqu’une commande passe à un statut déclencheur, le plugin envoie les données à GestOO et enregistre l’ID facture et le statut Peppol.
- Sur la **page commande** (admin), un bloc **Facture GestOO** affiche : état (synchronisé / erreur), numéro de facture, statut Peppol, lien « Ouvrir dans GestOO », boutons **Créer la facture**, **Envoyer sur Peppol**, **Actualiser le statut** selon le cas.

## Structure du projet

```
peppol-invoice-for-woocommerce/
├── peppol-invoice-for-woocommerce.php     # Fichier principal, headers, bootstrap (nom SEO-friendly)
├── includes/
│   ├── class-gestoo-peppol-api-client.php   # Client API GestOO
│   └── class-gestoo-peppol-order-handler.php # Hooks commande, payload, meta
├── admin/
│   ├── class-gestoo-peppol-admin-settings.php # Onglet Réglages WooCommerce
│   └── class-gestoo-peppol-order-meta-box.php # Meta box page commande
├── README.md
└── docs/
    └── local-setup.md                 # Setup WP + GestOO en local (optionnel)
```

## API GestOO

Le plugin appelle les endpoints suivants (spécification dans le dépôt GestOO : `docs/04-integrations/woocommerce-peppol-api-spec.md`) :

- `GET /api/woocommerce/health` — test de connexion
- `POST /api/woocommerce/invoices` — création de facture (idempotent)
- `GET /api/woocommerce/invoices/{id}` — détail facture
- `POST /api/woocommerce/invoices/{id}/send-peppol` — envoi Peppol
- `GET /api/woocommerce/invoices/{id}/peppol-status` — statut Peppol
- `POST /api/woocommerce/invoices/{id}/retry` — relance

## Développement en local

Voir [docs/local-setup.md](docs/local-setup.md) pour configurer un WordPress + WooCommerce en local et pointer vers une instance GestOO locale (MAMP, etc.). **Conseil** : utilisez un lien symbolique (symlink) du dossier du plugin vers `wp-content/plugins/` pour éviter de recopier le plugin à chaque modification.

## Standards WordPress (PHPCS / WPCS)

Les outils (Composer, PHP_CodeSniffer, WPCS) s’installent **uniquement dans ce répertoire**. Sous Windows, avec Composer installé en chemin complet : `"C:\ProgramData\ComposerSetup\bin\composer.bat" install` dans le dossier du plugin. Le projet GestOO (racine, `app/`, etc.) n’est pas modifié. Voir [docs/wordpress-standards.md](docs/wordpress-standards.md).

Ce plugin est destiné au répertoire WordPress.org. **Référence obligatoire pour le code** : [docs/dev-wordpress-contraintes-reference.md](docs/dev-wordpress-contraintes-reference.md) (sécurité, WPCS, guidelines — à respecter pour éviter le refus en revue). Références : [Detailed Plugin Guidelines](https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/), [Plugin Developer FAQ](https://developer.wordpress.org/plugins/wordpress-org/plugin-developer-faq/). Checklist soumission : [docs/checklist-revue-wordpress.md](docs/checklist-revue-wordpress.md). **SVN / trunk local** : [docs/svn-wordpress-org.md](docs/svn-wordpress-org.md) ; sync : `scripts/sync-to-svn-trunk.ps1`. **Validation obligatoire avant envoi** : [Plugin Check (PCP)](https://fr.wordpress.org/plugins/plugin-check/) (Outils → Plugin Check ; passer tous les contrôles de la catégorie « Plugin repo »). À installer **séparément** sur un WordPress de test (pas dans ce dépôt ni inclus dans ce plugin). Voir [docs/plugin-check-validation-locale.md](docs/plugin-check-validation-locale.md) ; script : `scripts/run-plugin-check.ps1`.

## Licence

GPL-2.0-or-later
