# MyKollectOr — Frais de port multi-origines

Module PrestaShop 1.7 / 8.x qui ajoute un **second frais de port** quand un
panier mélange des produits expédiés depuis **deux lieux différents** :
les médailles (expédiées par le graveur) et les goodies (expédiés par MyKollectOr).

## Principe

- Médaille seule → un seul colis → port normal (calculé par ton module Colissimo).
- Goodie seul → un seul colis → port normal.
- Médaille **+** goodie → deux colis depuis deux lieux → port normal **+** second frais de port.

Le montant du second colis est réglable par zone (France / UE / Reste du monde)
et **réellement facturé** au client (pas seulement affiché), grâce à l'override
du calcul de transport.

## Installation

1. Copier le dossier `mkomultishipping/` dans `/modules/` de la boutique.
2. Admin PS → Modules → installer « MyKollectOr — Frais de port multi-origines ».
3. L'override `override/classes/Cart.php` est copié automatiquement à l'installation.
   → Si un override `Cart.php` existe déjà, **fusionner** la méthode
   `getPackageShippingCost` à la main au lieu d'écraser.
4. Vider le cache PS (Paramètres avancés → Performance → Vider le cache).

## Configuration (entièrement modifiable)

Admin PS → Modules → ce module → Configurer :

- **Catégories origine GRAVEUR** : ID des catégories médailles, séparés par
  des virgules. Tu peux en ajouter / retirer / modifier à tout moment. Ex : `3,7,12`
- **Catégories origine MKO** : ID des catégories goodies / textiles / supports. Ex : `9,10`
- **2e colis France / UE / Monde** : montant du second port par zone.

Un tableau en haut de la page liste **toutes les catégories de la boutique avec
leur ID**, pour remplir les champs sans aller les chercher ailleurs.

> Le second port ne se déclenche que si le panier contient **au moins une**
> catégorie graveur **et** au moins une catégorie MKO.

## Désinstallation

Supprime la configuration et l'override. Pense à vider le cache.

## Compatibilité PrestaShop 9.0.2

Testé pour cibler PS 9.0.x. Points spécifiques PS9 déjà traités dans ce module :

- `Tools::displayPrice()` (supprimé en 9.0) remplacé par le formatage via Locale.
- Compatibilité déclarée jusqu'à 9.x.
- Template sans dépendance d'icône, compatible thèmes Classic et Hummingbird.

**Le seul vrai risque restant** est le conflit d'override. PrestaShop 9 conserve
les overrides de classe legacy comme `Cart`, mais ils sont **exclusifs** : si un
autre module (ton module Colissimo, un module de taxe, un module B2B...) surcharge
déjà `Cart::getPackageShippingCost`, l'installation échouera avec un message
« la méthode getPackageShippingCost est déjà surchargée ».

### Avant d'installer, vérifie

Depuis le dossier racine de ta boutique :

```bash
cat override/classes/Cart.php 2>/dev/null | grep getPackageShippingCost
```

- **Rien ne s'affiche** → aucun conflit, installe normalement.
- **Une ligne s'affiche** → un override existe déjà. N'installe pas tel quel :
  ouvre `override/classes/Cart.php` de ta boutique et insère manuellement le bloc
  d'ajout du second port (voir `override/classes/Cart.php` de ce module, la partie
  après l'appel à `parent::getPackageShippingCost`).

## Limite connue

Si tu mets à jour PrestaShop vers une version majeure, vérifie que la signature
de `Cart::getPackageShippingCost` n'a pas changé, car l'override en dépend.
