Expédition Partielle & Reliquats Automatiques (dfavailsplit)
Installer, configurer et comprendre le module qui expédie le stock disponible et place automatiquement le reste en reliquat.
Présentation
Ce module découpe automatiquement chaque commande selon le stock réellement disponible. Les articles en stock partent immédiatement dans une commande prête à préparer, tandis que les articles en rupture sont déplacés dans une commande reliquat (backorder) dédiée. Les deux commandes partagent la même référence et la somme de leurs totaux est strictement égale à la commande d’origine, taxes comprises.
Tout se déclenche à la validation de la commande, et une découpe manuelle ligne par ligne est disponible sur chaque fiche commande.
Installation
- Téléversez le dossier
dfavailsplitdans/modules/, ou installez l’archive ZIP via Modules > Module Manager > Téléverser un module. - Cliquez sur Installer.
- Ouvrez la configuration via Configurer.
À l’installation, le module crée un état de commande dédié « En réapprovisionnement (Backorder) » (couleur orange). Cet état et l’historique des splits sont conservés à la désinstallation pour préserver vos données.
Configuration
Rendez-vous dans Modules > Module Manager > dfavailsplit > Configurer.
Activer le split automatique
Interrupteur principal. Désactivé, aucune commande n’est découpée automatiquement ; la découpe manuelle reste disponible sur la fiche commande.
État de commande backorder
État appliqué à la commande contenant les articles en rupture. Par défaut, l’état « En réapprovisionnement (Backorder) » créé à l’installation.
Surcharge de l’état de la commande expédiable
Optionnel. Activez cette option pour forcer un état précis (par exemple « Préparation en cours ») sur la commande expédiable. Désactivé, la commande conserve son état courant.
Port gratuit sur le backorder
Activé par défaut. Les frais de port restent sur la commande expédiable ; le reliquat est livré sans frais, car le client a déjà payé le port une seule fois.
Découpe des lignes partielles
Activé par défaut. Une ligne partiellement disponible (3 en stock sur 5 commandés) est scindée en 3 expédiés + 2 en reliquat. Désactivé, la ligne entière bascule en reliquat.
E-mail backorder
Envoie au client un e-mail dans sa langue (FR/EN/ES/DE/IT/PL fournis, repli anglais) l’informant que sa commande sera expédiée en plusieurs fois.
Régénération des factures après split
Désactivé par défaut. Laissez désactivé pour émettre les factures au moment de l’expédition réelle de chaque commande. Activé, le module régénère les factures des deux commandes après le split si l’état courant l’exige.
Journalisation
Enregistre chaque opération de split dans les journaux PrestaShop pour la traçabilité.
Comment fonctionne le split
La découpe automatique s’exécute juste après la validation de la commande (hook actionValidateOrderAfter, avec repli sur actionOrderStatusPostUpdate pour les flux qui ne l’émettent pas). Le module déduit la quantité expédiable de chaque ligne à partir de la pénurie réelle du stock, mutualisée par produit et déclinaison. Ce modèle reste juste même pour une découpe manuelle lancée des jours plus tard, quand le stock a bougé.
Trois cas se présentent :
- Tout est disponible : aucune découpe. La commande suit son cours (option de forçage d’état possible).
- Tout est en rupture : pas de découpe, la commande entière passe à l’état backorder.
- Commande mixte : la commande d’origine conserve la part expédiable (port, remises, emballage, paiement) ; une nouvelle commande reliquat est créée pour le reste, avec la même référence.
Les totaux (produits, port, remises, emballage, poids) et la ventilation TVA sont recalculés au centime près, ligne par ligne. La somme des deux commandes égale exactement la commande d’origine, taxes comprises, y compris sur les factures régénérées et les rapports fiscaux. Le paiement, agrégé par référence, se réconcilie nativement.
La découpe est atomique : toutes les mutations (création du reliquat, déplacement des lignes, totaux, transporteur, factures) sont encadrées par une transaction SQL. Un échec en cours de route annule tout, jamais de commande à moitié découpée.
Découpe manuelle depuis la fiche commande
Sur chaque fiche commande non découpée, le panneau « Découpe par disponibilité » affiche un tableau ligne par ligne : produit, quantité commandée, stock actuel et quantité à mettre en reliquat. Les champs sont pré-remplis avec la suggestion de l’analyse de stock ; ajustez-les librement, 0 conservant la ligne sur la commande d’origine, puis cliquez sur « Découper cette commande maintenant ».
- Disponible même quand la découpe automatique est désactivée.
- Une commande déjà découpée ne peut jamais l’être une seconde fois.
- La sélection est refusée si elle viderait entièrement l’une des deux commandes.
- Les lignes personnalisées et le réglage « découpe des lignes partielles » sont respectés.
Sur la fiche commande (back-office)
Une fois la découpe effectuée, le panneau relie les deux commandes : depuis la commande expédiable, il renvoie vers le reliquat associé, et inversement. La référence partagée est rappelée dans les deux sens.
Page de confirmation et e-mail client
Sur la page de confirmation de commande, un bloc liste les articles qui seront expédiés séparément, avec le rappel de la référence commune et du port payé une seule fois. Le bloc fonctionne avec tous les thèmes : il s’appuie sur les trois ancres de confirmation (displayOrderConfirmation, displayOrderConfirmation1, displayOrderConfirmation2) et résout la commande depuis l’URL de confirmation avec vérification de la clé de sécurité, sans jamais s’afficher deux fois.
Si l’option e-mail est active, le client reçoit également un e-mail dans sa langue l’informant de l’expédition partielle et du reliquat livré sans frais supplémentaires. Les modèles FR, EN, ES, DE, IT et PL sont fournis dans le dossier mails/ du module, avec repli sur l’anglais pour toute autre langue.
L’e-mail de confirmation initial (commande complète) est envoyé par PrestaShop avant la découpe. L’e-mail backorder du module vient ensuite informer le client de l’expédition en plusieurs fois.
Cas particuliers et limites
- Les produits virtuels ne sont jamais mis en reliquat.
- Les produits en gestion avancée des stocks (ASM) sont exclus de la découpe et restent sur la commande expédiable.
- Une ligne personnalisée n’est pas scindée : elle est routée entière vers l’une des deux commandes.
- Si la gestion des stocks est désactivée dans PrestaShop, aucune découpe n’est effectuée.
Dépannage
Aucune commande n’est découpée
Vérifiez que le split est activé, que la gestion des stocks PrestaShop est active et que les produits concernés ne sont ni virtuels ni en gestion avancée des stocks. Un split automatique n’a lieu que pour une commande mixte (à la fois du disponible et de la rupture). Pour tout autre cas, utilisez la découpe manuelle sur la fiche commande.
Le reliquat affiche des frais de port
Activez l’option « Port gratuit sur le backorder ». Les frais restent alors uniquement sur la commande expédiable.
Le bloc n’apparaît pas sur la page de confirmation
Depuis la version 1.3.4, le bloc s’affiche avec tous les thèmes via trois ancres de confirmation. Si vous utilisez une version antérieure, mettez le module à jour.
Compatibilité
PrestaShop 8.x et 9.x, multiboutique, sans override ni Composer.