Prestashop 1.7 et le problème du dégroupage ou des commandes scindées entre 2 transporteurs

Pour créer, rédiger et optimiser le SEO de vos pages web --> Contactez-nous


On sait que la migration vers Prestashop 1.7 n'est pas aussi facile que Prestashop le prétend (voir ).

(Si vous êtes wordpress/Woocommerce, lire  dégroupage sur Wordpress/Woocommerce )

Avec les commandes scindées (ou le dégroupage pour employer un autre mot), on a un exemple typique de choses qui étaient possibles sur Prestashop 1.6 mais ne le sont plus sur Prestashop 1.7 car abandonnées par les développeurs de ce système.

Quand on lit les issues sur github, prestashop n'indique jamais ou pas explicitement ne pas avoir remis en place la fonctionnalité de la 1.6 permettant de scinder une même commande entre plusieurs transporteurs.

Discussions à ce sujet sur gihub

[BOOM-2690] Carrier selection on FO
https://github.com/PrestaShop/PrestaShop/issues/9998

[BOOM-5944] Split order - order confirmation
https://github.com/PrestaShop/PrestaShop/issues/9594

Etonnant non ?

Comment alors faire fonctionner un dégroupage sur Prestashop 1.7 ?

Les commandes scindées avec Prestashop 1.6:

Commande 1 : Produit A (transporteur A) + Produit B (transporteur B)
=> popup panier => total livraison ok
=> récap panier => total livraison ok
=> page livraison order process => affichage des 2 transporteurs avec pour chacun le produit concerné + prix total
=> page confirmation commande =>  pas de listing des produits mais seulement le montant total (avec par exemple unmodule virement bancaire)
=> historique -> la commande est scindée en 2 (2 lignes, une pour chaque transporteur)
=> des mails sont envoyés
==> à l'admin
===> 2 mails avec les 1 commande par mail (montant + livraison)  
===> 2 mails pour confirmer chaque commande scindée
==> au client
===> 2 mails pour chaque commande scindée  


Commande 2 : Produit A (transporteur A) + Produit BC (transporteur B et transporteur C)
=> popup panier => total livraison ok (la moins chère, liée à la config)
=> récap panier => total livraison ok (la moins chère, liée à la config)
=> page livraison order process => affichage des 2 couples de transporteurs possibles "A + B" OU "A + C" avec possibilité de choisir le couple de son choix

 

Avec Prestashop 1.7, voici ce qu'on a dans ce cas:

Fonctionnement 1.7

Commande 1 : Produit A (transporteur A) + Produit B (transporteur B)
!!! --> étape livraison order process: affiche un seul transporteur mais le total est celui des 2 transporteurs.
!!! --> page confirmation commande : affiche un seul produit et un seul mode de livraison c'est à dire que prestashop affiche une seule commande scindée
=> dans le back-office "commandes" et dans l'historique des commandes du client , les commandes sont bien scindées (comme dans la 1.6)

Commande 2 : Produit A (transporteur A) + Produit BC (transporteur)
!!! --> étape livraison order process: deux transporteurs sont proposés. L'intitulé n'est pas ok. Le transporteur A n'est pas affiché. Le montant total de la livraison est cependant ok : pour le choix 1, le montant est égal à A+B, pour le choix 2, le montant est égal = A+C. On ne voit pas comme dans la 1.6 les produits liés à chaque transporteur.
!!! --> page confirmation commande : affiche un seul produit et un seul mode de livraison c'est à dire que presta affiche une seule commande scindée. 
=> dans le back-office "commandes" et dans l'historique des commandes du client , les commandes sont bien scindées (comme dans la 1.6)

Que faut-il faire pour avoir les mêmes fonctionnalités pour commandes scindées avec Prestashop 1.7 ?

=> si on regarde le template du thème classic fourni par Prestashop en charge d'afficher les transporteurs dans l'order process themes/classic/templates/checkout/_partials/steps/shipping.tpl, on ne retrouve pas les éléments nécessaires permettant de mettre en place des couples de transporteurs (contrairement au template de la 1.6 ). Pour illustrer cette impossibilité, on peut noter par exemple que la condition {if !$option.unique_carrier} présente dans le template par défaut de la 1.6 order-carrier.tpl a disparu. Prestashop a supprimé cette fonctionnalité.

=> dans Prestashop 1.7, la variable contenant les infos pour l'affichage est générée par la fonction getDeliveryOptions() de classes/checkout/DeliveryOptionsFinder.php. La variable ne contient pas les infos pour mettre en place le multi-transporteurs pour une commande contrairement à la 1.6. Il faut dans notre première analyse reprendre les données de la fonction 1.6 getDeliveryOptionList() de controllers/admin/AdminCartsController.php. Avec les données de cette fonction, il est possible de remettre en place le choix dans l'order process. Il faut ensuite modifier la soumission dans la 1.7 du formulaire du choix du transporteur. La fonction isModuleComplete de la classe classes/checkout/CheckoutDeliveryStep.php est à modifier.

==> Pour retrouver le fonctionnement de la 1.6, nous allons repartir de la variable retournée par la fonction getDeliveryOptionList() de controllers/admin/AdminCartsController.php. La variable générée semble être la même que dans la 1.6. Il faut ensuite:

  • modifier le template de la 1.7.
  • modifier la validation de l'étape livraison pour gérer le multi-transporteur.
  • modifier le rendu de la page de confirmation de commande (en cherchant si la commande affichée n'est pas liée à une autre. Si tel est le cas, il faudra transmettre cette deuxième commande au template et l'afficher).

Dans un dernier temps, il faudra revoir l'envoi de mails (Comme dans la 1.6, Prestashop envoie un mail par commande scindée, ce n'est pas très clair pour le client qui peut avoir l'impression d'avoir 2 paiements à effectuer)

Commentaires sur: Prestashop 1.7 et le problème du dégroupage ou des commandes scindées entre 2 transporteurs

la vérité c'est que prestashop n'a jamais su gérer correctement les commandes scincées. je suis sur 1.6.1.0 et je n'arrive pas du tout à avoir cet affichage, et notamment ce choix en front office. Le choix est fait par prestashop de choisir le transporteur le moins cher (car dans préférences, on met que le moins cher est le premier affiché), mais impossible de faire un autre choix, le choix est forcé et en plus sans texte pour le client. quel dommage

Commande 2 : Produit A (transporteur A) + Produit BC (transporteur B et transporteur C)
=> popup panier => total livraison ok (la moins chère, liée à la config)
=> récap panier => total livraison ok (la moins chère, liée à la config)
=> page livraison order process => affichage des 2 couples de transporteurs possibles "A + B" OU "A + C" avec possibilité de choisir le couple de son choix

Rédigé par : aglatara | 15 nov 2023 10:04:27

Bonjour, je recherche également une solution à ce pb . y a t'il un tuto ou un module dispo ? Merci par avance.

Rédigé par : Dams | 6 avr 2021 11:09:53

Bonjour,

Je suis sur la version prestashop 1.7.7.0 en local pour le moment et le problème des commandes scindées avec plusieurs transporteurs dans une commande persiste.
Avez vous développer un module spécifique pour gérer cette problématique ?
Avez vous un document pdf à partager avec les instructions step by step à suivre ? des captures d'écran seraient un plus pour moi
Merci d'avance pour votre support
Cordialement,
Mr Girard

Rédigé par : girard | 11 jan 2021 17:15:08

Bonjour
Avez vous trouver une solution fiable concernant le problème des transporteurs svp ?

Rédigé par : chem | 10 nov 2020 11:38:09

Bonjour, Je rencontre le problème suivant :

La plupart de mes produits sont associés à deux transporteurs :
- Retrait au magasin
- Livraison

Certains produits nécessitant un délai de fabrication plus long ont eux deux autres modes de transports différents :
- Retrait au magasin sous 48H
- Livraison sous 48H

Le soucis c'est que quand je test, je mets un produit avec un délai classique + 1 produit avec un délai plus long et je ne vois apparaître qu'un mode de livraison "Retrait au magasin 48H" alors que je souhaiterai voir apparaître les deux modes de livraison :
- Retrait au magasin 48H + Livraison 48H. Je ne comprends pas pourquoi je n'ai pas le choix des deux modes de livraison. Pourriez-vous me dire si il s'agit bien du problème évoqué dans votre article et si oui, si il est possible pour vous de le corriger ?

Par avance merci

Rédigé par : Tabaglio | 24 juin 2020 21:55:06

Bonjour, avez vous solutionner le problème, si oui cela m'intéresse grandement. Cdt

Rédigé par : chrisx | 24 juin 2020 19:04:29

@tubby je ne parviens pas à vous joindre par téléphone. Pouvez-vous me donner un numéro de téléphone ? Merci

Rédigé par : Donner | 22 juin 2020 10:55:05

Vous pouvez nous contacter si vous voulez qu'on résolve le problème

Rédigé par : Tubby | 7 mai 2020 15:21:20

Ok super. Et donc ? On fait comment...

Rédigé par : F86 | 30 avr 2020 21:30:26

@Suncha: oui nous avons résolu le pb des commandes scindées sur Prestashop

Rédigé par : Tubby | 10 avr 2020 12:39:53

Bonjour,
Avez-vous résolu ce problème ?
Je cherche désespéramment une solution a ce problème ...

Rédigé par : Suncha | 10 avr 2020 09:37:28

Poster un commentaire sur: Prestashop 1.7 et le problème du dégroupage ou des commandes scindées entre 2 transporteurs







« Couler les Ads Google des concurrents: la guerre fait de plus en plus rage .. au grand profit de Google | Accueil | SignalConso, la nouvelle plateforme de signalement de la Direction Générale de la Concurrence, de la Consommation et de la répression des fraudes »



Besoin de SEO, de développement, de rédaction de contenu web ? Besoin d'un blog, de Wordpress, de Prestashop ou autres nouvelles "choses web" ? Envie de travailler dans ces domaines ? --> Contactez-nous