Ce que tu vas apprendre
Activer le module
Coûts logistiques dans les paramètres Inventaire — catégorie produit AVCO/FIFO obligatoire.
5 méthodes de répartition
Par quantité, poids, volume, coût actuel ou égal — et non 4 comme souvent lu ailleurs.
Landed Cost Bill
Lier un transfert, saisir les 3 lignes transport / douane / assurance, calculer, valider.
Impact FIFO/AVCO
Nouveau coût unitaire, écriture comptable Débit stock / Crédit charges.
1. La facture ImportEquip ne passe pas
Dans la Partie 1, Karim a validé la commande chez ImportEquip : 10 serveurs rack R3 Pro 2U à 150 000 DZD l'unité, soit un bon de commande de 1 500 000 DZD. Le container arrive au port d'Alger. Inès réceptionne la marchandise en suivant les procédures d'achat standard, fait entrer le stock. Tout va bien.
Deux jours plus tard, le transitaire envoie sa facture :
- Transport maritime DDP container 40 pieds — 240 000 DZD
- Droits de douane (5% sur la valeur FOB) — 75 000 DZD
- Assurance cargo (0,12% valeur) — 18 000 DZD
333 000 DZD de frais d'approche. Soit 22% de la valeur du matériel. Karim pensait marger 20% sur ces serveurs en les revendant 180 000 DZD — mais s'il laisse ces frais en charges générales, son vrai coût est 183 300 DZD par serveur. Marge négative de 1,8% sur chaque vente. L'équivalent de plusieurs mois de subventionner ses clients sans le savoir.
« C'est exactement pour ce genre de situations que le module Coûts logistiques existe », lui répond Inès. « On va répartir ces 333 000 DZD directement sur la valeur des 10 serveurs en stock. Résultat : le coût unitaire passe à 183 300 DZD, les marges sont recalculées sur la vérité, et la compta enregistre l'enrichissement du stock en même temps. »
2. Qu'est-ce qu'un coût logistique ?
Un coût logistique (ou landed cost en anglais) est un frais additionnel qu'on répartit sur la valeur de produits physiques après leur réception, pour que le coût enregistré dans Odoo corresponde au coût réellement supporté pour mettre ce produit en stock — pas juste le prix du fournisseur.
- EXW (Ex Works) — tu t'occupes de tout, frais énormes côté acheteur
- FOB (Free On Board) — le fournisseur livre jusqu'au port, tu gères la traversée et la douane
- CIF (Cost Insurance Freight) — transport et assurance inclus, la douane reste à ta charge
- DDP (Delivered Duty Paid) — tout inclus jusqu'à ton entrepôt, mais prix unitaire souvent plus élevé
Dans le cas d'InfoSphere, l'accord avec ImportEquip est en FOB Shanghai : le prix de 150 000 DZD inclut l'acheminement jusqu'au port de départ, mais transport maritime, douane algérienne et assurance sont à la charge d'InfoSphere. D'où les trois lignes de la facture du transitaire, qui deviennent les trois lignes de coût du Landed Cost.
3. Précision v19 — 5 méthodes de répartition, pas 4
La documentation qui circule en ligne oublie souvent une méthode. Odoo 19 propose bien cinq méthodes de répartition pour les coûts logistiques :
| Libellé FR v19 | Code technique | Logique |
|---|---|---|
| Égal | equal |
Divisé équitablement sur chaque ligne produit |
| Par quantité | by_quantity |
Proportionnel au nombre d'unités |
| Par poids | by_weight |
Proportionnel au poids total (produit × quantité) |
| Par volume | by_volume |
Proportionnel au volume total |
| Par coût actuel | by_current_cost_price |
Proportionnel à la valeur marchande |
Chaque ligne de coût peut utiliser une méthode différente : transport souvent par quantité (ou poids si container partagé), douane par coût actuel (plus le produit est cher, plus la douane percute), assurance égale sur toutes les lignes ou par valeur.
4. Activer les coûts logistiques
Le module stock_landed_costs n'est pas installé par défaut en v19 CE. Il
s'active depuis Inventaire → Configuration → Paramètres, dans la
section Valorisation. Coche Coûts logistiques — Odoo installe
automatiquement les dépendances stock_account et
purchase_stock.
Un nouveau paramètre apparaît dessous : Journal par défaut. Laisse-le vide, le système utilisera le journal de valorisation d'inventaire de la société, qui est déjà configuré. Enregistre et le menu Inventaire → Opérations → Ajustements → Coûts logistiques devient accessible.
5. Préparer la catégorie produit — AVCO ou FIFO
Premier écueil — et de loin le plus fréquent. Les landed costs ne fonctionnent que sur des produits dont la catégorie utilise :
- Méthode de coût = Coût moyen (AVCO) ou Premier entré, premier sorti (FIFO)
- Valorisation de l'inventaire = Automatique (temps réel)
Sur un produit en Coût standard (valeur fixe manuelle), Odoo refuse avec une erreur. Sur une catégorie en Valorisation manuelle / périodique, le calcul fonctionne mais aucune écriture comptable n'est générée.
InfoSphere crée une catégorie dédiée Importation AVCO pour ses produits en provenance de l'étranger. Les produits locaux (fournitures de bureau, câbles Ethernet) restent en coût standard, ils n'ont pas besoin de landed costs.
6. Créer le produit InfoRack Server R3 2U
Karim crée la fiche produit dans la catégorie Importation AVCO. Quelques champs comptent pour la suite :
- Coût — 150 000 DZD (le prix d'achat fournisseur avant landed costs)
- Poids — 25 kg (utilisé pour la répartition Par poids)
- Volume — 0,12 m³ (utilisé pour Par volume)
7. Réceptionner le container
Pré-requis du landed cost : le transfert (picking) doit être en état Terminé. Karim part de sa commande d'achat ImportEquip (1 500 000 DZD), clique Réception sur le smartbutton, puis Valider sur le transfert. Les 10 serveurs entrent en stock à 150 000 DZD chacun, soit une valorisation initiale de 1 500 000 DZD au bilan.
ALG/IN/00006 validé — container réceptionné, prêt pour le landed cost.La date du transfert est importante : c'est elle qui fixe la date de l'écriture comptable du landed cost. Si tu réceptionnes en fin de mois et que la facture du transitaire arrive le mois suivant, le landed cost peut être enregistré à la date de facturation pour respecter la période comptable.
8. Créer le Landed Cost — 333 000 DZD à répartir
Menu Inventaire → Opérations → Coûts logistiques → Nouveau. Trois champs essentiels :
- Appliquer sur — Transferts (unique choix CE ; Ordres de fabrication existe en Enterprise)
- Transferts — sélectionne
ALG/IN/00006 - Coûts additionnels — ajoute les 3 lignes avec leur méthode de répartition individuelle
LC/2026/0003 — 3 lignes de coût, chacune sa méthode de répartition.Le total se calcule automatiquement : 333 000,00 DA.
Optionnel mais recommandé : renseigne Facture fournisseur pour lier directement ce landed cost à la facture réelle du transitaire, et garder la traçabilité documentaire.
9. Calculer la répartition et valider
Après saisie des lignes, clique Calculer — Odoo génère l'onglet Correction de valorisation avec une ligne par produit × ligne de coût. Chaque ligne montre : ancienne valeur, coût additionnel réparti, nouvelle valeur.
Pour notre container : trois ajustements d'affilée, tous sur le serveur R3. Le total de la colonne Correction fait bien 333 000 DZD (cohérence budgétaire). Si tu avais plusieurs produits, tu pourrais encore ajuster manuellement avant de valider.
Clic Valider. Le statut passe de Brouillon à Publié.
Deux choses se passent automatiquement : le standard_price du produit est
recalculé, et l'écriture comptable est créée.
10. L'écriture comptable — Débit stock, Crédit charges
Le nouveau coût du serveur R3 passe de 150 000 DZD à 183 300 DZD par unité. La valorisation du stock monte à 1 833 000 DZD. L'écriture comptable générée, dans le journal Valorisation d'inventaire, présente une structure en trois paires Débit/Crédit — une par ligne de coût.
STJ/2026/04/0003 — 310000 au débit (stock), 600000 au crédit (charges), pour chaque ligne de coût.- Débit 310000 Matières premières et fournitures — enrichissement du stock
- Crédit 600000 Achats de marchandises vendues — contrepartie (ou le compte de charge défini sur le service)
Si une partie du stock avait déjà été sortie avant le landed cost (ex. 2 serveurs vendus sur les 10 reçus), Odoo n'enrichit que la valeur des remaining_qty en stock. La part des 2 serveurs déjà partis est soit envoyée au COGS (Cost of Goods Sold — coût des marchandises vendues, compte 600 dans le plan SCF DZ), soit perdue selon la configuration — c'est pour ça qu'il faut passer les landed costs rapidement après réception.
11. Réutiliser les services de coût — le secret du gain de temps
Un coût logistique, dans Odoo, est un produit de type Service marqué comme utilisable en landed cost. Karim a créé trois services en une fois (Transport maritime DDP, Droits de douane 5%, Assurance cargo) avec une méthode de répartition par défaut par service. L'intérêt : ils sont réutilisables sur tous les prochains Landed Costs.
On peut aussi leur associer un Compte de charge spécifique (6241 Transports, 6351 Droits de douane, 6161 Assurances) pour affiner la comptabilité analytique selon le plan comptable SCF algérien.
12. Les pièges à éviter
UserError : « Landed costs can only be applied for products with FIFO or
average costing method ». Pas de contournement, il faut passer la catégorie en AVCO
ou FIFO AVANT la réception.
UserError: Validated landed costs
cannot be cancelled). Pour corriger une erreur, Odoo suggère de créer un
landed cost négatif pour compenser — mais c'est rarement propre.
Vérifie deux fois avant de cliquer Valider.
Bonnes pratiques InfoSphere
- Catégorie dédiée Importation AVCO réservée aux produits venant de l'étranger — laisse les achats locaux en coût standard, plus simple et moins lourd en écritures comptables.
- Services de coût réutilisables — une seule fois créés (Transport / Douane / Assurance), réemployés sur chaque prochain container. Gagne 5 minutes à chaque import.
- Méthode de répartition adaptée au type de frais — Par poids pour le fret, Par coût actuel pour la douane, Égal pour les petits frais fixes. Évite la tentation du Par quantité qui fausse les marges sur livraisons hétérogènes.
- Landed cost dans les 24h de la réception pour limiter le risque qu'une partie du stock soit déjà sortie et échappe à l'enrichissement.
- Lie toujours la Facture fournisseur du transitaire au landed cost : tracking documentaire pour les audits fiscaux, surtout pour la ligne Droits de douane qui justifie une exonération TVA sur import.
À retenir
🚢 Qu'est-ce qu'un landed cost ?
Un frais d'approche (transport, douane, assurance, manutention) qu'on répartit sur la valeur des produits après leur réception. Les marges deviennent honnêtes, la valorisation du stock reflète le coût réel.
⚙️ Prérequis non négociables
Module stock_landed_costs activé, catégorie produit en AVCO ou FIFO, valorisation Automatique, et produits Services dédiés pour chaque ligne de frais.
📐 5 méthodes de répartition
Égal, Par quantité, Par poids, Par volume, Par coût actuel. Chaque ligne de coût peut en choisir une différente. Poids et volume sur la fiche produit — sinon répartition faussée.
💰 Impact automatique
Validation → standard_price recalculé selon la méthode AVCO, écriture comptable Débit stock (310000) / Crédit charges (6xxx) dans le journal Valorisation d'inventaire.
Prochaine étape : combien valent tes stocks à cet instant T ?
Les frais d'import sont maintenant répartis. Mais une fois que tes 10 serveurs valent 183 300 DZD l'unité, que se passe-t-il quand tu en reçois 5 de plus à un autre prix ? C'est la méthode de valorisation qui tranche — Standard, FIFO ou AVCO. Direction la Partie 3/4 pour la démo chiffrée.
🛒 Approfondir — Achats & Fournisseurs
Autres articles du même domaine :
Acheter & Vendre
Contrats-cadres & Appels d'offre
Maîtriser les Achats
Valorisation de stock (Standard, FIFO, AVCO)
Maîtriser les Achats
Suite de la Saison 8 — Maîtriser les Achats
Articles complémentaires
Sur les mêmes thématiques : #intermediaire#cas-pratique
👥 Ressources humaines · Saison 4
👥 Ressources humaines · Saison 4
🛍 Site web & eCommerce · Saison 5