Jump to content

Un bon de réduction pour la prochaine commande en fonction du mode de paiement


Recommended Posts

Bonjour

Je cherche à savoir qu'elle est le bout de code qui permettrait de créer un bon de réduction au moment de la commande si quelqu'un passe par un mode de paiement particulier. En effet, les personnes qui payent en CB crée de la trésorerie alors que les autre pas.

Une idée ?

Merci d'avance

Link to comment
Share on other sites

Il va falloir conditionner l'attribution du bon de réduction au moyen de paiement sélectionné, puis utiliser les fonctions intégrées à Prestashop pour envoyer un bon de réduction.

Il va falloir utiliser une fonction de génération aléatoire de code Bon de réduction, de ce genre :

public static function getRand( $len = null ){
   if( is_null( self :: $array ) )
       $self :: _genArray( );
   if( !is_numeric( $len ) )
       $len = self :: $length;
   $passwd = '';
   for( $i = $len; $i > 0; $i-- )
         $passwd .= self :: $array[ rand( 0, count( self :: $array ) -1 ) ];
   return $passwd;
}

static public function _genArray( ){
       self :: $array = array_merge( range( 'A', 'Z' ), range( '0', '9' ) );
}



et créer le bon de réduction en réalisant une injection SQL....

Link to comment
Share on other sites

Non, désolé, je me suis trompé, il faut faire une injection SQL dans le tables discount et discount_lang :

Db::getInstance()->autoExecute(
   _DB_PREFIX_.'discount',
   array(
       'id_discount_type'=>TON_TYPE_DE_BON_DEVISE_OU_POURCENTAGE,
       'id_customer'=>ID_CLIENT,
       'name'=>CODE_BON_DE_REDUCTION,
       'value'=>VALEUR,
       'quantity'=>QUANTITE,
       'quantity_per_user'=>QUANTITE_PAR_CLIENT,
       'cumulable'=>CUMULABLE,
       'cumulable_reduction'=>CUMULABLE_AVEC_REDUCTION,
       'date_from'=>DATE_DEBUT_AU_FORMAT_Y-m-d_H:i:s,
       'date_to'=>DATE_FIN_AU_FORMAT_Y-m-d_H:i:s,
       'minimal'=>MONTANT_MINIMUM,
       'active'=>1
   ),
   'INSERT'
);



récupérer l'ID du bon injecté

$IdInjecte = Db::getInstance()->Insert_ID();



puis injecter la langue :

Db::getInstance()->autoExecute(
   _DB_PREFIX_.'discount_lang',
   array(
       'id_discount'=>$IdInjecte ,
       'id_lang'=>ID_DE_LA_LANGUE,
       'description'=>DESCRIPTION_DU_BON
   ),
   'INSERT'
);



et voilà...

Link to comment
Share on other sites

Non, surtout pas, c'est la trame pour l'injection mais il faut mettre les bonnes données à la place de "TON_TYPE_DE_BON_DEVISE_OU_POURCENTAGE" et tous les autres, il faut tester le retour de paiement pour savoir de quel paiement cela provient, et récupérer quelques informations importantes comme l'ID du client. De plus je suppose que le client ne va pas obtenir un bon de réduction à chaque fois qu'il va payer par CB, donc il va falloir stocker quelque part la donnée comme quoi il a déjà eu le bon de réduction une première fois et ne pas lui en ré-affecter un.....Bref, il y a encore pas mal de boulot....

Link to comment
Share on other sites

Bonjour et au passage je salut BVince
J'ai une question comment on l'envoi le bon de réduction moi la fonction je la trouve pas ou elle ne fonctionne pas je sais pas mais le bon de réduction que je créer il figure bien dans les bons de réduction dans la parti admin client mais par contre il reçoit rien du tout quand on le créer. J'ai regarder sur le forum et aussi sur ton site Vincent défois que tu aurais créé ce module pour l'envoi de mail automatique suite à un bon de réduction mais non plus tu à une idée ?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...