Sylius 2 : le tunnel de commande va-t-il changer ?
Pour l'acheteur, le tunnel de commande de Sylius 2 garde les mêmes étapes : panier, adresse, livraison, paiement, récapitulatif. Ce qui change, c'est tout ce qu'il y a derrière : l'interface est réécrite en Bootstrap 5 et Twig Hooks, le panier passe sur des composants interactifs, et la mécanique des états de commande bascule de winzou vers Symfony Workflow. Votre tunnel ne changera donc pas d'apparence si vous ne le voulez pas, mais toutes ses personnalisations doivent être reprises et testées.
Le tunnel de commande est la partie de la boutique où une régression coûte le plus cher, parce qu'elle se mesure directement en ventes perdues. Je le traite comme le cœur du chantier, avec une recette dédiée. Voici ce qui change, ce qui peut casser et comment je le vérifie.
Les étapes de la commande changent-elles pour l'acheteur ?
Non, pas par défaut. Sylius 2 conserve le découpage classique du checkout et la possibilité de commander en invité. Si votre boutique utilise le tunnel standard avec un thème proche de celui d'origine, l'acheteur retrouvera exactement le même enchaînement.
La différence porte sur la façon dont les pages sont construites. Le guide officiel UPGRADE-2.0 documente le passage à Bootstrap 5 et Symfony UX, l'arrivée des Twig Hooks, des Twig Components et de LiveComponent, et la suppression de plusieurs routes du panier en Ajax, comme sylius_shop_ajax_cart_add_item ou sylius_shop_partial_cart_summary. Un mini panier, un bouton d'ajout ou un récapitulatif qui appelaient ces routes doivent être réécrits. Le comportement visible peut rester identique, le code ne l'est plus.
Ce qui change sous le capot : états de commande et transitions
C'est le changement le moins visible et le plus important. Une commande Sylius passe par des états : panier, nouvelle commande, payée, expédiée, annulée. En version 1.x, ces passages étaient gérés par winzou/state-machine. Le guide officiel précise qu'en version 2, l'adaptateur par défaut devient Symfony Workflow, et que winzou devient une dépendance seulement suggérée, qu'il faut installer explicitement pour continuer à l'utiliser.
Pour un dirigeant, cela veut dire une chose : toutes les règles métier branchées sur ces passages sont concernées. Un e-mail envoyé quand une commande passe en préparation, un export vers votre logisticien au paiement, un stock réservé à la validation, une facture générée à l'expédition. Si ces règles ont été écrites comme des callbacks winzou, elles doivent être portées sur Symfony Workflow, sinon elles cessent de se déclencher sans aucun message d'erreur visible pour l'acheteur. Le détail technique est dans l'article sur la migration de winzou vers Symfony Workflow.
Le paiement, dernière étape du tunnel, change lui aussi de mécanique avec l'arrivée des Payment Requests. Je le traite à part dans l'article sur vos moyens de paiement après la migration.
Un tunnel personnalisé peut-il être conservé ?
Oui. Beaucoup de boutiques ont adapté leur checkout : une étape supplémentaire pour choisir un créneau de livraison, un champ de numéro de TVA intracommunautaire pour les professionnels, un choix de point relais, une case pour un message cadeau, une validation des adresses. Tout cela se reproduit en Sylius 2, mais avec les nouveaux outils : les Twig Hooks pour insérer des blocs dans les étapes, les formulaires Symfony pour les champs, Symfony Workflow pour les transitions supplémentaires.
Le coût dépend directement du nombre de ces adaptations et de la façon dont elles ont été écrites. Une étape ajoutée proprement par configuration se reprend vite. Une étape codée en surchargeant des contrôleurs et des gabarits entiers demande plus de travail. Sylius Upgrade Analyzer, l'outil que j'ai créé et publié sur le Sylius Store, repère les gabarits du checkout surchargés, les transitions winzou personnalisées et les routes supprimées utilisées par votre code. Si vous voulez savoir combien pèse votre tunnel dans le chantier, c'est l'objet du diagnostic de migration offert.
Comment tester le tunnel de commande avant la mise en ligne ?
Je teste le tunnel sur une copie de la production, avec vos vrais produits, vos vraies règles de livraison et vos vraies promotions. Une commande de test sur un catalogue de démonstration ne prouve rien : ce sont vos combinaisons réelles qui révèlent les problèmes.
Je déroule les cas qui rapportent de l'argent et ceux qui posent problème en pratique : commande avec compte et en invité, changement d'adresse en cours de route, code promo appliqué puis retiré, panier modifié sur mobile, paiement refusé puis repris, chaque mode de livraison, chaque pays de livraison configuré. Pour chaque cas, je compare le résultat avec l'ancienne version : montant, taxes, frais de port, e-mail reçu, état de la commande en administration. L'article sur la manière de tester une migration Sylius 1 vers 2 détaille cette recette.
Les correctifs de sécurité de la branche 2.0 donnent aussi un point de vigilance. Le guide officiel mentionne, à partir de la version 2.0.17, que la recherche d'adresse du checkout est limitée au client connecté et que l'ajout au panier vérifie l'accès au panier. Si votre code personnalisé contournait ces mécanismes, il doit être revu. C'est une raison de plus pour viser une version 2.x récente et maintenue.
Ce qu'il faut retenir pour votre taux de conversion
Une migration ne doit pas faire baisser la conversion. Les baisses que l'on observe après une montée de version viennent de régressions discrètes : une option de livraison qui ne s'affiche plus, un code promo refusé, une étape plus lente, un e-mail de confirmation absent. Elles se détectent avant la mise en ligne avec une recette sérieuse, et juste après grâce à une surveillance des commandes et des erreurs pendant les premiers jours.
Ce que je vous propose
Je lance Sylius Upgrade Analyzer sur votre projet, j'identifie tout ce qui touche au panier, au checkout et aux transitions de commande, et je vous remets un diagnostic offert commenté, avec une estimation en jours. Je vous rappelle sous 24 heures ouvrées. Avec la fin des correctifs de sécurité de Sylius 1.14 le 31 décembre 2026, mieux vaut savoir tôt ce que votre tunnel demande.
