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)

Posted in

12 responses to “Prestashop 1.7 et le problème du dégroupage ou des commandes scindées entre 2 transporteurs”

  1. Avatar de Suncha
    Suncha

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

  2. Avatar de Tubby
    Tubby

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

  3. Avatar de F86
    F86

    Ok super. Et donc ? On fait comment…

  4. Avatar de Tubby
    Tubby

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

  5. Avatar de Donner
    Donner

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

  6. Avatar de chrisx
    chrisx

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

  7. Avatar de Tabaglio
    Tabaglio

    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

  8. Avatar de chem
    chem

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

  9. Avatar de girard
    girard

    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

  10. Avatar de Dams
    Dams

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

  11. Avatar de aglatara
    aglatara

    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

  12. Avatar de Smart Unicorn

    Bonjour,
    J’ai implémenté un module qui permet d’expédier une commande en plusieurs colis pris en charge par différents transporteurs (livraisons/expéditions multiples). Vous pouvez ainsi expédier des produits de différents entrepôts ou ajouter des produits en dropshipping sur votre boutique.
    La notion d’entrepôt est virtuelle : il vous suffit d’assigner des transporteurs différents aux produits. Exemple : Produit A expédié par le transporteur 1 et Produit B expédié par le transporteur 2. C’est comme si vous aviez un premier entrepôt contenant le produit A et un deuxième entrepôt contenant le produit B.
    La commande sera scindée selon le nombre de transporteurs différents impliqués dans la commande, autrement selon le nombre de colis différents ou entrepôt différents. Cela se fait de manière dynamique et n’a pas de limite.
    Voici une vidéo de démo explicative : https://www.youtube.com/watch?v=Nxg7hvNgxZA&ab_channel=SmartUnicorn
    Voici le lien vers le module sur PrestaShop addons: https://addons.prestashop.com/fr/transporteurs/93768-commande-avec-transporteurs-livraisons-multiples.html
    Et voici le lien vers le module sur mon site Smart Unicorn à prix réduit : https://smartunicorn.fr/produit/module-prestashop-commande-avec-transporteurs-livraisons-multiples/
    N’hésitez pas à poser vos questions en envoyant un email à l’adresse contact@smartunicorn.fr.
    J’espère que cela vous aidera.

Laisser un commentaire

En savoir plus sur Tubbydev

Abonnez-vous pour poursuivre la lecture et avoir accès à l’ensemble des archives.

Poursuivre la lecture