Aller au contenu
Développement Ecommerce

ACSEO Sylius Re Order Plugin : simplifier le reachat dans une boutique Sylius

Sur un site e-commerce, beaucoup de clients veulent simplement racheter la même commande ou un produit consommé régulièrement. Dans ce cas, le parcours classique : retrouver la fiche produit, vérifier la bonne variante et choisir la quantité, est trop long et ajoute une friction inutile, surtout sur un catalogue dense ou en B2B.


Pour éviter un parcours de commande trop long, le plugin ACSEO Sylius Re Order apporte une réponse concrète aux projets Sylius. Il ajoute des actions de rachat depuis l’espace client et depuis la Shop API : recommander une commande complète ou racheter une seule ligne de commande.

ACSEO Sylius Re Order Plugin
ACSEO Sylius Re Order Plugin

En résumé

ACSEO Sylius Re Order Plugin permet à un client connecté de reprendre des produits depuis son historique de commandes.

Le plugin aide notamment à :

  • recommander une commande passée dans le panier courant ;
  • racheter un article précis depuis une ancienne commande ;
  • proposer un parcours plus rapide aux clients récurrents ;
  • exposer les mêmes actions via la Shop API ;
  • respecter les droits du client connecté ;
  • vérifier le channel, le stock, les prix et l’état courant du catalogue ;
  • gérer les succès partiels quand certains produits ne sont plus disponibles.

Pourquoi le rachat est important

Le rachat est un levier simple d’expérience client. Il concerne autant les boutiques B2C que les catalogues B2B.

Quelques exemples :

  • un client rachète les mêmes consommables chaque mois ;
  • un acheteur professionnel reprend une commande type ;
  • un client veut remplacer un produit déjà acheté ;
  • une boutique vend des accessoires ou pièces détachées récurrentes ;
  • un frontend mobile veut proposer un bouton « Acheter à nouveau ».

Dans tous ces cas, le client ne veut pas forcément naviguer à nouveau dans tout le catalogue. Il veut repartir de son historique, puis ajuster son panier.

Ce que le plugin ajoute à Sylius

Le plugin ajoute deux parcours principaux.

Recommander une commande

Depuis l’historique des commandes, un client peut remettre au panier les lignes encore éligibles d’une commande passée.

Route shop :

POST /{_locale}/account/orders/{number}/reorder

Le plugin vérifie que la commande appartient au client connecté, qu’elle correspond au channel courant et qu’elle peut être recommandée. Ensuite, chaque ligne est analysée avant ajout au panier.

Racheter une ligne

Le client peut aussi racheter un seul article d’une commande.

Route shop :

POST /{_locale}/account/orders/{number}/items/{id}/buy-again

C’est pratique quand une commande contient plusieurs articles mais que le besoin porte sur un seul produit.

Une logique de rachat fiable

Un bouton « Recommander » ne doit pas simplement copier les lignes d’une ancienne commande. Le catalogue a pu changer depuis l’achat initial.

Le plugin vérifie notamment :

  • le propriétaire de la commande ;
  • le channel de la commande ;
  • l’état de la commande ;
  • l’existence de la variante ;
  • l’activation du produit ;
  • l’activation de la variante ;
  • la disponibilité du stock ;
  • l’appartenance au channel courant ;
  • l’existence d’un prix pour le channel.

Si une ligne n’est plus achetable, elle est ignorée et une raison est retournée.

Exemples de raisons :

missing_variant

product_disabled

disabled

out_of_stock

wrong_channel

no_channel_pricing

Cela permet de garder une expérience souple : le panier peut être reconstruit partiellement, sans bloquer tout le reachat à cause d’un seul produit indisponible.

Des retours clairs pour le client

Côté shop, les contrôleurs ajoutent des messages flash traduits.

Le client peut être informé que :

  • les articles éligibles ont été ajoutés au panier ;
  • certains articles n’ont pas pu être ajoutés ;
  • un article précis a été ajouté ;
  • un article précis n’a pas pu être ajouté.

L’objectif est d’éviter les ajouts silencieux ou les échecs incompréhensibles.

Une intégration dans l’espace client

Le plugin s’intègre avec les mécanismes Sylius :

  • Twig hooks pour ajouter les actions sur les pages de commande ;
  • actions de grille sur l’historique de commandes ;
  • helpers Twig pour tester l’éligibilité et générer les tokens CSRF ;
  • traductions anglaises et françaises pour les messages utilisateur.

Après import de la configuration, les actions standard sont disponibles sans devoir réécrire les templates applicatifs.

Une API pour les frontends headless

Les boutiques Sylius ne sont pas toujours servies par le front Twig. Le plugin expose donc aussi des endpoints Shop API.

POST /api/v2/shop/account/orders/{tokenValue}/reorder

POST /api/v2/shop/account/orders/{tokenValue}/items/{orderItemId}/buy-again

Exemple de requête :

{

  « cartTokenValue »: « cart-token »

}

Exemple de réponse partielle :

{

  « addedCount »: 1,

  « skipped »: [

    {

      « reason »: « out_of_stock »,

      « orderItemId »: 9,

      « variantCode »: « SKU »,

      « quantity »: 1

    }

  ]

}

Cela permet à une PWA, une application mobile ou un frontend découplé de proposer le même parcours de rachat.

Sécurité et contexte client

Le plugin ne donne pas accès aux commandes d’autres clients.

Les actions shop sont protégées par :

  • la session client Sylius ;
  • les contrôles de propriétaire ;
  • les contrôles de channel ;
  • les tokens CSRF.

Les actions API reposent sur l’authentification Shop API.

Si une commande ne correspond pas au client connecté, au channel courant ou à un état re-commandable, le plugin refuse l’opération.

Configuration des routes

Tous les projets Sylius n’ont pas les mêmes URLs d’espace client. Le plugin permet donc d’adapter les prefixes.

Configuration par défaut :

acseo_sylius_re_order:

    routing:

        shop_account_prefix: account

        shop_account_orders_prefix: orders

        api_shop_account_prefix: shop/account

Exemple avec un espace client francisé :

acseo_sylius_re_order:

    routing:

        shop_account_prefix: mon-compte

        shop_account_orders_prefix: commandes

        api_shop_account_prefix: shop/mon-compte

Des points d’extension pour les projets métier

Chaque boutique peut avoir ses propres règles.

Un projet peut décorer les services du plugin pour :

  • refuser certaines catégories de produits ;
  • appliquer des règles B2B ;
  • tenir compte d’une politique commerciale ;
  • changer la logique de disponibilité ;
  • journaliser les tentatives ;
  • adapter les messages ou les résultats.

Les interfaces principales sont exposées :

  • OrderReorderEligibilityCheckerInterface ;
  • VariantReorderEligibilityCheckerInterface ;
  • ReorderOrderServiceInterface ;
  • BuyAgainItemServiceInterface.

Conclusion

ACSEO Sylius Re Order Plugin ajoute une fonctionnalité simple en apparence, mais importante pour l’expérience client : repartir d’une commande passée pour acheter plus vite.

Le plugin ne contourne pas les règles du catalogue. Il respecte l’état courant des produits, variantes, prix, stocks, channels et droits client.

Pour les boutiques avec des achats récurrents, des catalogues B2B ou des frontends headless, c’est un moyen direct de réduire la friction et de rendre l’historique de commandes vraiment actionnable.

Installez ACSEO Sylius Re Order Plugin dès maintenant ! (lien à venir)

À lire également

Découvrez nos autres plugin pour faire évoluer votre boutique Sylius :

Pour continuer votre lecture

Une idée, un projet ?

Nous sommes à votre disposition pour discuter.

Contactez-nous