merci pour ce plugin ! Peut être un bug, découvert sur une situation un peu spécifique, résumée comme ça :
3 modes de livraison : mode1, mode2, mode3
2 produits : produit1 et produit2, avec chacun leur mode de livraison associé, respectivement mode1 et mode2
mode3 est en théorie applicable aux produits, mais ne devrait pas l'être du fait de leur modes associés
A la commande des deux produits, deux choix de livraisons sont proposés :
mode1 + mode2
mode1 + mode2 + mode3
Il semble que mode3 est traité comme "partiel" même s'il n'est applicable à aucune ligne. Cela produit des "livraisons possibles" supplémentaires.
En modifiant cette vérifications dans inc/livraison.php comme ceci, le comportement semble corrigé :
// verifier que le mode est applicable a toutes les lignes de la commande
$partiellement_applicable = false;
foreach($details as $k => $detail){
// si on a fourni une liste $partiel des details a livrer,
// on accepte une livraison partielle en renvoyant la liste des id non livres
if (!livraison_applicable($detail['objet'],$detail['id_objet'],$id_livraisonmode)) {
if ($partiel) {
$id_non_livres[] = $detail['id_commandes_detail'];
unset($details[$k]);
}
else {
return false;
}
}else{
$partiellement_applicable = true;
}
}
// verifier que le mode est applicable a au moins une ligne de la commande
if (!$partiellement_applicable) return false;
Une variable est ajoutée pour vérifier que la livraison courante est applicable à au moins une ligne de la commande, sinon elle est retournée directement comme invalide.
Sans cette modif, le traitement se poursuit et le mode de livraison "fantôme" est retourné comme possible, avec ses frais fixes éventuels, même si il n'est utilisée pour aucun produit.
Est ce que cette modif vous semble logique ? Elle n'est pas encore beaucoup testée, j'ai pu manquer quelque chose dans la logique des appels des fonctions de livraison..
Bonjour Nursit et all !
merci pour ce plugin ! Peut être un bug, découvert sur une situation un peu spécifique, résumée comme ça :
mode1
,mode2
,mode3
produit1
etproduit2
, avec chacun leur mode de livraison associé, respectivementmode1
etmode2
mode3
est en théorie applicable aux produits, mais ne devrait pas l'être du fait de leur modes associésA la commande des deux produits, deux choix de livraisons sont proposés :
mode1
+mode2
mode1
+mode2
+mode3
Il semble que
mode3
est traité comme "partiel" même s'il n'est applicable à aucune ligne. Cela produit des "livraisons possibles" supplémentaires.En modifiant cette vérifications dans
inc/livraison.php
comme ceci, le comportement semble corrigé :Une variable est ajoutée pour vérifier que la livraison courante est applicable à au moins une ligne de la commande, sinon elle est retournée directement comme invalide.
Sans cette modif, le traitement se poursuit et le mode de livraison "fantôme" est retourné comme possible, avec ses frais fixes éventuels, même si il n'est utilisée pour aucun produit.
Est ce que cette modif vous semble logique ? Elle n'est pas encore beaucoup testée, j'ai pu manquer quelque chose dans la logique des appels des fonctions de livraison..
bonne journée !