Prestashop : Ajout des conditions à valider dans le tunnel de commande

Ce tutoriel est compatible avec les versions de Prestashop suivantes :
1.7 +
Cet article est assez ancien, malgré toute l'attention que j' apporte à mes contenus il est possible que celui-ci ne soit plus d'actualité.
N'hésitez pas à me le signaler si nécessaire via le formulaire de contact.

Petite découverte de la semaine d’une possibilité relativement pratique d’ajouter des conditions à valider dans le tunnel de commande.

La bonne nouvelle c’est que c’est très facile à faire via un module puisqu’il existe un hook pour cela 🙂
Voyons donc cela dans un module hhcgv dont voici le code

<?php
if (!defined('_PS_VERSION_')) {
    exit;
}
 
//Attention à bien include ceci
use PrestaShop\PrestaShop\Core\Checkout\TermsAndConditions;
 
class Hhcgv extends Module
{
 
    public function __construct()
    {
        $this->name = 'hhcgv';
        $this->tab = 'others';
        $this->version = '0.1.0';
        $this->author = 'hhennes';
        $this->bootstrap = true;
        parent::__construct();
 
        $this->displayName = $this->l('Module de demo cgv');
        $this->description = $this->l('Ajout de cgv personnalisées');
    }
 
    /**
     * Installation du module
     * @return bool
     */
    public function install()
    {
        if (
            !parent::install()
            || !$this->registerHook('termsAndConditions')
        ) {
            return false;
        }
 
        return true;
    }
 
    /**
     * Nouvelles conditions de commandes
     * @param array $param
     * @return array
     */
    public function hookTermsAndConditions($param)
    {
 
        $conditions = [];
        //Définition des conditions (ici c'est du texte direct )
        // mais vous pouver récupérer le contenu d'une page cms également
        $termsAndConditions = new TermsAndConditions();
        $termsAndConditions
            ->setText(
                "Je rajoute une condition "
            )
            ->setIdentifier('conditions-sup-1');
        $conditions[] = $termsAndConditions;
 
        $termsAndConditions2 = new TermsAndConditions();
        $termsAndConditions2
            ->setText(
                "Je rajoute encore une condition "
            )
            ->setIdentifier('conditions-sup-2');
        $conditions[] = $termsAndConditions2;
 
        //Renvoyer les conditions
        return $conditions;
    }
 
}

Les conditions sont bien à valider par les clients pour qu’ils puissent passer commande, il n’y a rien de plus à faire 🙂

6 réflexions sur “Prestashop : Ajout des conditions à valider dans le tunnel de commande”

  1. Intéressant, merci pour le partage !!
    Savez-vous si c’est possible d’ajouter une condition, suivant la méthode d’expédition par exemple

    1. Bonjour,
      Oui c’est tout à fait possible de rajouter une condition d’affichage.
      Il faut savoir que ce tunnel n’est pas exécuté en ajax, du coup la page est rechargée à chaque fois pour aller dans les étapes suivantes.
      Vous pouvez donc réévaluer les conditions d’affichage de l’étape lors de chaque changement.

      Cordialement,
      Hervé

      1. Merci beaucoup pour votre réponse.
        Auriez-vous un exemple de code pour faire une tel condition par rapport a l’étape des carrier. Je n’arrive pas a faire le lien entre les deux étapes.

        1. Bonjour,
          vous pouvez conditionner l’ajout de l’étape via une condition du genre ( dans le fichier d’override )

          //Vérification du transporteur courant du panier
          $id_carrier = 1; //Identifiant du transporteur valide
          if ( $this->context->cart->id_carrier == $id_carrier) {
          //Ajout de l'étape
          }

    1. Bonjour Laurent,

      Non malheureusement pas dans l’immédiat, car sur la version 1.6 ce point va déjà dépendre du type de tunnel utilisé ( one page checkout ou le standard en plusieurs pages )
      Et l’implémentation sera différente dans les 2 cas.

      Cordialement,
      Hervé

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *